Method and device for intra-prediction
By unifying reference sample processing and reusing filtered samples for both directional intra prediction and additional prediction in video coding, the method addresses the challenge of balancing bandwidth and quality in advanced video coding standards.
Patent Information
- Application Number
- JP2024207407
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-11-14
- Filing Date
- 2024-11-28
- Publication Date
- 2025-03-18
AI Technical Summary
Existing video coding standards face challenges in balancing bandwidth requirements and video quality, particularly with the increasing complexity of intra prediction methods in advanced standards like VVC.
The method unifies reference sample processing by combining directional prediction outputs with additional prediction signals, using filtered reference samples for wide-angle modes and reusing these processed samples for both directional intra prediction and additional prediction generation.
This approach simplifies reference sample processing, reduces computational complexity, and improves visual quality by ensuring that reference samples are processed only once and reused effectively.
Smart Images

Figure 2025037970000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to the technical field of image and / or video encoding and decoding, and in particular to a method and apparatus for intra / inter prediction. [Background technology]
[0002] Digital video has been widely used since the introduction of DVD discs. Before transmission, the video is encoded and transmitted over a transmission medium. A viewer receives the video and decodes and displays the video using a viewing device. Over the years, video quality has improved, e.g., with higher resolution, color depth and frame rate. This has resulted in larger data streams that are commonly transmitted over the Internet and mobile communication networks today.
[0003] Higher resolution videos, however, typically require more bandwidth since they contain more information. To reduce the bandwidth requirements, video coding standards have been introduced that include compression of the video. When the video is coded, the bandwidth requirements (or the corresponding memory requirements in case of storage) are reduced. Sometimes this reduction comes at the expense of quality. Therefore, video coding standards try to find a balance between bandwidth requirements and quality.
[0004] High Efficiency Video Coding (HEVC) is an example of a video coding standard commonly known to those skilled in the art. In HEVC, coding units (CUs) are divided into prediction units (PUs) or transform units (TUs). The Versatile Video Coding (VVC) next generation standard is the latest joint video project of the ITU-T Video Coding Experts Group (VCEG) and ISO / IEC Moving Picture Experts Group (MPEG) standardization organizations working together in a partnership known as the Joint Video Exploration Team (JVET). VVC is also referred to as the ITU-T H.266 / Next Generation Video Coding (NGVC) standard. In VVC, the concept of multiple partition types, i.e., the separation of CU, PU, and TU concepts, should be removed unless required for CUs with sizes that are too large for the maximum transform length, to support more flexibility in CU partition shapes.
[0005] The processing of these coding units (CUs), also called blocks, depends on their size, spatial location, and the coding mode specified by the encoder. The coding modes can be classified into two groups according to the prediction type: intra-prediction and inter-prediction modes. Intra-prediction modes use samples of the same picture (also called frame or image) to generate reference samples and calculate predicted values of samples of the block being reconstructed. Intra-prediction is also called spatial prediction. Inter-prediction modes are designed for temporal prediction and use reference samples of the previous or next picture to predict samples of a block of the current picture.
[0006] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG11) are studying the potential need for standardization of future video coding technologies with compression capabilities significantly beyond those of the current HEVC standard (including its current and very near-term extensions for screen content coding and high dynamic range coding). The committees are working together on this exploration in a joint coordinated effort known as the Joint Video Exploration Team (JVET) to evaluate compression technology designs proposed by their experts in the field.
[0007] The Versatile Test Model (VTM) standard uses 35 intra-modes, while the Benchmark Set (BMS) uses 67 intra-modes.
[0008] Intra prediction schemes are considered to be complex. Summary of the Invention
[0009] An apparatus and method for intra prediction is disclosed.
[0010] According to a first aspect, the present disclosure provides a method of intra prediction of a current image block in a current picture of a video, the method comprising: obtaining an intra-prediction mode for the block; When the intra prediction mode of the block is a wide-angle mode, obtaining a prediction sample of the block based on a filtered reference sample; The present invention relates to a method comprising the steps of:
[0011] In a possible implementation form of the method according to the first aspect, the intra prediction mode of the block is an integer gradient wide mode, the integer gradient wide mode being at least one of −14, −12, −10, −6, 72, 76, 78, 80.
[0012] The first aspect aims at unifying the reference sample processing by combining the output of the directional prediction and the additional prediction signal used to improve the visual quality of the predicted block. As a result of this unification, the reference sample is processed only once, and the result of this processing is reused by both the directional intra-prediction processing and the generation of the additional prediction. For example, the filtered reference sample is used for the wide-angle mode, and therefore only one filtered reference sample buffer is needed.
[0013] The following steps may be performed to implement the intra prediction method.
[0014] Step 1. Perform reference sample filtering based on the reference samples, intra prediction mode intraPredMode and / or block dimensions (width and height).
[0015] Step 2. Perform directional intra prediction based on the processed (filtered or unfiltered reference samples) reference samples (result of step 1) according to the intraPredAngle.
[0016] Step 3. Update the results obtained in step 2 by a prediction combination, which can be PDPC or simplified PDPC, where the input reference samples used in step 3 are the same as the reference samples obtained in step 1 and used in step 2 for integer gradient wide-angle modes (e.g., −14, −12, −10, −6, 72, 76, 78, 80, as specified in Tables X and Y below).
[0017] Optionally, based on predModeIntra, determine whether a filtered or unfiltered reference sample buffer should be used. This can be done by applying one of the filters listed in Table 5 below. In VVC, filters with indexes 0 and 1 are used.
[0018] The reference samples are filtered (filter index "1" in Table 5 is used) when predMode is equal to 2, 34, or 66 and when nTbS>2.
[0019] An alternative embodiment of the above method is to use an angle parameter (further denoted as intraPredAngle) instead of the intra prediction mode predModeIntra in this step. In this case, if the value of intraPredAngle is a multiple of 32 and when nTbS>2, the reference samples are filtered (filter index "1" in Table 5 is used).
[0020] The method according to the first aspect of the present invention can be performed by an apparatus according to the second aspect of the present invention. For example, the apparatus may include an acquisition unit and a wide-angle prediction unit, the acquisition unit being configured to acquire an intra-prediction mode of the block, and the wide-angle prediction unit being configured to acquire a prediction sample of the block based on a filtered reference sample when the intra-prediction mode of the block is a wide-angle mode.
[0021] Further features and implementation forms of the method according to the second aspect of the invention correspond to the features and implementation forms of the apparatus according to the first aspect of the invention.
[0022] The advantages of the apparatus according to the second aspect are the same as those of the corresponding implementation of the method according to the first aspect.
[0023] According to a third aspect, the invention relates to an apparatus for decoding a video stream, comprising a processor and a memory, said memory storing instructions causing said processor to carry out the method according to the first aspect.
[0024] According to a fourth aspect, the invention relates to an apparatus for encoding a video stream, comprising a processor and a memory, said memory storing instructions for causing said processor to carry out the method according to the first aspect.
[0025] According to a fifth aspect, a computer-readable storage medium is proposed having stored thereon instructions which, when executed, cause one or more processors to configure for encoding video data, said instructions causing said one or more processors to perform a method according to the first aspect or any possible embodiment of the first aspect.
[0026] According to a sixth aspect, the present invention relates to a computer program comprising a program code for performing the method according to the first aspect or any possible embodiment of the first aspect, when the computer program is executed on a computer.
[0027] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will become apparent from the description, drawings, and claims. [Brief description of the drawings]
[0028] The following embodiments are explained in more detail with reference to the accompanying drawings and figures.
[0029] [Figure 1] 1 is a block diagram illustrating an example of a video encoding system configured to implement embodiments of the present invention.
[0030] [Diagram 2] FIG. 2 is a block diagram illustrating an example of a video encoder configured to implement embodiments of the present invention.
[0031] [Diagram 3] 2 is a block diagram illustrating an exemplary structure of a video decoder configured to implement embodiments of the present invention.
[0032] [Figure 4A] 1 shows a schematic diagram illustrating the proposed 67 intra prediction modes.
[0033] [Figure 4B]1 shows a schematic diagram illustrating the proposed 93 intra prediction modes, where the dashed line directions are associated with wide-angle modes that apply only to non-square blocks.
[0034] [Diagram 5] 4 shows different examples of interpolation filters. [Figure 6] 4 shows different examples of interpolation filters. [Figure 7] 4 shows different examples of interpolation filters. [Figure 8] 4 shows different examples of interpolation filters. [Figure 9] 4 shows different examples of interpolation filters. [Figure 10] 4 shows different examples of interpolation filters. [Figure 11] 4 shows different examples of interpolation filters.
[0035] [Figure 12] 13 shows an example of reusing a 4-tap interpolation filter in inter and intra prediction.
[0036] [Figure 13] 1 shows an exemplary implementation of the proposed application.
[0037] [Figure 14] 1 shows an exemplary implementation of the proposed application based on reuse of LUT coefficients.
[0038] [Figure 15] 4 shows an example of interpolation filter selection.
[0039] [Figure 16] Here is an example of QTBT.
[0040] [Figure 17] An example of rectangular block orientation is shown below.
[0041] [Figure 18] 13 shows an example of edge length dependent reference filter selection.
[0042] [Figure 19] 13 illustrates an example of alternative directions for thresholding intra-prediction modes during the interpolation filter selection process.
[0043] [Figure 20] 1 illustrates the use of different interpolation filters depending on which side the reference sample in use belongs to.
[0044] [Figure 21] 1 shows the DC mode PDPC weights for the (0,0) and (1,0) positions within one 4×4 block.
[0045] [Figure 22] 13 shows the sample definitions used by the PDPC extension to diagonal and adjacent angle intra modes.
[0046] [Diagram 23] 1 illustrates an exemplary implementation of a simplified PDPC.
[0047] [Figure 24] 1 illustrates an exemplary unified implementation.
[0048] [Diagram 25] 1 is a block diagram illustrating an example structure of an apparatus for intra prediction of a current image block in a current picture of a video.
[0049] [Figure 26] 15 is a block diagram of a device 1500 that can be used to implement various embodiments.
[0050] [Figure 27] 1 is a block diagram showing an example structure of a content delivery system for providing content distribution services.
[0051] [Figure 28] FIG. 2 is a block diagram showing the structure of an example of a terminal device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0052] Definitions of Abbreviations and Glossary
[0053] JEM: Joint Exploration Model (a software code base for future video coding exploration)
[0054] JVET: Joint Video Experts Team
[0055] LUT: Look-Up Table
[0056] PDPC:Position-Dependent Prediction Combination
[0057] QT: Quad Tree
[0058] QTBT:Quad Tree plus Binary Tree
[0059] RDO:Rate-distortion Optimization
[0060] ROM: Read-Only Memory
[0061] VTM: VVC Test Model
[0062] VVC: Versatile Video Coding, a standardization project run by JVET
[0063] CTU / CTB:Coding Tree Unit / Coding Tree Block
[0064] CU / CB:Coding Unit / Coding Block
[0065] PU / PB:Prediction Unit / Prediction Block
[0066] TU / TB:Transform Unit / Transform Block
[0067] HEVC:High Efficiency Video Coding
[0068] Video coding schemes such as H.264 / AVC and HEVC are designed around the successful principle of block-based hybrid video coding, whereby a picture is first partitioned into blocks, and then each block is predicted using intra-picture or inter-picture prediction.
[0069] Some video coding standards after H.261 belong to the group of "lossy hybrid video codecs" (i.e. they combine spatial and temporal prediction in the sample domain with 2D transform coding applying quantization in the transform domain). Each picture of a video sequence is typically partitioned into a set of non-overlapping blocks and coding is typically performed at the block level. In other words, in the encoder, video is typically processed or encoded at the block (picture block) level, for example by generating a predictive block using spatial (intra-picture) and temporal (inter-picture) prediction, subtracting the predictive block from a current block (the block currently being / to be processed) to obtain a residual block, transforming the residual block and quantizing the residual block in the transform domain to reduce the amount of data to be transmitted (compression). Meanwhile, in the decoder, the reverse process compared to the encoder is partially applied to the coded or compressed block to reconstruct the current block for presentation. Additionally, the encoder replicates the decoder processing loop so that both generate the same predictions (eg, intra and inter predictions) and / or reconstructions for processing, i.e., encoding, subsequent blocks.
[0070] As used herein, the term "block" may be a portion of a picture or a frame. For ease of explanation, embodiments of the present invention are described herein with reference to High-Efficiency Video Coding (HEVC) or Versatile video coding (VVC) reference software developed by the ITU-T Video Coding Experts Group (VCEG) and the Joint Collaboration Team on Video Coding (JCT-VC) of the ISO / IEC Motion Picture Experts Group (MPEG). Those skilled in the art will appreciate that embodiments of the present invention are not limited to HEVC or VVC. Reference may be made to CUs, PUs, and TUs. In HEVC, CTUs are divided into CUs using a quadtree structure, denoted as a coding tree. The decision to code a picture region using inter-picture (temporal) or intra-picture (spatial) prediction is made at the CU level. Each CU can be further divided into 1, 2, or 4 PUs according to the PU partition type. Within one PU, the same prediction process is applied, and related information is transmitted to the decoder for each PU. After obtaining the residual block by applying the prediction process based on the PU partition type, the CU can be partitioned into transform units (TUs) according to another quad-tree structure similar to the coding tree of the CU. In the latest development of video compression technology, quad-tree and binary tree (QTBT) partitions are used to partition the coding blocks. In the QTBT block structure, the CUs can have either a square or a rectangular shape. For example, the coding tree unit (CTU) is first partitioned by the quad-tree structure. The leaf nodes of the quad-tree are further partitioned by the binary tree structure.The leaf node of the binary tree is called a coding unit (CU), whose segmentation is used for prediction and transformation processes without further partitioning. This means that CU, PU, and TU have the same block size in the QTBT coding block structure. At the same time, multiple partitions, such as ternary tree partitions, have also been proposed for use with the QTBT block structure.
[0071] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC29 / WG11) are studying the potential need for standardization of future video coding technologies with compression capabilities significantly beyond those of the current HEVC standard (including its current and very near-term extensions for screen content coding and high dynamic range coding). The committees are working together on this exploration in a joint coordinated effort known as the Joint Video Exploration Team (JVET) to evaluate compression technology designs proposed by their experts in the field.
[0072] The Versatile Test Model (VTM) uses 35 intra modes, while the Benchmark Set (BMS) uses 67 intra modes. Intra prediction is a mechanism used in many video coding frameworks to improve compression efficiency when only a given frame can be included.
[0073] 1 is a conceptual or schematic block diagram illustrating an example encoding system 10, e.g., video encoding system 10, that may utilize techniques of the present disclosure. An encoder 20 (e.g., video encoder 20) and a decoder 30 (e.g., video decoder 30) of video encoding system 10 represent examples of devices that may be configured to perform techniques according to various examples described herein. As shown in FIG. 1, encoding system 10 includes a source device 12 that is configured to provide encoded data 13, e.g., encoded pictures 13, to a destination device 14 that, e.g., decodes encoded data 13.
[0074] The source device 12 includes an encoder 20 , and may additionally / optionally include a picture source 16 , a pre-processing unit 18 , for example a picture pre-processing unit 18 , and a communication interface or unit 22 .
[0075] The picture source 16 may include or be, for example, any kind of picture capture device that captures a real picture, and / or any kind of picture or comment generation device (in screen content coding, any text on the screen is also considered part of the picture or image to be coded), such as a computer graphics processor that generates computer animated pictures, or any kind of device that obtains and / or provides real pictures, computer animated pictures (e.g. screen content, virtual reality (VR) pictures), and / or any combination thereof (e.g. augmented reality (AR) pictures).
[0076] A (digital) picture is or can be considered as a two-dimensional array or matrix of samples with intensity values. The samples in the array may also be called pixels (short for picture element) or pels. The number of samples in the horizontal and vertical directions (or axes) of the array or picture defines the size and / or resolution of the picture. For color representation, typically three color components are used. That is, a picture may be represented in or contain three sample arrays. In the RBG format or color space, a picture contains corresponding red, green, and blue sample arrays. However, in video coding, each pixel is typically represented in a luma / chroma format or color space, e.g. YCbCr, which contains a luma component denoted by Y (sometimes L is used instead) and two chroma components denoted by Cb and Cr. The luma (or luma for short) component Y represents the brightness or gray level intensity (e.g. as in a grayscale picture). On the other hand, the two chrominance (or chroma for short) components Cb and Cr represent the chromaticity or color information components. Thus, a picture in YCbCr format contains a luma sample array of luma sample values (Y) and two chrominance sample arrays of chrominance values (Cb and Cr). A picture in RGB format may be converted or transformed into YCbCr format, or vice versa, a process also known as color conversion or color transformation. If a picture is monochrome, the picture may contain only a luma sample array.
[0077] The picture source 16 (e.g., video source 16) may be, for example, a camera capturing a picture, a memory containing or storing a previously captured or generated picture, e.g., a picture memory, and / or any kind of (internal or external) interface for obtaining or receiving a picture. The camera may be, for example, a local or built-in camera integrated in the source device. The memory may be, for example, a local or built-in memory integrated in the source device. The interface may be, for example, an external interface for receiving pictures from an external video source, e.g., an external picture capture device such as a camera, an external memory, or an external picture generation device, e.g., an external computer graphic processor, computer or server. The interface may be any kind of interface, e.g., a wired or wireless interface, an optical interface, according to any characteristics or standardized interface protocol. The interface for obtaining picture data 17 may be the same interface as the communication interface 22 or a part of it.
[0078] To distinguish from pre-processing unit 18 and the processing performed by pre-processing unit 18 , pictures or picture data 17 (eg video data 16 ) may also be referred to as raw pictures or raw picture data 17 .
[0079] The pre-processing unit 18 is configured to receive the (raw) picture data 17 and perform pre-processing on the picture data 17 to obtain a pre-processed picture 19 or pre-processed picture data 19. The pre-processing performed by the pre-processing unit 18 may include, for example, cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise removal. It can be understood that the pre-processing unit 18 may be any component.
[0080] An encoder 20, for example a video encoder 20, is configured to receive pre-processed picture data 19 and to provide encoded picture data 21 (further details are described below, for example with reference to FIG. 2).
[0081] The communications interface 22 of the source device 12 may be configured to receive the encoded picture data 21 and transmit it to another device, such as the destination device 14 or any other device, for storage or direct reconstruction, or to process the encoded data 21 before storing the encoded data 13 and / or transmitting the encoded data 13 to another device, such as the destination device 14 or any other device for decoding or storage, respectively.
[0082] Destination device 14 includes a decoder 30 (eg, a video decoder 30 ), and may additionally, or optionally, include a communications interface or unit 28 , a post-processing unit 32 , and a display device 34 .
[0083] The communications interface 28 of the destination device 14 is arranged to receive the coded picture data 21 or the coded data 13, for example directly from the source device 12 or from any other source, for example a storage device, for example a coded picture data storage device.
[0084] The communications interface 22 and the communications interface 28 may be configured to transmit or receive the encoded picture data 21 or the encoded data 13 via a direct communications link between the source device 12 and the destination device 14, such as a direct wired or wireless connection, or via any type of network, such as a wired or wireless network, or any combination thereof, or via any type of private or public network, or any combination thereof.
[0085] The communications interface 22 may, for example, be arranged to package the encoded picture data 21 in an appropriate format, for example packets, for transmission over a communications link or network.
[0086] Communications interface 28 forming the counterpart to communications interface 22 may for example be arranged to unpackage encoded data 13 to obtain encoded picture data 21 .
[0087] Both communication interface 22 and communication interface 28 may be configured as unidirectional communication interfaces, as indicated by the arrow of encoded data 13 pointing from source device 12 to destination device 14 in FIG. 1A, or as bidirectional communication interfaces, and may be configured, for example, to send and receive messages, for example to establish a connection, to acknowledge and exchange a communication link and / or any other information related to a data transmission, for example a coded picture data transmission.
[0088] The decoder 30 is arranged to receive the encoded picture data 21 and to provide decoded picture data 31 or decoded pictures 31 (further details are given below, for example with reference to FIG. 3).
[0089] Post-processing 32 of destination device 14 is configured to post-process decoded picture data 31 (also called reconstructed picture data), e.g., decoded picture 31, to obtain post-processed picture data 33, e.g., post-processed picture 33. The post-processing performed by post-processing unit 32 may include, e.g., color format conversion (e.g., from YCbCr to RGB), color correction, cropping, or resampling, or any other processing, e.g., to prepare the decoded picture data 31 for display, e.g., by a display device 34.
[0090] A display device 34 of the destination device 14 is configured to receive the post-processed picture data 33, for example to display the picture to a user or viewer. The display device 34 may be or include any type of display, such as an internal or external display or monitor, that presents the reconstructed picture. The display may include, for example, liquid crystal displays (LCD), organic light emitting diodes (OLED) displays, plasma displays, projectors, micro LED displays, liquid crystal on silicon (LCoS), digital light processors (DLP), or any other type of display.
[0091] 1 illustrates source device 12 and destination device 14 as separate devices, an embodiment of the devices may include both source device 12 or corresponding functionality and destination device 14 or corresponding functionality, or both. In such an embodiment, source device 12 or corresponding functionality and destination device 14 or corresponding functionality may be implemented using the same hardware and / or software or separate hardware and / or software or any combination thereof.
[0092] As will be clear to those skilled in the art based on the description, the presence and (exact) division of different units or functions within source device 12 and / or destination device 14 as shown in FIG. 1 may vary depending on the actual device and application.
[0093] Each of the encoder 20 (e.g., video encoder 20) and the decoder 30 (e.g., video decoder 30) may be implemented as any one of a variety of suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combination thereof. If the techniques are implemented in part in software, an apparatus may store instructions for the software in a suitable non-transitory computer-readable storage medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any one of the foregoing (including hardware, software, a combination of hardware and software, etc.) may be considered to be one or more processors. Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, either of which may be integrated within the respective apparatus as part of a combined encoder / decoder (CODEC).
[0094] FIG. 2 shows a schematic / conceptual block diagram of an exemplary video encoder 20 configured to implement the techniques of the present application. In the example of FIG. 2, the video encoder 20 includes a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210 and an inverse transform processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter unit 220, a decoded picture buffer (DPB) 230, a prediction processing unit 260, and an entropy coding unit 270. The prediction processing unit 260 may include an inter prediction unit 244, an intra prediction processing unit 254, and a mode selection unit 262. The inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). The video encoder 20 as shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.
[0095] For example, the residual calculation unit 204, the transform processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy coding unit 270 form a forward signal path of the encoder 20. Meanwhile, for example, the inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form a backward signal path of the encoder, which corresponds to the signal path of the decoder (see decoder 30 in FIG. 3 ).
[0096] The encoder 20 is arranged to receive, for example via an input 202, a picture 201 or a block 203 of a picture 201, for example a picture of a sequence of pictures forming a video or a video sequence. The picture block 203 may also be referred to as a current picture block or a coded picture block (particularly in video coding, to distinguish a current picture from other pictures, for example previously coded and / or decoded pictures of the same video sequence, i.e. the video sequence which also contains the current picture), and the picture 201 as a current picture or a coded picture.
[0097] The prediction processing unit 260, also referred to as the block prediction processing unit 260, is configured to receive or obtain the block 203 (the current block 203 of the current picture 201) and reconstructed picture data, e.g. reference samples of the same (current) picture from the buffer 216 and / or reference picture data 231 from one or more previously decoded pictures from the decoded picture buffer 230, and to process such data for prediction, i.e. to provide a prediction block 265, which may be an inter-prediction block 245 or an intra-prediction block 255.
[0098] The mode selection unit 262 may be configured to select a prediction mode (e.g., intra or inter prediction mode) and / or a corresponding prediction block 245 or 255 to be used as the prediction block 265 for calculation of the residual block 205 and for reconstruction of the reconstruction block 215.
[0099] An embodiment of the mode selection unit 262 may be configured to select a prediction mode (e.g., from those supported by the prediction processing unit 260) that is most suitable, or in other words provides the smallest residual (smallest residual means better compression for transmission or storage) or the smallest signaling overhead (smallest signaling overhead means better compression for transmission or storage), or that considers or balances both. The mode selection unit 262 may be configured to determine the prediction mode based on rate distortion optimization (RDO), i.e., to select a prediction mode that provides the smallest rate distortion optimization or is associated with a rate distortion that at least satisfies a prediction mode selection criterion.
[0100] The intra prediction unit 254 is further configured to determine an intra prediction block 255 based on the intra prediction parameters, e.g., a selected intra prediction mode. In any case, after selecting an intra prediction mode for the block, the intra prediction unit 254 is also configured to provide the intra prediction parameters, i.e., information indicative of the selected intra prediction mode for the block, to the entropy coding unit 270. In one example, the intra prediction unit 254 may be configured to perform any combination of the intra prediction techniques described below.
[0101] 3 is an exemplary video decoder 30 configured to implement the techniques of the present application. Video decoder 30 is configured to receive encoded picture data (e.g., encoded bitstream) 21, e.g., encoded by encoder 100, to obtain decoded pictures 131. During the decoding process, video decoder 30 receives video data from video encoder 100, e.g., an encoded video bitstream representing picture blocks of encoded video slices and associated syntax elements.
[0102] 3, decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., summer 314), a buffer 316, a loop filter 320, a decoded picture buffer 330, and a prediction processing unit 360. Prediction processing unit 360 may include an inter prediction unit 344, an intra prediction processing unit 354, and a mode selection unit 362. Video decoder 30 may, in some examples, perform a decoding path that is generally reciprocal to the encoding paths described with respect to video encoder 100 from FIG.
[0103] The entropy decoding unit 304 is configured to perform entropy decoding on the coded picture data 21 to obtain, e.g., quantized coefficients 309, and / or decoded coding parameters (not shown in FIG. 3), such as (decoded) any or all of inter-prediction parameters, intra-prediction parameters, loop filter parameters, and / or other syntax elements. The entropy decoding unit 304 is further configured to forward the inter-prediction parameters, intra-prediction parameters, and / or other syntax elements to the prediction processing unit 360. The video decoder 30 may receive video slice-level and / or video block-level syntax elements.
[0104] The inverse quantization unit 310 may be functionally identical to the inverse quantization unit 110, the inverse transform processing unit 312 may be functionally identical to the inverse transform processing unit 112, the reconstruction unit 314 may be functionally identical to the reconstruction unit 114, the buffer 316 may be functionally identical to the buffer 116, the loop filter 320 may be functionally identical to the loop filter 120, and the decoded picture buffer 330 may be functionally identical to the decoded picture buffer 130.
[0105] Prediction processing unit 360 may include an inter prediction unit 344 and an intra prediction unit 354, where the inter prediction unit 344 may be functionally similar to the inter prediction unit 144 and the intra prediction unit 354 may be functionally similar to the intra prediction unit 154. Prediction processing unit 360 is typically configured to perform block prediction and / or obtain a prediction block 365 from the encoded data 21, and to receive or obtain (explicitly or implicitly) prediction related parameters and / or information regarding a selected prediction mode, for example from entropy decoding unit 304.
[0106] When a video slice is coded as an intra coded (I) slice, intra prediction unit 354 of prediction processing unit 360 is configured to generate a prediction block 365 for a picture block of the current video slice based on a signaled intra prediction mode and data from a previously decoded block of the current frame or picture. When a video frame is coded as an inter coded (i.e., B or P) slice, inter prediction unit 344 (e.g., a motion compensation unit) of prediction processing unit 360 is configured to generate a prediction block 365 for a video block of the current video slice based on a motion vector and other syntax elements received from entropy decoding unit 304. In inter prediction, the prediction block may be generated from one of the reference pictures in one of the reference picture lists. Video decoder 30 may construct the reference frame lists, List 0 and List 1, using a prescribed construction technique based on the reference pictures stored in DPB 330.
[0107] Prediction processing unit 360 is configured to determine prediction information for video blocks of the current video slice by parsing the motion vectors and other syntax elements, and to use the prediction information to generate a predictive block for the current video block being decoded. For example, prediction processing unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra or inter prediction) used to encode video blocks of the video slice, an inter-prediction slice type (e.g., a B slice, a P slice, or a GPB slice), configuration information for one or more of the reference picture lists of the slice, motion vectors for each inter-coded video block of the slice, an inter-prediction state for each inter-coded video block of the slice, and other information for decoding video blocks in the current video slice.
[0108] The inverse quantization unit 310 is configured to inverse quantize, or dequantize, the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding unit 304. The inverse quantization process may include determining, for each video block in a video slice, the degree of quantization, and likewise the degree of inverse quantization to be applied, using a quantization parameter calculated by the video encoder 100.
[0109] Inverse transform processing unit 312 is configured to apply an inverse transform, eg, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients to produce residual blocks in the pixel domain.
[0110] The reconstruction unit 314 (e.g., adder 314) is configured to add the inverse transform block 313 (i.e., the reconstructed residual block 313) to the prediction block 365 to obtain a reconstructed block 315 in the sample domain, for example by adding sample values of the reconstructed residual block 313 and sample values of the prediction block 365.
[0111] The loop filter unit 320 (in the coding loop or after the coding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, e.g., to smooth pixel transitions or improve video quality. In one example, the loop filter unit 320 may be configured to perform any combination of the filtering techniques described below. The loop filter unit 320 is intended to represent one or more loop filters, such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters, e.g., a bilateral filter or an adaptive loop filter (ALF), or a sharpening or smoothing filter, or a collaborative filter. Although the loop filter unit 320 is illustrated in FIG. 3 as being in the loop filter, in other configurations, the loop filter unit 320 may be implemented as a post-loop filter.
[0112] The decoded video blocks 321 in a given frame or picture are then stored in a decoded picture buffer 330, which stores reference pictures used for subsequent motion compensation.
[0113] The decoder 30 is arranged to output the decoded pictures 331, for presentation or viewing to a user, eg via an output 332.
[0114] Other variations of the video decoder 30 may be used to decode the compressed bitstream. For example, the decoder 30 may generate an output video stream without having a loop filtering unit 320. For example, a non-transform-based decoder 30 may directly inverse quantize the residual signal for a particular block or frame without having an inverse transform processing unit 312. In another implementation, the video decoder 30 may have the inverse quantization unit 310 and the inverse transform processing unit 312 combined into a single unit.
[0115] As shown in Figures 4A and 4B, the latest version of JEM has several modes corresponding to skewed intra prediction directions. In any of these modes, if the corresponding position in the edge of the block is fractional, an interpolation of a set of neighboring reference samples should be performed to predict a sample in the block. HEVC and VVC use linear interpolation between two adjacent reference samples. JEM uses a more advanced 4-tap interpolation filter. The filter coefficients are selected to be either Gaussian or cubic coefficients depending on the width or height value. The decision on whether to use the width or height is coordinated with the decision on the selection of the dominant reference edge. When the intra prediction mode is greater than or equal to the diagonal mode, the top edge of the reference sample is selected as the dominant reference edge, and the width value is selected to determine the interpolation filter in use. Alternatively, the dominant edge reference is selected from the left side of the block, and the height controls the filter selection process. Specifically, if the length of the selected edge is 8 samples or less, a cubic interpolation 4-tap is applied. Otherwise, the interpolation filter is a 4-tap Gaussian filter.
[0116] FIG. 4A shows an example of 67 intra prediction modes as proposed for VVC. The intra prediction modes among the 67 intra prediction modes include planar mode (index 0), DC mode (index 1), and angular modes with indexes 2 to 66, where the angular mode at the bottom left of FIG. 4A represents index 2, and the index numbering is incremented until index 66 is the angular mode at the top right-most of FIG. 4A. As shown in FIG. 4B, the latest version of VVC has several modes corresponding to skewed intra prediction directions, including wide-angle directions (shown as dashed lines). In any of these modes, if the corresponding position in the edge of the block is fractional, an interpolation of a set of neighboring reference samples should be performed to predict the sample in the block.
[0117] The specific filter coefficients used in JEM are shown in Table 1. The predicted samples are calculated by convolution with coefficients selected from Table 1 according to the sub-pixel offset and filter type as follows:
[0118]
number
[0119] In this expression, ">>" denotes a bitwise right shift operation.
[0120] If a cubic filter is selected, the prediction samples are further clipped to a tolerance range defined in the SPS or derived from the bit depth of the selected component. [Table 1] Intra prediction interpolation filters [Table 1]
[0121] The motion compensation process also uses filtering to predict sample values when the displacement of pixels in the reference block is fractional. In JEM, 8-tap filtering is used for the luma component and 4-tap long filtering is used for the chroma component. The motion interpolation filter is first applied in the horizontal direction, and the output of the horizontal filtering is further filtered in the vertical direction. The coefficients of the 4-tap chroma filter are shown in Table 2. [Table 2] Chrominance motion interpolation filter coefficients [Table 2]
[0122] Conventional video coding solutions use different interpolation filters for intra- and inter-prediction. In particular, Figures 5 to 11 show different examples of interpolation filters. For example, Figure 5 shows the interpolation filters used in JEM, and Figure 6 shows the interpolation filters proposed for Core Experiment CE3-3.1.3 (JVET-K1023).
[0123] The lookup tables and hardware modules of the chrominance motion compensation sub-pel filter that interpolates pixel values may be reused in the intra predictor if they fall in fractional positions between reference samples. Since it is intended that the same hardware is used for both inter and intra prediction, the precision of the filter coefficients should match. That is, the number of bits representing the filter coefficients of the intra reference sample interpolation should be aligned with the coefficient precision of the sub-pel motion compensation interpolation filtering.
[0124] Figure 12 shows an embodiment of the proposed invention. The dashed "4-tap interpolation filter with 6-bit coefficients for chrominance" (further called "unified intra / inter filter") may be used for both processing, interpolation of intra- and inter-predicted samples.
[0125] A specific embodiment utilizing this design is shown in Figure 13. In this implementation, the filtering module is implemented as a separate unit that is responsible for both predicting chrominance samples in motion compensation and predicting luma and chrominance samples when performing intra prediction. In this implementation, the hardware filtering part is used in both intra and inter prediction processes.
[0126] Another embodiment shows an implementation when only the LUT of the filter coefficients is reused (see FIG. 14). In this implementation, the hardware filtering module loads the coefficients from the LUT stored in ROM. A switch shown in the intra prediction process determines the filter type used depending on the major edge length selected for the intra prediction process.
[0127] A practical embodiment of the proposed application may use the following coefficients (see Tables 3A and 3B):
[0128] [Table 3A] Intra and Inter Interpolation Filters [Table 3] [Table 3B] Intra and Inter Interpolation Filters [Table 4]
[0129] The intra prediction samples are calculated by convolution with coefficients selected from Table 3A or Table 3B according to the sub-pixel offset and filter type, as follows:
number
[0130] In this expression, ">>" denotes a bitwise right shift operation.
[0131] If the "Uniform Intra / Inter Filter" filter is selected, the predicted samples are further clipped to a tolerance range defined in the SPS or derived from the bit depth of the selected component.
[0132] The same filters can be used for intra reference sample interpolation and sub-pel motion compensation interpolation, reusing hardware modules and reducing the total size of memory required.
[0133] In addition to the reused filters, the precision of the filter coefficients used for intra reference sample interpolation should be aligned with the precision of the coefficients of the reused filters mentioned above.
[0134] The luma processing in motion compensation does not necessarily use 8-tap filtering, but may also operate on 4-tap filtering, in which case the 4-tap filter may be chosen to be unified.
[0135] The embodiments may be applied in different parts of the intra prediction process that may include interpolation. In particular, when extending the main reference samples, the edge reference samples may be filtered using a unified interpolation filter (see JVET-K0211 for details).
[0136] The intra block duplication operation also includes an interpolation step that may use the proposed invention (for a description of intra block duplication, see [Xiaozhong Xu, Shan Liu, Tzu-Der Chuang, Yu-Wen Huang, Shawmin Lei, Krishnakanth Rapaka, Chao Pang, Vadim Seregin, Ye-Kui Wang, Marta Karczewicz: Intra Block Copy in HEVC Screen Content Coding Extensions. IEEE J. Emerg. Sel. Topics Circuits Syst. 6(4): 409-419 (2016)]).
[0137] A method of aspect ratio dependent filtering for intra prediction is disclosed, which comprises selecting an interpolation filter for a block to be predicted depending on the aspect ratio of the block.
[0138] In one example, the step of selecting the interpolation filter depends on the direction for thresholding the intra-prediction mode of the block to be predicted.
[0139] In one example, the direction corresponds to the angle of the main diagonal of the block to be predicted.
[0140] In one example, the orientation angle is calculated as follows:
number
[0141] where W, H are the width and height, respectively, of the block to be predicted.
[0142] In one example, the aspect ratio is:
[0143]
number
[0144] In one example, the angle of the main diagonal of the block to be predicted is determined based on the aspect ratio.
[0145] In one example, the threshold for an intra-prediction mode of a block is determined based on the angle of the main diagonal of the block to be predicted.
[0146] In one example, the step of selecting an interpolation filter depends on which side the reference sample in use belongs to.
[0147] In one example, a line with an angle corresponding to the intra direction divides the block into two regions.
[0148] In one example, reference samples belonging to different regions are predicted with different interpolation filters.
[0149] In one example, the filter includes a cubic or Gaussian interpolation filter.
[0150] In one form of implementation of this application, a frame is the same as a picture.
[0151] In one implementation form of the present application, the value corresponding to VER_IDX is 50, the value corresponding to HOR_IDX is 18, the value corresponding to VDIA_IDX is 66, which may be the maximum value among the values corresponding to the angular modes, the value 2 corresponding to intra mode 2 may be the minimum value among the values corresponding to the angular modes, and the value corresponding to DIA_IDX is 34.
[0152] SUMMARY OF THE DISCLOSURE The present disclosure aims to improve intra-mode signaling schemes. In this disclosure, a video decoding method and a video decoder are proposed.
[0153] In another aspect of the present application, a decoder is disclosed that includes a processing circuit configured to perform the above-mentioned decoding method.
[0154] In another aspect of the present application, a computer program product is disclosed comprising program code for carrying out the above-mentioned decoding method.
[0155] In another aspect of the present application, a decoder for decoding video data is disclosed, the decoder including one or more processors and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, the programming, when executed by the processors, configuring the decoder to perform the decoding method described above.
[0156] The processing circuitry may be implemented in hardware, or in a combination of hardware and software, such as by a software programmable processor.
[0157] The processing circuitry may be implemented in hardware, or in a combination of hardware and software, such as by a software programmable processor.
[0158] H.264 / AVC and HEVC specify that a low-pass filter may be applied to the reference samples before they are used in the intra prediction process. The decision of whether to use a reference sample filter or not is determined by the intra prediction mode and block size. This mechanism may be called Mode Dependent Intra Smoothing (MDIS). There are also several methods related to MDIS. For example, the Adaptive Reference Sample Smoothing (ARSS) method may signal whether the prediction samples are filtered or not explicitly (i.e., a flag is included in the bitstream) or implicitly (i.e., data hiding is used to avoid putting a flag in the bitstream, e.g., to reduce signaling overhead). In this case, the encoder may make a decision about smoothing by testing the Rate-Distortion (RD) cost for all possible intra prediction modes.
[0159] As shown in Figures 4A and 4B, the latest version of JEM (JEM-7.2) has several modes corresponding to skewed intra prediction directions. In any of these modes, if the corresponding position in the edge of the block is fractional, an interpolation of a set of neighboring reference samples should be performed to predict a sample in the block. HEVC and VVC use linear interpolation between two adjacent reference samples. JEM uses a more advanced 4-tap interpolation filter. The filter coefficients are selected to be either Gaussian or cubic coefficients depending on the width or height value. The decision on whether to use the width or height is coordinated with the decision on the selection of the dominant reference edge. When the intra prediction mode is greater than or equal to the diagonal mode, the top edge of the reference sample is selected as the dominant reference edge, and the width value is selected to determine the interpolation filter in use. Alternatively, the dominant edge reference is selected from the left side of the block, and the height controls the filter selection process. Specifically, if the length of the selected edge is 8 samples or less, a cubic interpolation 4-tap is applied. Otherwise, the interpolation filter is a 4-tap Gaussian filter.
[0160] An example of interpolation filter selection for less than and greater than diagonal modes (denoted as 45°) for a 32×4 block is shown in FIG.
[0161] In VVC, a partitioning mechanism known as QTBT is used that is based on both quad-trees and binary trees. As shown in Fig. 16, QTBT partitioning can provide not only square but also rectangular blocks. Of course, some signaling overhead and increased computational complexity at the encoder side are the price to pay for QTBT partitioning compared to the traditional quad-tree based partitioning used in the HEVC / H.264 standard. Nevertheless, QTBT-based partitioning has better segmentation properties and therefore demonstrates significantly higher coding efficiency than traditional quad-trees.
[0162] However, VVC, in its current state, applies the same filter to both edges (left and top edges) of a reference sample: regardless of whether the block is vertically or horizontally oriented, the reference sample filter is the same for both reference sample edges.
[0163] In this document, the terms "vertically oriented block" ("block vertical") and "horizontally oriented block" ("block horizontal") apply to rectangular blocks generated by the QTBT framework. These terms have the same meaning as shown in Figure 17.
[0164] This disclosure proposes a mechanism to select different reference sample filters to take into account the block orientation. Specifically, the width and height of the block are checked separately. Thus, different reference sample filters are applied to reference samples located on different sides of the block to be predicted.
[0165] Reviewing the prior art, it was explained that the interpolation filter selection is coordinated with the decision about the primary reference edge selection. Both of these decisions currently depend on a comparison with the diagonal (45 degree) direction of the intra prediction mode.
[0166] However, it turns out that this design has serious drawbacks for long and narrow blocks. From Fig. 18, we can see that even if the short side is selected as the primary reference using the mode comparison criterion, most of the predicted pixels will still be derived from the reference samples of the longer side (shown as dashed regions).
[0167] The present disclosure proposes to use alternative directions for thresholding intra-prediction modes during the interpolation filter selection process. Specifically, the directions correspond to the angles of the main diagonal of the block to be predicted. For example, for blocks of size 32×4 and 4×32, the threshold mode mT used to determine the reference sample filter is defined as shown in FIG.
[0168] A particular value of the threshold intra-prediction angle may be calculated using the following equation:
number
[0169] Another embodiment of the present disclosure is to use different interpolation filters depending on which side the reference sample being used belongs to. An example of this determination is shown in FIG.
[0170] A line with an angle corresponding to the intra direction m divides the prediction block into two regions. Samples belonging to different regions are predicted using different interpolation filters. (For the set of intra prediction modes defined in BMS1.0) T Exemplary values of and corresponding angles are shown in Table 4. The angle α is given as shown in FIGS. [Table 4] (For the set of intra-prediction modes defined in BMS1.0) T Example values of [Table 5]
[0171] Compared to existing techniques and solutions, the present disclosure uses samples within a block to be predicted using different interpolation filters, where the interpolation filters used to predict a sample are selected according to the block shape, its orientation, whether horizontal or vertical, and the intra-prediction mode angle.
[0172] The present disclosure may be applied at the reference sample filtering stage. In particular, it is possible to determine the reference sample smoothing filter using rules similar to those described above for the interpolation filter selection process.
[0173] In addition to the interpolation filtering, reference sample filtering can also be applied to the reference samples just before predicting the samples in the intra predictor. The filtered reference samples obtained after the reference sample filtering can be used to copy them to the corresponding samples in the intra predictor according to the selected direction of the intra prediction mode, or for further interpolation filtering. The following filters can be applied to the reference samples in this way: Table 5: Exemplary reference sample filters [Table 6]
[0174] The results of the directional prediction can be combined with prediction results obtained by different means, including: ·Boundary smoothing, · PDPC and Simplified PDPC.
[0175] In the case of boundary smoothing and PDPC, some of the first columns or some of the first rows of a prediction block are combined with an additional prediction signal generated from neighboring samples.
[0176] The particular implementation of the simplified PDPC may be performed in different manners depending on the intra-prediction mode.
[0177] For Planar, DC, and HOR / VER intra prediction modes (shown as 0, 1, 18, and 50 in Figures 4A and 4B, respectively), the following steps are performed. The predicted sample P(x,y) located at (x,y) is calculated as follows:
number
number
[0178] In planar mode, wTL = 0, while in horizontal mode wTL = wT and in vertical mode wTL = wL. The DC mode PDPC weights (wL, wT, wTL) of the (0,0) and (1,0) positions inside one 4x4 block are shown.
[0179] In the diagonal (shown as 2 and 66 in FIGS. 4A and 4B) and adjacent modes (directional modes not less than 58 and not more than 10 in FIGS. 4A or 4B), the process is carried out as described below.
[0180] FIG. 22(a) shows the extension of the PDPC to the upper right diagonal mode, with the reference sample R x,-1 , R -1,y , and R -1,-1 Here is the definition of the predicted sample pred(x',y') located at (x',y') in the predicted block. x,-1 The coordinate x of the reference sample R is given by x=x'+y'+1. -1,y The y coordinate of is similarly given by y=x'+y'+1. The PDPC weights for the upper right diagonal mode are
number
[0181] Similarly, Fig. 22(b) shows the extension of the PDPC to the lower left diagonal mode, with the reference sample R x,-1 , R -1,y , and R -1,-1 The definition of the reference sample R x,-1 The coordinate x of the reference sample R is given by x=x'+y'+1. -1,y The y coordinate of is given by y=x'+y'+1. The PDPC weights of the upper right diagonal mode are
number
number
number
[0182] However, the processing (e.g., filtering) of the neighboring samples used as input processing for directional intra prediction may be different from that passed to the input of the PDPC or simple PDPC. For example, directional intra prediction may use filtered reference samples, while the PDPC or simple PDPC may use unfiltered samples. In particular, when the directional intra prediction mode is a wide angle mode with integer sample sub-pixel offset (intraPredAngle, shown and further described in Table X), the reference samples may be filtered, while the PDPC may use unfiltered reference samples.
[0183] For the simple PDPC, the current implementation is shown in FIG.
[0184] In FIG. 23, the dashed boxes may designate one of the following: - Simple PDPC processing, PDPC processing (e.g., as specified in the JEM), Boundary smoothing (e.g. as specified in HEVC). Another method uses a linear combination to update the results of intra prediction.
[0185] In all these cases, the process involves an update step, ie a linear combination of the outputs of the intra prediction and additional part generation steps.
[0186] In a particular implementation, the steps of "reference sample filtering #1" and intra prediction may be merged by convolving the sub-pixel interpolation filter coefficients with the coefficients of the reference sample filter. However, in intra prediction modes with non-fractional displacement (when intraPredAngle is a multiple of 32), this merging is redundant, since the filtering operation in this case is performed per prediction sample, not per reference sample, as shown in FIG. 23.
[0187] From Fig. 23, it can be seen that the reference samples may be filtered in different ways depending on the specified intraPredMode. For example, the decision on the filter to be applied to the reference samples may be made according to Table X. Table X uses the following notation: "S" means that the decision depends on the block size. This size dependence is implemented as follows: The block size parameter nTbS, set equal to (log2(nTbW)+Log2(nTbH))>>1, is the size dependence of the block size T S Compared to nTbS>T S If nTbS≦T then the same process applies as described further for the value of “1”. S For the case of , the same process is applied as described further for the value of '0', where nTbW and nTbH denote the width and height of the prediction block, respectively, and '>>' denotes a right shift operation. S The value of may be set to, for example, 2, or may be defined depending on the intra prediction mode (eg, as is done in the case of MDIS in HEVC). "1" means that processing is enabled. For reference sample filtering, a value of "1" means that the reference samples are processed by the
[0121] filter. "0" means that processing is disabled. For reference sample filtering, a value of "1" means that the reference samples are processed by the [1] filter, i.e. no filtering is applied to the reference samples. [Table X] Reference sample filtering decision depending on the direction intraPredMode (as shown in Figure 4B) [Table 7]
[0188] The embodiment of the present invention aims at unifying the reference sample processing by combining the output of the directional prediction and the additional prediction signal that is used to improve the visual quality of the predicted block. As a result of this unification, the reference sample is processed only once, and the result of this processing is reused both by the directional intra prediction processing and the generation of the additional prediction (see FIG. 24).
[0189] 24, it can be seen that only one step of reference sample filtering is required. Thus, the filtering decision is made according to Table Y. [Table Y] Reference sample filtering decision depending on the direction intraPredMode (as shown in Figure 4B) [Table 8]
[0190] The additions for the simple PDPC case may be performed as specified in the VVC specification. In addition, the following notation is used:
number
[0191] Given the above notation, the steps of simplified PDPC can be defined as follows: The inputs to this process are: Intra prediction mode predModeIntra, · Variable nTbW, which specifies the conversion block width; · Variable nTbH, which specifies the transformation block height; · Variable refW, which specifies the reference sample width; A variable refH that specifies the reference sample height, The predicted samples, predSamples[x][y], where x=0...nTbW-1 and y=0...nTbH-1, Neighboring samples p[x][y], where x=-1, y=-1...refH-1, and x=0...refW-1, y=-1, · Variable cIdx that specifies the color components of the current block. The output of this process is the modified predicted samples predSamples[x][y], where x=0...nTbW-1, y=0...nTbH-1. Depending on the value of cIdx, the function clip1Cmp is set as follows: If cIdx is equal to 0, clip1Cmp is Clip1 Y is set equal to Otherwise, clip1Cmp is Clip1 C is set equal to The variable nScale is set to:
number
number
number
number
number
number
number
number
number
number
number
[0192] Therefore, at both the encoder and decoder side, the proposed method uses as input data: directional intra prediction mode (further indicated as predModeIntra in Fig. 4A and Fig. 4B ); A block size parameter nTbS, which is set equal to (log2(nTbW)+Log2(nTbH))>>1, where nTbW and nTbH denote the width and height of the prediction block, respectively, and ">>" denotes a right shift operation.
[0193] The following steps may be performed to implement the intra prediction method. Step 1. Perform reference sample filtering based on the reference samples, intra prediction mode intraPredMode and / or block dimensions (width and height). Step 2. Perform directional intra prediction based on the processed (filtered or unfiltered reference samples) reference samples (result of step 1) according to the intraPredAngle. Step 3. Update the results obtained in step 2 with a predicted combination of possible: ·PDPC, ·Simple PDPC.
[0194] Here, the input reference samples used in step 3 are the same reference samples obtained in step 1 and used in step 2 for the integer gradient wide angle mode (e.g., −14, −12, −10, −6, 72, 76, 78, 80, as specified in Tables 6 and 7).
[0195] The reference sample filtering may include: Based on predModeIntra, determine whether a filtered or unfiltered reference sample buffer should be used. This can be done by applying one of the filters listed in Table 5 below. In VVC, filters with indexes 0 and 1 are used. For example, the reference samples are filtered (filter index "1" in Table 5 is used) when predMode is equal to 2, 34, or 66 and when nTbS>2.
[0196] An alternative embodiment of the above method is to use an angle parameter (further denoted as intraPredAngle) instead of the intra prediction mode predModeIntra (also written as IntraPredMode) in this step. In this case, if the value of intraPredAngle is a multiple of 32 and when nTbS>2, the reference samples are filtered (filter index "1" in Table 5 is used).
[0197] A modification of the VCC specification to enable use of the proposed method may include replacing "neighboring sample p[x][y]" with "reference sample p[x][y]" in the section describing the simplified PDPC.
[0198] The angle parameter intraPredAngle indicates a sub-pixel offset between two adjacent rows of prediction samples in a fixed-point representation having a fractional part length equal to 5 bits. This parameter may be derived from an intra prediction mode and is derived from predModeIntra. An exemplary derivation of intraPredAngle from predModeIntra may be defined by a LUT, for example, as shown in Table 8. Table 8: Exemplary LUT for deriving intraPredAngle from predModeIntra [Table 9]
[0199] For example, it is understood that disclosure related to a described method may also apply to a corresponding apparatus or system configured to perform the method, and vice versa. For example, where particular method steps are described, a corresponding apparatus may include units for performing the described method steps, even if the units are not explicitly described or shown in the figures. Furthermore, it is understood that features of various exemplary aspects described herein may be combined with each other, unless otherwise specified.
[0200] Video coding usually refers to the processing of a sequence of pictures, forming a video or a video sequence. The terms picture, image or frame may / are used synonymously in the field of video coding, and so in this application. Each picture is typically partitioned into a set of non-overlapping blocks. Picture coding / decoding is typically performed at the block level, where for example inter-frame or intra-frame prediction is used to generate a predictive block, which is subtracted from a current block (the block currently being / to be processed) to obtain a residual block, which is further transformed and quantized to reduce the amount of data to be transmitted (compression). Meanwhile, at the decoder side, an inverse process is applied to the coded / compressed block to reconstruct the block for presentation.
[0201] The present invention further provides the following embodiments.
[0023] Embodiment 1. A method of intra prediction, comprising: Processing a reference sample; performing a directional intra prediction based on the processed reference samples according to intra prediction; and performing additional predictions based on the processed reference samples.
[0023] Embodiment 2. The method of embodiment 1, wherein the step of processing the reference samples comprises reference sample filtering or sub-pixel interpolation filtering.
[0023] Embodiment 3. The directional intra prediction mode is: A. Vertical or horizontal mode, B. Diagonal modes representing angles that are multiples of 45°, C. Remaining direction mode, 2. The method of embodiment 1, wherein the method is included in at least one group of:
[0023] Embodiment 4. The method of embodiment 3, wherein when the directional intra-prediction mode is classified as belonging to group A, no filter is applied to the reference samples to generate the intra-predictor.
[0023] Embodiment 5. The method according to embodiment 3, wherein when the direction mode is included in group B, a reference sample filter is applied to a reference sample (no interpolation filter is applied) to copy a filtered value to an intra predictor according to the selected direction.
[0023] Embodiment 6. The method according to embodiment 3, wherein when the direction mode is classified as belonging to group C, only intra-reference sample interpolation filters are applied to the reference samples (no reference sample filtering is performed) to generate prediction samples that are included in fractional or integer positions between the reference samples according to the selected direction. Embodiment 7. The method according to any one of embodiments 1 to 6, wherein the reference sample filtering is performed based on at least one of the following: a reference sample, an intra-prediction mode (IntraPredMode), or a block size parameter.
[0023] Embodiment 8. The method of embodiment 7, wherein the processed reference sample comprises a filtered reference sample or an unfiltered reference sample.
[0021] Embodiment 9. The method of embodiment 7, wherein the method further comprises determining whether a filtered or unfiltered reference sample buffer is used based on the predModeIntra.
[0023] Embodiment 10. The method of embodiment 9, wherein a filter having an index of 0 or 1 is used.
[0023] Embodiment 11. The method of embodiment 9, wherein the reference sample is filtered (filter index "1" in Table 5 is used) when predMode is equal to 2, 34, or 66 and when nTbS>2.
[0023] Embodiment 12. The method of embodiment 7, wherein the method further comprises determining whether a filtered or unfiltered reference sample buffer is used based on the block size parameter, the block size parameter being an angle parameter (intraPredAngle).
[0023] Embodiment 13. The method of embodiment 12, wherein when the value of the intraPredAngle is a multiple of 32 and nTbS>2, the reference samples are filtered (filter index "1" in Table 5 is used).
[0023] Embodiment 14. The method according to any one of embodiments 1 to 13, wherein the additional prediction is a Position-Dependent Prediction Combination (PDPC) or a Simplified PDPC.
[0023] Embodiment 15. The method according to any one of embodiments 1 to 14, wherein the intra prediction and the extra prediction are performed in parallel.
[0023] Embodiment 16. The method of any one of embodiments 1 to 15, wherein the directional intra prediction comprises integer gradient wide modes (e.g., -14, -12, -10, -6, 72, 76, 78, 80 as specified in Tables X and Y).
[0202] A decoder or encoder comprising processing circuitry configured to perform the method described above.
[0203] The present disclosure discloses a computer program product comprising program code for carrying out the above-mentioned methods. The present disclosure discloses a decoder for decoding video data, the decoder comprising: one or more processors; a non-transitory computer readable storage medium coupled to a processor and storing programming for execution by the processor, the programming, when executed by the processor, configuring the decoder to perform the method described above; Includes.
[0204] FIG. 25 is a block diagram illustrating an example structure of an apparatus 2500 for intra prediction of a current image block in a current picture of a video. In one example, the apparatus 2500 may correspond to the intra prediction unit 254 of FIG. 2. In another example, the apparatus 2500 may correspond to the intra prediction unit 354 of FIG. 3. The apparatus 2500 is configured to perform the above-mentioned method, An obtaining unit 2502 configured to obtain an intra-prediction mode of a block; a wide-angle prediction unit 2504 configured to obtain a prediction sample of the block based on the filtered reference sample when the intra prediction mode of the block is a wide-angle mode; may include:
[0205] The device 2500 may further include a determination unit (not shown in FIG. 25) configured to determine whether the intra-prediction mode of the block is a wide-angle mode.
[0206] FIG. 26 is a block diagram of a device 1500 that can be used to implement various embodiments. The device 1500 may be a source device 102 as shown in FIG. 1, a video encoder 200 as shown in FIG. 2, a destination device 104 as shown in FIG. 1, or a video decoder 300 as shown in FIG. 3. Additionally, the device 1500 may host one or more of the described elements. In some embodiments, the device 1500 includes one or more input / output devices, such as a speaker, a microphone, a mouse, a touch screen, a keypad, a keyboard, a printer, a display, and the like. The device 1500 may include one or more central processing units (CPUs) 1510, memory 1520, mass storage 1530, a video adapter 1540, and / or an I / O interface 1560, connected to a bus. The bus may be one or more of any type of several bus architectures, including a memory bus or memory controller, a peripheral bus, a video bus, and the like.
[0207] CPU 1510 may include any type of electronic data processor. Memory 1520 may be or include any type of system memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), read-only memory (ROM), combinations thereof, and the like. In one embodiment, memory 1520 may include ROM for use at boot-up, and DRAM for program and data storage for use during program execution. In an embodiment, memory 1520 is non-transitory. Mass storage 1530 includes any type of storage device that stores data, programs, and other information and makes the data, programs, and other information accessible via a bus. Mass storage 1530 includes, for example, one or more of a solid state drive, a hard disk drive, a magnetic disk drive, an optical disk drive, and the like.
[0208] Video adapter 1540 and I / O interface 1560 provide interfaces for connecting external input and output devices to appliance 1500. For example, appliance 1500 may provide a SQL command interface to a client. As shown, examples of input and output devices include a display 1590 connected to video adapter 1540, and any combination of mouse / keyboard / printer 1570 connected to I / O interface 1560. Other devices may be connected to appliance 1500 and additional or fewer interface cards may be utilized. For example, a serial interface card (not shown) may be used to provide a serial interface for a printer.
[0209] The device 1500 also includes one or more network interfaces 1550, including wired links such as Ethernet cables and / or wireless links for accessing a node or one or more networks 1580. The network interfaces 1550 enable the device 1500 to communicate with remote units over the networks 1580. For example, the network interfaces 1550 may provide communication to a database. In one embodiment, the device 1500 is connected to a local or wide area network for communication with remote devices such as data processing and other processing units, the Internet, remote storage facilities, and the like.
[0210] The following is a description of the application of the encoding and decoding methods as illustrated in the above embodiments, and the systems that use them.
[0211] 27 is a block diagram showing a content supply system 3100 for implementing a content distribution service. The content supply system 3100 includes a capture device 3102, a terminal device 3106, and optionally a display 3126. The capture device 3102 communicates with the terminal device 3106 via a communication link 3104. The communication link may include the communication channel 13 described above. The communication link 3104 includes, but is not limited to, WIFI, Ethernet, cable, wireless (3G / 4G / 5G), USB, or any type of combination thereof, etc.
[0212] The capture device 3102 may generate data and encode the data by the encoding method as shown in the above embodiment. Alternatively, the capture device 3102 may deliver the data to a streaming server (not shown in the figure), which encodes the data and transmits the encoded data to the terminal device 3106. The capture device 3102 includes, but is not limited to, a camera, a smartphone or Pad, a computer or laptop, a video conferencing system, a PDA, an in-vehicle device, or any combination thereof. For example, the capture device 3102 may include the source device 102 as described above. When the data includes video, the video encoder 20 included in the capture device 3102 may actually perform the video encoding process. When the data includes audio (i.e., voice), the audio encoder included in the capture device 3102 may actually perform the audio encoding process. In some practical scenarios, the capture device 3102 delivers the encoded video and audio data by multiplexing them together. In other practical scenarios, for example, in a video conferencing system, the encoded audio data and the encoded video data are not multiplexed. The capture device 3102 delivers the encoded audio data and the encoded video data separately to the terminal device 3106 .
[0213] In the content delivery system 3100, the terminal device 310 receives and plays the encoded data. The terminal device 3106 may be a device with data receiving and recovering capabilities, such as a smartphone or Pad 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (DVR) 3112, a TV 3114, a set top box (STB) 3116, a video conferencing system 3118, a video surveillance system 3120, a personal digital assistant (PDA) 3122, an in-vehicle device 3124, or any combination thereof, capable of decoding the encoded data described above. For example, the terminal device 3106 may include the destination device 14 described above. When the encoded data includes video, the video decoder 30 included in the terminal device is prioritized to perform the video decoding. When the encoded data includes audio, the audio decoder included in the terminal device is prioritized to perform the audio decoding process.
[0214] In terminal devices with a display, such as a smartphone or Pad 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (DVR) 3122, a TV 3114, a personal digital assistant (PDA) 3122, or an in-vehicle device 3124, the terminal device can provide the decoded data to its own display. In terminal devices without a display, such as a STB 3116, a video conferencing system 3118, or a video surveillance system 3120, an external display 3126 is internally connected to receive and display the decoded data.
[0215] When each device in the system performs encoding or decoding, it can use a picture encoding device or a picture decoding device as shown in the above embodiments.
[0216] 28 is a diagram showing an example structure of the terminal device 3106. After the terminal device 3106 receives a stream from the capture device 3102, the protocol progression unit 3202 analyzes the transmission protocol of the stream. The protocol includes, but is not limited to, Real Time Streaming Protocol (RTSP), Hyper Text Transfer Protocol (HTTP), HTTP Live streaming protocol (HLS), MPEG-DASH, Real-time Transport protocol (RTP), Real Time Messaging Protocol (RTMP), or any kind of combination thereof, etc.
[0217] After the protocol processing unit 3202 processes the stream, a stream file is generated. The file is output to the demultiplexing unit 3204. The demultiplexing unit 3204 can separate the multiplexed data into encoded audio data and encoded video data. As mentioned above, in some practical scenarios, for example in a video conferencing system, the encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is sent to the video decoder 3206 and the audio decoder 3208 without passing through the demultiplexing unit 3204.
[0218] The demultiplexing process generates a video elementary stream (ES), an audio ES, and any subtitles. The video decoder 3206, which includes the video decoder 30 as described in the above embodiment, decodes the video ES by the decoding method as shown in the above embodiment to generate video frames, and supplies this data to the synchronization unit 3212. The audio decoder 3208 decodes the audio ES to generate audio frames, and supplies this data to the synchronization unit 3212. Alternatively, the video frames may be stored in a buffer (not shown in Figure Y) before supplying them to the synchronization unit 3212. Similarly, the audio frames may be stored in a buffer (not shown in Figure Y) before supplying them to the synchronization unit 3212.
[0219] The synchronization unit 3212 synchronizes the video and audio frames and provides the video / audio to a video / audio display 3214. For example, the synchronization unit 3212 synchronizes the presentation of video and audio information, which may be encoded in the syntax with timestamps for the presentation of the encoded audio and visual data, and for the delivery of the data stream itself.
[0220] If subtitles are included in the stream, the subtitle decoder 3210 decodes the subtitle, synchronizes it with the video and audio frames, and provides the video / audio / subtitle to the video / audio / subtitle display 3216 .
[0221] The present invention is not limited to the above-mentioned system, and either the picture encoding device or the picture decoding device in the above-mentioned embodiments can be incorporated into other systems, for example, a vehicle system.
[0222] Implementations of the subject matter and operations described in this disclosure may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this disclosure and their structural equivalents, or in one or more combinations thereof. Implementations of the subject matter described in this disclosure may be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a computer storage medium for execution by or to control the operation of a data processing device. Alternatively or additionally, the program instructions may be encoded in an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal generated to encode information for transmission to a suitable receiving device for execution by the data processing device. A computer storage medium, e.g., a computer readable medium, may be or be included in a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or a combination of one or more thereof. Furthermore, a computer storage medium is not a propagating signal, but a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium may be, or may be contained in, one or more separate physical and / or non-transitory components or media (e.g., multiple CDs, disks, or other storage devices).
[0223] In some implementations, the operations described in this disclosure may be implemented as hosted services provided on servers in a cloud computing network. For example, computer-readable storage media may be logically grouped and accessible in a cloud computing network. The servers in the cloud computing network may include a cloud computing platform that provides cloud-based services. The terms "cloud," "cloud computing," and "cloud-based" may be used interchangeably as appropriate without departing from the scope of this disclosure. Cloud-based services may be hosted services provided by servers and delivered across a network to client platforms to enhance, augment, or replace applications that run locally on client computers. Circuits may use cloud-based services to quickly receive software upgrades, applications, and other resources that would otherwise take a long time before the resources could be delivered to the circuit.
[0224] A computer program (also known as a program, software, software application, script, or code) may be written in any type of programming language, including compiled or interpreted languages, declarative or procedural languages, and it may be deployed in any form, including a standalone program or a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may correspond to a file in a file system, but need not. A program may be stored in part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple associated files (e.g., a file that stores one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer, or on multiple computers that are located at one site or distributed at multiple sites and interconnected by a communication network.
[0225] The processes and logic flows described in this disclosure may be performed by one or more programmable processors executing one or more computer programs that perform operations by operating on input data and generating output. The processes and logic flows may also be performed by, and devices may be implemented as, special purpose logic circuitry, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
[0226] Processors suitable for executing a computer program include, by way of example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from a read-only memory or a random access memory, or both. The basic elements of a computer are a processor, which performs operations according to instructions, and one or more memory devices for storing instructions and data. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive data from them or transfer data to them, or both. However, a computer need not have such devices. Additionally, a computer may be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name a few. Suitable devices for storing computer program instructions and data include all types of non-volatile memory, media, and memory devices, including, by way of example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0227] Although the present disclosure includes details of numerous specific implementations, these should not be considered as limitations on the scope of any implementation or what may be claimed, but rather as descriptions of features specific to a particular implementation. Certain features described in the disclosure in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation may also be implemented separately or in any suitable subcombination in multiple implementations. Furthermore, although features may be described above as operating in a particular combination and may even initially be claimed as such, one or more features from a claimed combination may, in some cases, be separated from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0228] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring that such operations be performed in the particular order shown, or in sequential order, or that all of the illustrated operations be performed, to achieve desirable results. In certain environments, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described implementations should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems may typically be integrated together in a single software product or packaged in multiple software products.
[0229] As noted above, particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results. Moreover, the processes depicted in the accompanying figures do not necessarily require the particular order shown or sequential order to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
[0230] Although several embodiments have been provided in this disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the disclosure. The examples of the present invention should be considered as illustrative and not restrictive, and are not intended to be limited to the details given herein. For example, various elements or components may be combined or integrated into another system, or certain features may be omitted or not implemented.
[0231] Additionally, techniques, systems, subsystems, and methods described and shown in various embodiments as separate or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as coupled or directly coupled or in communication with each other may be indirectly coupled or communicate through some interface, device, or intermediate component, whether electrical, mechanical, or otherwise. Other examples of modifications, substitutions, and alterations will be ascertained by those skilled in the art and may be made without departing from the spirit and scope of the present disclosure. [Explanation of symbols]
[0232] 12 Source Device 14 Destination Device 16 Picture Source 18 Pretreatment 20 Encoder 22 Communication Interface 28 Communication Interface 30 Decoder 32 Post-processing 34 Display device
Claims
1. 1. A method of intra prediction of a block in a picture of a video, the method being performed by a video encoder or a video decoder, the method comprising: obtaining an intra prediction mode (IntraPredMode) of the block; determining that the intra prediction mode of the block is a wide mode; filtering reference samples of the block to generate filtered reference samples of the block based at least in part on determining that the intra-prediction mode of the block is a wide-angle mode; generating a predicted sample for the block using the filtered reference samples without applying an interpolation filter; The method includes:
2. The method comprises:
2. The method of claim 1, further comprising: updating the prediction samples of the block by performing a Position-Dependent Prediction Combining (PDPC) process, wherein the filtered reference samples are used for both an intra prediction process and the PDPC process.
3. The method of claim 1 or 2, wherein the value indicative of the wide angle mode is at least one of −14, −12, −10, −6, 72, 76, 78, or 80.
4. The method according to any one of claims 1 to 3, wherein the filter used for filtering the reference samples is defined by coefficients [1,2,1] / 4.
5. When the intra prediction mode of the block is equal to INTRA_PLANAR or INTRA_DC, wT[y]=32>>((y<<1)>>nScale), wL[x]=32>>((x<<1)>>nScale), and wTL[x][y]=(predModeIntra==INTRA_DC)?((wL[x]>>4)+(wT[y]>>4)):0 and wL represents a weight corresponding to the left reference sample, wT represents a weight corresponding to the top reference sample, wTL represents a weight corresponding to the top left reference sample, (x, y) represents a coordinate position, and nScale represents a magnification. The method according to any one of claims 1 to 4.
6. The method comprises: storing the filtered reference samples in a buffer; The step of generating a prediction sample for the block using the filtered reference sample comprises: The method according to any one of claims 1 to 5, comprising generating predicted samples for the block using the filtered reference samples in the buffer without applying an interpolation filter.
7. When the intra prediction mode of the block is not the wide angle mode, determining that the value indicating the intra prediction mode is one of 2, 34, or 66; filtering the reference samples of the block based at least in part on determining that the value indicating the intra-prediction mode of the block is one of 2, 34, or 66; The method of any one of claims 1 to 6, further comprising:
8. 1. An apparatus for intra prediction of a block of a picture in a video, the apparatus comprising: a non-transitory computer readable storage medium containing instructions; One or more processors in communication with the non-transitory computer-readable storage medium, the execution of the instructions causing: Obtain an intra prediction mode (IntraPredMode) of the block; determining that the intra prediction mode of the block is a wide mode; filtering reference samples of the block based at least in part on determining that the intra-prediction mode of the block is a wide-angle mode to generate filtered reference samples of the block; generating a predicted sample for the block using the filtered reference samples without applying an interpolation filter; one or more processors configured to Including equipment.
9. The one or more processors:
10. The device of claim 8, further configured to update the prediction samples of the block by performing a Position-Dependent Prediction Combining (PDPC) process, wherein the filtered reference samples are used for both an intra-prediction process and the PDPC process.
10. 10. The apparatus of claim 8 or 9, wherein the value indicative of the wide angle mode is at least one of −14, −12, −10, −6, 72, 76, 78, or 80.
11. The device according to any one of claims 8 to 10, wherein the filter used for filtering the reference samples is defined by coefficients [1,2,1] / 4.
12. When the intra prediction mode of the block is equal to INTRA_PLANAR or INTRA_DC, wT[y]=32>>((y<<1)>>nScale), wL[x]=32>>((x<<1)>>nScale), and wTL[x][y]=(predModeIntra==INTRA_DC)?((wL[x]>>4)+(wT[y]>>4)):0 12. The apparatus according to claim 8, wherein wL represents a weight corresponding to a left reference sample, wT represents a weight corresponding to a top reference sample, wTL represents a weight corresponding to a top left reference sample, (x, y) represents a coordinate position, and nScale represents a scaling factor.
13. The device of claim 8 , wherein filtering the reference samples of the block is based on at least one of the reference samples, the intra-prediction mode (IntraPredMode), or a block size parameter.
14. The one or more processors: When the intra prediction mode of the block is not the wide angle mode, determining that a value indicating the intra prediction mode of the block is one of 2, 34, or 66; filtering the reference samples of the block based at least in part on determining that the value indicating the intra-prediction mode of the block is one of 2, 34, or 66. The apparatus according to any one of claims 8 to 13, further configured to:
15. The filtered reference samples are stored in a buffer, and the one or more processors: The apparatus of any one of claims 8 to 14, configured to generate predicted samples of the block using the filtered reference samples in the buffer without applying an interpolation filter.
16. 1. A non-transitory storage medium containing a video bitstream generated by an encoder or processed by a decoder, the video bitstream comprising: First information representing an intra-prediction mode of a block of the video; second information representing a residual of the block based on a prediction sample of the block, the prediction sample of the block being generated using a filtered reference sample of the block without applying an interpolation filter, the filtered reference sample being generated by filtering the reference sample of the block based at least in part on the intra prediction mode of the block being a wide-angle mode; Non-transitory storage media, including
17. 17. The non-transitory storage medium of claim 16, wherein the prediction samples of the block are updated by performing a Position-Dependent Prediction Combining (PDPC) process, and the filtered reference samples are used for both an intra prediction process and the PDPC process.
18. 18. The non-transitory storage medium of claim 16, wherein the value indicating the wide-angle mode is at least one of −14, −12, −10, −6, 72, 76, 78, or 80.
19. 19. The non-transitory storage medium of claim 16, wherein the filter used for filtering the reference samples is defined by coefficients [1,2,1] / 4.
20. The non-transitory storage medium of any one of claims 16 to 19, wherein a filtered reference sample buffer is used based on the intra prediction mode of the block being a wide-angle mode.
Citation Information
Patent Citations
Mpeg recording / Reproducing method, mpeg recording / reproducing apparatus and mpeg recording / Reproducing program
JP2003018548A
Disabling intra-prediction filtering
JP2016530779A
Video and image coding with wide-angle intra prediction
JP2020503785A
Combining position-dependent intra-prediction with wide-angle intra-prediction
JP2021530906A
Method and apparatus for intra prediction
JP7177242B2