Improved intra prediction in video coding
By employing extended angle intra prediction modes and advanced prediction models, the video coding techniques address the limitations of existing methods, resulting in improved prediction quality and coding efficiency.
Patent Information
- Application Number
- JP2024225264
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-06-27
- Filing Date
- 2024-12-20
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2038-06-28
AI Technical Summary
Existing video coding techniques, such as those defined in HEVC, may not provide the most optimal prediction modes for certain video blocks, leading to suboptimal compression efficiency and quality.
The use of extended angle intra prediction modes, cascade intra prediction, and inverse linear model intra prediction techniques to predict samples in video blocks, which include angles greater than -45 degrees horizontal or vertical, and employ advanced prediction models to improve prediction accuracy.
These techniques enhance the prediction quality and coding efficiency by providing additional prediction directions and models, leading to improved compression performance and video quality.
Smart Images

Figure 2025063055000001_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001]
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 527,795, filed June 30, 2017, U.S. Provisional Patent Application No. 62 / 527,903, filed June 30, 2017, U.S. Provisional Patent Application No. 62 / 527,928, filed June 30, 2017, and U.S. Provisional Patent Application No. 16 / 020,179, filed June 27, 2018, each of which is incorporated by reference in its entirety. [Technical field]
[0002]
[0002] This disclosure relates to video coding (eg, video encoding and / or video decoding). For example, certain aspects relate to intra prediction in video coding. [Background technology]
[0003]
[0003] Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radio telephones, so-called "smartphones," video teleconferencing devices, video streaming devices, and the like. Digital video devices implement video compression techniques, such as those described in standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4, Part 10, Advanced Video Coding (AVC), the recently completed High Efficiency Video Coding (HEVC) standard, and extensions to such standards. By implementing such video compression techniques, video devices may transmit, receive, encode, decode, and / or store digital video information more efficiently.
[0004]
[0004] Video compression techniques perform spatial (intra-picture) prediction and / or temporal (inter-picture) prediction to reduce or remove redundancy inherent in video sequences. For block-based video coding, a video slice (i.e., a video frame or a portion of a video frame) may be partitioned into video blocks, which may also be referred to as tree blocks, coding units (CUs), and / or coding nodes. Video blocks in an intra-coded (I) slice of a picture are encoded using spatial prediction with respect to reference samples in neighboring blocks in the same picture. Video blocks in an inter-coded (P or B) slice of a picture may use spatial prediction with respect to reference samples in neighboring blocks in the same picture or temporal prediction with respect to reference samples in other reference pictures. A picture may be referred to as a frame, and a reference picture may be referred to as a reference frame.
[0005]
[0005] Spatial or temporal prediction results in a prediction block for a block to be coded. The residual data represents pixel differences between the original block to be coded and the prediction block. An inter-coded block is coded according to a motion vector pointing to a block of reference samples forming the prediction block, and the residual data indicating the difference between the coded block and the prediction block. An intra-coded block is coded according to an intra-coding mode and the residual data. For further compression, the residual data may be transformed from the pixel domain to a transform domain, resulting in residual transform coefficients, which may then be quantized. The quantized transform coefficients, initially arranged in a two-dimensional array, may be scanned to produce a one-dimensional vector of transform coefficients, and entropy coding may be applied to achieve even further compression. Summary of the Invention
[0006]
[0006] In general, this disclosure describes techniques for intra-prediction of samples of a block of video data. In particular, this disclosure describes techniques for predicting samples of a current block using intra-prediction techniques including at least one of an extended angular intra prediction mode(s), cascade intra prediction, and / or inversed-linear model intra prediction.
[0007]
[0007] In one example, a method for encoding or decoding video data includes locating at least one reconstructed sample of the video data, determining at least one extended angle intra prediction mode for use in intra prediction of at least one sample of a current block, intra predicting at least one sample of the current block using the at least one extended angle intra prediction mode based on the at least one reconstructed sample, the extended angle intra prediction modes including angle intra prediction modes other than angle prediction modes between -45 degrees horizontal and -45 degrees vertical, and encoding or decoding the current block based on the at least one predicted sample.
[0008]
[0008] In another example, an apparatus configured to encode or decode video data includes a memory configured to store at least one reconstructed sample of the video data; and at least one processor in communication with the memory, the processor being configured to identify the at least one reconstructed sample; determine at least one extended angle intra prediction mode for use in intra prediction of at least one sample of a current block; intra predict at least one sample of the current block using the at least one extended angle intra prediction mode based on the at least one reconstructed sample; and encode or decode the current block based on the at least one predicted sample, the extended angle intra prediction mode including an angle intra prediction mode other than an angle prediction mode between -45 degrees horizontal and -45 degrees vertical.
[0009]
[0009] In another example, an apparatus configured to encode or decode video data includes means for storing at least one reconstructed sample of the video data, means for identifying the at least one reconstructed sample, means for determining at least one extended angle intra prediction mode to use for intra prediction of at least one sample of a current block, and means for intra predicting at least one sample of the current block using the at least one extended angle intra prediction mode based on the at least one reconstructed sample, the extended angle intra prediction modes including angle intra prediction modes other than angle prediction modes between -45 degrees horizontal and -45 degrees vertical, and means for encoding or decoding the current block based on the at least one predicted sample.
[0010]
[0010] In another example, a computer-readable storage medium stores instructions that, when executed, cause one or more processors configured to encode or decode video data to identify at least one reconstructed sample; determine at least one extended angle intra prediction mode for use in intra prediction of at least one sample of a current block; intra predict at least one sample of the current block using the at least one extended angle intra prediction mode based on the at least one reconstructed sample, the extended angle intra prediction modes including angle intra prediction modes other than angle prediction modes between -45 degrees horizontal and -45 degrees vertical; and encode or decode the current block based on the at least one predicted sample.
[0011]
[0011] In another example, a method of coding video data includes reconstructing at least one chroma sample for a first block of video data, predicting at least one luma sample for the first block based on the at least one reconstructed chroma sample for the first block of video data and at least one prediction model, and coding the first block based on the at least one predicted luma sample. In some embodiments of the method, the at least one prediction model includes an inverse linear model. In some embodiments, the method may further include determining at least one parameter for the at least one prediction model based on at least one of the luma sample or chroma sample associated with at least one block neighboring the first block. In some embodiments, the method may further include determining the at least one parameter based on a linear regression technique. In some embodiments, the method may further include determining an indication of an intensity of the at least one chroma sample for the first block. In some embodiments, the method may further include associating the at least one chroma sample with a first group among the multiple groups based on the indication of the intensity of the at least one chroma sample. In some embodiments of the method, the at least one prediction model may include a plurality of prediction models, such that the method may further include determining a first prediction model from among the plurality of prediction models based on the first group. In some embodiments of the method in which the coding comprises a decoding operation, the method may further include receiving one or more syntax elements indicating whether the at least one prediction model is used to predict at least one luma sample for the first block. In some embodiments of the method in which the coding comprises an encoding operation, the method may further include transmitting one or more syntax elements indicating whether the at least one prediction model is used to predict at least one luma sample for the first block.In the above examples, the method may constitute a method of encoding video data or a method of decoding video data. Further, in some implementations, an apparatus may include a memory configured to store video data and a processor configured to encode or decode the video data according to the above illustrative method(s). Further, in some implementations, a computer-readable medium may have stored thereon instructions that, when executed, cause a processor configured to encode or decode the video data to perform the above illustrative method(s).
[0012]
[0012] In yet another example, a method of coding video data includes reconstructing at least one sample associated with one of a first row or a first column of samples of the video data, predicting at least one sample associated with a second row of samples of the video data based on a cascading technique, the cascading technique comprising using an angle associated with a first angle intra-prediction mode to predict the at least one sample associated with the second row, and coding at least one predicted sample associated with the second row in a first block of the video data. In some embodiments of the method, the at least one sample associated with one of the first row or the first column comprises a plurality of samples. In some embodiments of the method, the at least one sample associated with one of the first row or the first column includes a plurality of samples, where at least one sample of the plurality of samples is associated with a second block other than the first block. In some embodiments of the method, the second block is neighboring the first block. In some embodiments of the method, the at least one sample associated with one of the first row or the first column includes a plurality of samples, where each of the plurality of samples is associated with at least one block other than the first block. In some embodiments of the method, the at least one block is one of a neighboring block of the first block or a non-neighboring block of the first block. In some embodiments of the method, the at least one block is one of a neighboring block of the first block or a non-neighboring block of the first block. In some embodiments of the method, the first angular intra prediction mode includes an angular intra prediction mode between horizontal -45 degrees and vertical -45 degrees. In some embodiments of the method, the first angular intra prediction mode comprises an extended angular intra prediction mode other than between horizontal -45 degrees and vertical -45 degrees. In the above example, the method may constitute a method of encoding video data or a method of decoding video data.Further, in some implementations, the apparatus may include a memory configured to store video data and a processor configured to encode or decode the video data according to the illustrative method(s) above. Further, in some implementations, a computer-readable medium may have stored thereon instructions that, when executed, cause a processor configured to encode or decode the video data to perform the illustrative method(s) above.
[0013]
[0013] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will become apparent from the description and drawings, and from the claims. [Brief description of the drawings]
[0014] [Figure 1] 1 is a block diagram illustrating an example video encoding and decoding system that may utilize the techniques described in this disclosure. [Figure 2A] 1 illustrates an example of block partitioning by using QTBT. [Figure 2B] The corresponding tree structure is illustrated below. [Diagram 3] 1 shows an example of intra prediction for a 16x16 block. [Figure 4] 1 is a graphical illustration of the 35 intra prediction modes defined in HEVC. [Diagram 5] 1 is an illustration of generation of prediction samples in planar mode according to HEVC. [Figure 6] 1 is another illustration of generation of prediction samples in planar mode according to HEVC. [Figure 7] FIG. 13 is a conceptual diagram of example locations of samples used to derive model parameters α and β for linear model chroma intra prediction. [Figure 8] 1 is a graph of an example of a linear regression between a luma (Y) component and a chroma (C) component. [Figure 9]FIG. 1 is a schematic diagram of an example luma sample downsampling. [Figure 10A] 1 is a graphical illustration of an extended angular intra-prediction mode that may be utilized for intra-prediction in accordance with this disclosure. [Figure 10B] 1 is a graphical illustration of an extended angular intra-prediction mode that may be utilized for intra-prediction in accordance with this disclosure. [Figure 11] 1 illustrates an example of predicting one sample from reconstructed sample(s) using enhanced intra prediction mode in accordance with this disclosure. [Figure 12] 1 illustrates another example of predicting one sample from reconstructed sample(s) using enhanced intra prediction mode in accordance with this disclosure. [Figure 13] 1 illustrates an example of predicting sample(s) from reconstructed sample(s) using enhanced intra prediction mode in accordance with this disclosure. [Figure 14] 1 illustrates an example of filling projected samples based on reconstructed samples using enhanced intra prediction modes in accordance with this disclosure. [Figure 15] 13 illustrates another example of predicting sample(s) from reconstructed sample(s) using an enhanced angular intra-prediction mode in accordance with this disclosure. [Figure 16] 1 illustrates another example of filling projected samples based on reconstructed samples using enhanced intra prediction mode in accordance with this disclosure. [Figure 17] 1 illustrates an example in which the directions of prediction angles associated with intra-prediction modes defined in HEVC and the directions of prediction angles associated with extended angle intra-prediction modes of the present disclosure are constrained with respect to each other. [Figure 18A] 1 illustrates an example of line-by-line cascaded intra prediction of a current block, in accordance with the present disclosure. [Figure 18B] 1 illustrates an example of row-wise cascaded intra prediction of a current block in accordance with this disclosure. [Figure 18C] 1 illustrates an example of row-wise cascaded intra prediction of a current block in accordance with this disclosure. [Figure 18D] 1 illustrates an example of row-wise cascaded intra prediction of a current block in accordance with this disclosure. [Figure 18E] 1 illustrates an example of row-wise cascaded intra prediction of a current block utilizing the enhanced angular intra prediction mode of this disclosure. [Figure 18F] 1 illustrates an example of row-wise cascaded intra prediction of a current block utilizing the enhanced angular intra prediction mode of this disclosure. [Figure 18G] 1 illustrates an example of row-wise cascaded intra prediction of a current block utilizing the enhanced angular intra prediction mode of this disclosure. [Figure 18H] 1 illustrates an example of row-wise cascaded intra prediction of a current block utilizing the enhanced angular intra prediction mode of this disclosure. [Figure 19] 1 illustrates an example of row-wise cascaded intra prediction of a current block constrained to a particular prediction mode(s), in accordance with this disclosure. [Figure 20] 1 is a block diagram illustrating an example video encoder that may implement the techniques described in this disclosure. [Figure 21] 1 is a block diagram illustrating an example video decoder that may implement the techniques described in this disclosure. Detailed Description
[0015]
[0036] Various coding standards, including the recently developed High Efficiency Video Coding (HEVC) standard, include predictive coding modes for video blocks, where a currently coded block is predicted based on already coded blocks of video data. In intra prediction modes, the current block is predicted based on one or more previously coded neighboring blocks in the same picture as the current block, while in inter prediction modes, the current block is predicted based on already coded blocks in a different picture. In inter prediction modes, the process of determining a block of a previously coded frame to use as a predictive block is also called motion estimation, which is typically performed by a video encoder, and the process of identifying and retrieving a predictive block is also called motion compensation, which is performed by both the video encoder and the video decoder. Extensions of HEVC and successors to HEVC may also use additional coding modes, such as intra block copy, dictionary, and palette coding modes.
[0016]
[0037] This disclosure describes techniques for intra prediction that may be used in the context of advanced video codecs, such as next-generation video or image coding standards.
[0017]
[0038] Various techniques in this disclosure may be described with reference to a video coder, which is intended to be a generic term that can refer to either a video encoder or a video decoder. Unless expressly stated otherwise, techniques described with respect to a video encoder or a video decoder should not be considered as not being performed by the other of a video encoder or a video decoder. For example, in many instances, a video decoder performs the same, or sometimes opposing, coding techniques as a video encoder to decode encoded video data. In many instances, a video encoder also includes a video decoding loop, such that the video encoder performs video decoding as part of encoding video data. Thus, unless otherwise stated, techniques described in this disclosure with respect to a video decoder may also be performed by a video encoder, and vice versa.
[0018]
[0039] This disclosure may also use terms such as current block, current picture, etc. In the context of this disclosure, the term "current" is intended to identify a block or picture that is currently being coded, as opposed to, for example, a previously or already coded block or picture, or a block or picture that has not yet been coded.
[0019]
[0040] FIG. 1 is a block diagram illustrating an example video encoding and decoding system 10 that may utilize techniques for prediction described in this disclosure, such as enhanced angular intra-prediction modes, cascaded intra-prediction, and / or inverse linear model intra-prediction. As shown in FIG. 1, system 10 includes a source device 12 that provides encoded video data to be decoded at a later time by a destination device 14. In particular, source device 12 provides the video data to destination device 14 via a computer-readable medium 16. Source device 12 and destination device 14 may comprise any of a wide range of devices, including desktop computers, notebook (i.e., laptop) computers, tablet computers, set-top boxes, telephone handsets such as so-called "smart" phones, so-called "smart" pads, televisions, cameras, display devices, digital media players, video gaming consoles, video streaming devices, or the like. In some cases, source device 12 and destination device 14 may be equipped for wireless communication.
[0020]
[0041] The destination device 14 may receive the encoded video data to be decoded via a computer-readable medium 16. The computer-readable medium 16 may comprise any type of medium or device capable of moving the encoded video data from the source device 12 to the destination device 14. In one example, the computer-readable medium 16 may comprise a communication medium to enable the source device 12 to transmit the encoded video data directly to the destination device 14 in real time. The encoded video data may be modulated according to a communication standard, such as a wireless communication protocol, and transmitted to the destination device 14. The communication medium may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. The communication medium may include routers, switches, base stations, or any other equipment that may be useful in facilitating communication from the source device 12 to the destination device 14.
[0021]
[0042] In some examples, the encoded data may be output from output interface 22 to a storage device. Similarly, the encoded data may be accessed from a storage device by an input interface. The storage device may include any of a variety of distributed or locally accessed data storage media, such as a hard drive, Blu-ray disc, DVD, CD-ROM, flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded video data. In a further example, the storage device may correspond to a file server or another intermediate storage device that may store the encoded video generated by source device 12. Destination device 14 may access the stored video data from the storage device via streaming or download. The file server may be any type of server capable of storing the encoded video data and transmitting the encoded video data to destination device 14. Illustrative file servers include a web server (e.g., for a website), an FTP server, a network-attached storage (NAS) device, or a local disk drive. Destination device 14 may access the encoded video data through any standard data connection, including an Internet connection. This may include a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., DSL, cable modem, etc.), or a combination of both, suitable for accessing the encoded video data stored on the file server. The transmission of the encoded video data from the storage device may be a streaming transmission, a download transmission, or a combination thereof.
[0022]
[0043] The techniques of this disclosure are not necessarily limited to wireless applications or settings. The techniques may be applied to video coding to support any of a variety of multimedia applications, such as over-the-air television broadcasting, cable television transmission, satellite television transmission, Internet streaming video transmission such as Dynamic Adaptive Streaming over HTTP (DASH), digital video encoded on a data storage medium, decoding of digital video stored on a data storage medium, or other applications. In some examples, the system 10 may be configured to support one-way or two-way video transmission to support applications such as video streaming, video playback, video broadcasting, and / or video telephony.
[0023]
[0044] In the example of FIG. 1, source device 12 includes a video source 18, a video encoder 20, and an output interface 22. Destination device 14 includes an input interface 28, a video decoder 30, and a display device 32. In accordance with this disclosure, video encoder 20 of source device 12 may be configured to apply techniques for intra-prediction techniques described in this disclosure. In other examples, the source and destination devices may include other components or arrangements. For example, source device 12 may receive video data from an external video source 18, such as an external camera. Similarly, destination device 14 may interface with an external display device rather than including an integrated display device.
[0024]
[0045] The illustrated system 10 of FIG. 1 is merely an example. The techniques for intra prediction techniques described in this disclosure may be performed by any digital video encoding and / or decoding device. Generally, the techniques of this disclosure are performed by a video encoding device, but the techniques may also be performed by a video encoder / decoder, typically referred to as a "CODEC." Moreover, the techniques of this disclosure may also be performed by a video preprocessor. Source device 12 and destination device 14 are merely examples of such coding devices, where source device 12 generates coded video data for transmission to destination device 14. In some examples, devices 12, 14 may operate in a substantially symmetrical manner, such that each of devices 12, 14 includes video encoding and decoding components. Thus, system 10 may support one-way or two-way video transmission between video device 12 and video device 14, for example, video streaming, video playback, video broadcasting, or video telephony.
[0025]
[0046] Video source 18 of source device 12 may include a video capture device such as a video camera, a video archive containing previously captured video, and / or a video feed interface for receiving video from a video content provider. As a further alternative, video source 18 may generate computer graphics-based data as the source video, or a combination of live, archived, and computer-generated video. In some cases, when video source 18 is a video camera, source device 12 and destination device 14 may form a so-called camera phone or video phone. As noted above, however, the techniques described in this disclosure may be applicable to video coding in general and may be applied to wireless and / or wired applications. In each case, the captured, pre-captured, or computer-generated video may be encoded by video encoder 20. The encoded video information may then be output by output interface 22 onto computer-readable medium 16.
[0026]
[0047] Computer-readable medium 16 may include a transitory medium, such as a wireless broadcast or wired network transmission, or a storage medium (i.e., a non-transitory storage medium), such as a hard disk, a flash drive, a compact disc, a digital video disc, a Blu-ray disc, or other computer-readable medium. In some examples, a network server (not shown) may receive the encoded video data from source device 12 and provide the encoded video data to destination device 14, e.g., via a network transmission. Similarly, a computing device at a medium production facility, such as a disc stamping facility, may receive the encoded video data from source device 12 and manufacture discs that embody the encoded video data. Thus, computer-readable medium 16 may be understood to include one or more computer-readable media of various forms in various examples.
[0027]
[0048] An input interface 28 of destination device 14 receives information from computer-readable medium 16. The information on computer-readable medium 16 may include syntax information defined by video encoder 20, including syntax elements that describe characteristics and / or processing of blocks and other coded units, which is also used by video decoder 30. Display device 32 displays the decoded video data to a user and may comprise any of a variety of display devices, such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, or another type of display device.
[0028]
[0049] Video encoder 20 and video decoder 30 may operate according to a video compression standard, such as the recently finalized High Efficiency Video Coding (HEVC) standard, and may follow the HEVC Test Model (HM). Video encoder 20 and video decoder 30 may additionally operate according to HEVC extensions, such as range extensions, multiview extensions (MV-HEVC), or scalable extensions (SHVC), that have been developed by the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Motion Picture Experts Group (MPEG) Joint Collaboration Team on Video Coding (JCT-VC) and the Joint Collaboration Team on 3D Video Coding Extension Development (JCT-3V).
[0029]
[0050] Video encoder 20 and video decoder 30 may also operate according to other proprietary or industry standards, such as the ITU-T H.264 standard, alternatively referred to as ISO / IEC MPEG-4, Part 10, Advanced Video Coding (AVC), or extensions of such standards, such as Scalable Video Coding (SVC) and Multiview Video Coding (MVC) extensions. The techniques of this disclosure, however, are not limited to any particular coding standard. Other examples of video compression standards include ITU-T H.261, ISO / IEC MPEG-1 Visual, ITU-T H.262 or ISO / IEC MPEG-2 Visual, ITU-T H.263, and ISO / IEC MPEG-4 Visual.
[0030]
[0051] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) are currently studying the potential need for standardization of future video coding technologies with compression capabilities significantly exceeding that of the current HEVC standard (including its current and upcoming extensions for screen content coding and high dynamic range coding). The groups are collaborating on this exploration activity in a joint collaboration effort known as the Joint Video Exploration Team (JVET) to evaluate compression technology designs proposed by their experts in this area. JVET held its first meeting during October 19-21, 2015. One version of the reference software, namely Joint Exploration Model 2 (JEM2), can be downloaded from https: / / jvet.hhi.fraunhofer.de / svn / svn_HMJEMSoftware / tags / HM-16.6-JEM-2.0 / . The algorithm for JEM2 is described in J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 2”, JVET-B1001, San Diego, Mar. 2016, which description is incorporated herein by reference. Another version of the reference software, namely Joint Exploration Model 3 (JEM3), can be downloaded from https: / / jvet.hhi.fraunhofer.de / svn / svn_HMJEMSoftware / tags / HM-16.6-JEM-3.0 / . The algorithm description for JEM3 may also be referred to as JVET-C1001, which is incorporated herein by reference.The algorithm for JEM4 is described in J. Chen, E. Alshina, GJ Sullivan, J.-R. Ohm, J. Boyce, “Algorithm Description of Joint Exploration Test Model 4,” JVET-D1001, October 2016, which is incorporated herein by reference.
[0031]
[0052] The techniques of this disclosure may utilize HEVC terminology for ease of explanation, however, the techniques of this disclosure should not be considered limited to HEVC, and in fact it is expressly contemplated that the techniques of this disclosure may be implemented in successor standards of HEVC and extensions thereof, as well as other video compression techniques (e.g., non-standard codecs).
[0032]
[0053] 1, in some aspects, video encoder 20 and video decoder 30 may each be integrated with an audio encoder and decoder and may include a MUX-DEMUX unit or other hardware and software appropriate to handle the encoding of both audio and video in a common or separate data stream. Where applicable, in some examples, the MUX-DEMUX unit may follow the ITU H.223 multiplexer protocol or other protocols such as the User Datagram Protocol (UDP).
[0033]
[0054] The video encoder 20 and the video decoder 30 may each be implemented as any of a variety of suitable encoder or decoder circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the techniques are implemented partially in software, a device may store instructions for the software in a suitable non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder / decoder (CODEC) in the respective device.
[0034]
[0055] In HEVC and other video coding specifications, a video sequence typically includes a series of pictures. A picture may also be called a "frame." In one illustrative approach, a picture is divided into S L , S Cb , and S Cr In such an illustrative approach, S L is a two-dimensional array (i.e., block) of luma samples. Cb is a two-dimensional array of Cb chrominance samples. Cr is a two-dimensional array of Cr chrominance samples. The chrominance samples may also be referred to herein as "chroma" samples. In other cases, a picture may be monochrome and include only an array of luma samples.
[0035]
[0056] To generate an encoded representation of a picture, video encoder 20 may generate a set of coding tree units (CTUs). The size of the CTUs can range from 16×16 to 64×64 in the HEVC Main Profile (although technically, an 8×8 CTU size can also be supported). Each of the CTUs may comprise a coding tree block for luma samples and two corresponding coding tree blocks for chroma samples, and a syntax structure used to code the samples of the coding tree blocks. For monochrome pictures or pictures with three separate color planes, a CTU may comprise a single coding tree block and a syntax structure used to code the samples of that coding tree block. A coding tree block may be an N×N block of samples. A CTU may also be referred to as a "tree block" or a "largest coding unit" (LCU). A CTU in HEVC may be roughly similar to a macroblock in other standards such as H.264 / AVC. However, a CTU is not necessarily limited to a particular size and may contain one or more coding units (CUs). A slice may contain an integer number of CTUs ordered consecutively in raster scan order.
[0036]
[0057] To generate a coded CTU, video encoder 20 may recursively perform quadtree partitioning on the coding tree blocks of the CTU to split the coding tree blocks into coding blocks, hence the name "coding tree units." A coding block may be an N×N block of samples. A CU may comprise a coding block of luma samples and two corresponding coding blocks of chroma samples for a picture having luma, Cb, and Cr sample arrays, and the syntax structures used to code the samples of the coding blocks. For a monochrome picture or a picture with three separate color planes, a CU may comprise a single coding block and the syntax structures used to code the samples of that coding block.
[0037]
[0058] Video encoder 20 may partition the coding blocks of a CU into one or more predictive blocks. A predictive block is a rectangular (i.e., square or non-square) block of samples to which the same prediction is applied. A prediction unit (PU) of a CU may comprise a predictive block of luma samples and two corresponding predictive blocks of chroma samples and syntax structures used to predict the predictive blocks. In a monochrome picture or a picture with three separate color planes, a PU may comprise a single predictive block and syntax structures used to predict that predictive block. Video encoder 20 may generate predictive luma, Cb, and Cr blocks for the luma, Cb, and Cr predictive blocks of each PU of a CU.
[0038]
[0059] Video encoder 20 may use intra prediction or inter prediction to generate the predictive blocks for a PU. If video encoder 20 uses intra prediction to generate the predictive blocks of a PU, video encoder 20 may generate the predictive blocks of the PU based on decoded samples of a picture associated with the PU. If video encoder 20 uses inter prediction to generate the predictive blocks of a PU, video encoder 20 may generate the predictive blocks of the PU based on decoded samples of one or more pictures other than the picture associated with the PU.
[0039]
[0060] Each CU is coded in one mode. When a CU is inter-coded, it may be further partitioned into two or four prediction units PU, or it may be just one PU when no further partitioning is applied. When there are two PUs in one CU, the two PUs can be half size rectangles, or two rectangle sizes with 1 / 4 or 3 / 4 size of the CU. When a CU is inter-coded, there may be one set of motion information for each PU. In addition, each PU is coded in a unique inter-prediction mode to derive a set of motion information.
[0040]
[0061] After video encoder 20 generates the predictive luma, Cb, and Cr blocks for one or more PUs of a CU, video encoder 20 may generate a luma residual block for that CU. Each sample in the luma residual block of the CU indicates a difference between a luma sample in one of the predictive luma blocks of the CU and a corresponding sample in the original luma coding block of the CU. In addition, video encoder 20 may generate a Cb residual block for the CU. Each sample in the Cb residual block of the CU may indicate a difference between a Cb sample in one of the predictive Cb blocks of the CU and a corresponding sample in the original Cb coding block of the CU. Video encoder 20 may also generate a Cr residual block for the CU. Each sample in the Cr residual block of the CU may indicate a difference between a Cr sample in one of the predictive Cr blocks of the CU and a corresponding sample in the original Cr coding block of the CU.
[0041]
[0062] Furthermore, video encoder 20 may use quadtree partitioning to decompose the luma, Cb, and Cr residual blocks of a CU into one or more luma, Cb, and Cr transform blocks. A transform block is a rectangular (e.g., square or non-square) block of samples to which the same transform is applied. A transform unit (TU) of a CU may comprise a transform block of luma samples and two corresponding transform blocks of chroma samples, and a syntax structure used to transform the transform block samples. Thus, each TU of a CU may be associated with a luma transform block, a Cb transform block, and a Cr transform block. The luma transform block associated with a TU may be a sub-block of the luma residual block of the CU. The Cb transform block may be a sub-block of the Cb residual block of the CU. The Cr transform block may be a sub-block of the Cr residual block of the CU. In monochrome pictures or pictures with three separate color planes, a TU may comprise a single transform block and a syntax structure used to transform samples of that transform block.
[0042]
[0063] Video encoder 20 may apply one or more transforms to a luma transform block of a TU to generate a luma coefficient block for the TU. A coefficient block may be a two-dimensional array of transform coefficients. A transform coefficient may be a scalar quantity. Video encoder 20 may apply one or more transforms to a Cb transform block of a TU to generate a Cb coefficient block for the TU. Video encoder 20 may apply one or more transforms to a Cr transform block of a TU to generate a Cr coefficient block for the TU.
[0043]
[0064] After generating a coefficient block (e.g., a luma coefficient block, a Cb coefficient block, or a Cr coefficient block), video encoder 20 may quantize the coefficient block. Quantization generally refers to a process in which transform coefficients are quantized to possibly reduce the amount of data used to represent the transform coefficients, providing further compression. After video encoder 20 quantizes the coefficient block, video encoder 20 may entropy code syntax elements indicating the quantized transform coefficients. For example, video encoder 20 may perform Context-Adaptive Binary Arithmetic Coding (CABAC) on the syntax elements indicating the quantized transform coefficients.
[0044]
[0065] Video encoder 20 may output a bitstream including a sequence of bits that form a representation of a coded picture and associated data. The bitstream may comprise a sequence of network abstraction layer (NAL) units. A NAL unit is a syntax structure that includes an indication of the type of data in the NAL unit and bytes that include that data in the form of a raw byte sequence payload (RBSP) with emulation prevention bits interspersed as necessary. Each of the NAL units includes a NAL unit header, encapsulating the RBSP. The NAL unit header may include a syntax element that indicates a NAL unit type code. The NAL unit type code specified by the NAL unit header of the NAL unit indicates the type of the NAL unit. The RBSP may be a syntax structure that includes an integer number of bytes encapsulated within the NAL unit. In some instances, the RBSP includes a 0 bit.
[0045]
[0066] Different types of NAL units may encapsulate different types of RBSPs. For example, a first type NAL unit may encapsulate an RBSP for a PPS, a second type NAL unit may encapsulate an RBSP for a coded slice, a third type NAL unit may encapsulate an RBSP for an SEI message, etc. A NAL unit that encapsulates an RBSP for video coding data (as opposed to an RBSP for a parameter set and SEI message) may be referred to as a VCL NAL unit.
[0046]
[0067] Video decoder 30 may receive a bitstream generated by video encoder 20. In addition, video decoder 30 may parse the bitstream to obtain syntax elements from the bitstream. Video decoder 30 may reconstruct a picture of the video data based at least in part on the syntax elements obtained from the bitstream. The process for reconstructing the video data may generally be the opposite to the process performed by video encoder 20. In addition, video decoder 30 may inverse quantize coefficient blocks associated with the TUs of the current CU. Video decoder 30 may perform an inverse transform on the coefficient blocks to reconstruct transform blocks associated with the TUs of the current CU. Video decoder 30 may reconstruct coding blocks of the current CU by adding samples of predictive blocks for the PUs of the current CU to corresponding samples of transform blocks of the TUs of the current CU. By reconstructing the coding blocks for each CU of the picture, video decoder 30 may reconstruct the picture.
[0047]
[0068] The QTBT structure as described in H. Huang, K. Zhang, Y.-W. Huang, S. Lei, “EE2.1: Quadtree plus binary tree structure integration with JEM tools”, JVET-C0024, June 2016 (incorporated herein by reference) is adopted in the JEM4 software. In the QTBT structure, the CTB is first partitioned by a quadtree structure. The quadtree leaf nodes are further partitioned by a binary tree structure. The binary tree leaf nodes, i.e., coding blocks (CBs), are used for prediction and transformation without further partitioning. For P and B slices, the luma and chroma CTBs in one CTU share the same QTBT structure. For I slices, the luma CTB is partitioned into CBs by a QTBT structure, and the two chroma CTBs are partitioned into chroma CBs by another QTBT structure.
[0048]
[0069] The root node of the quadtree, CTU (or CTB for I-slice), is first partitioned by quadtree, where the quadtree split of a node can be repeated until the node reaches the minimum allowed quadtree leaf node size (MinQTSize). If the quadtree leaf node size is not larger than the maximum allowed binary tree root node size (MaxBTSize), it can be further partitioned by binary tree. The binary tree split of a node can be repeated until the node reaches the minimum allowed binary tree leaf node size (MinBTSize) or the maximum allowed binary tree depth (MaxBTDepth). The binary tree leaf node, i.e., CU (or CB for I-slice), will be used for prediction (e.g., intra-picture prediction or inter-picture prediction) and transformation without further partitioning. There are two partition types in binary tree split: symmetric horizontal split and symmetric vertical split.
[0049]
[0070] In one example of a QTBT partitioning structure, the CTU size is set to 128x128 (luma samples and corresponding 64x64 Cb / Cr samples), MinQTSize is set to 16x16, MaxBTSize is set to 64x64, MinBTSize (for both width and height) is set to 4, and MaxBTDepth is set to 4. Quad-tree partitioning is first applied to the CTU to generate quad-tree leaf nodes. The quad-tree leaf nodes may have sizes from 16x16 (i.e., MinQTSize) to 128x128 (i.e., CTU size). If the leaf quad-tree node is 128x128, it will not be further split by the binary tree since its size exceeds MaxBTSize (i.e., 64x64). Otherwise, the leaf quad-tree node will be further partitioned by the binary tree. Therefore, the quadtree leaf node is also the root node for the binary tree, and its binary tree depth is defined as 0. When the binary tree depth reaches MaxBTDepth (i.e., 4), it does not imply any further splits. When a binary tree node has a width equal to MinBTSize (i.e., 4), it does not imply any further horizontal splits. Similarly, when a binary tree node has a height equal to MinBTSize, it does not imply any further vertical splits. The leaf nodes of the binary tree, i.e., CUs, are further processed by prediction and transformation without any further partitioning.
[0050]
[0071] FIG. 2A illustrates an example of block partitioning by using QTBT, and FIG. 2B illustrates the corresponding tree structure. Solid lines indicate quadtree partitioning, and dotted lines indicate binary tree partitioning. At each partition (i.e., non-leaf) node of the binary tree, one flag is signaled to indicate which partition type (i.e., horizontal or vertical) is used, where 0 indicates horizontal partitioning and 1 indicates vertical partitioning. In the case of quadtree partitioning, there is no need to indicate the partition type since it always partitions a block horizontally and vertically into four sub-blocks of equal size.
[0051]
[0072] For I slices, a luma-chroma-separated block partitioning structure is proposed: the luma component of one CTU (i.e., the luma CTB) is partitioned into a luma CB by a QTBT structure, and the two chroma components of that CTU (i.e., the two chroma CTBs) are partitioned into a chroma CB by another QTBT structure.
[0052]
[0073] For P and B slices, the block partitioning structure for luma and chroma is shared, i.e., one CTU (containing both luma and chroma) is partitioned by one QTBT structure into CUs.
[0053]
[0074] Figure 3 shows an example of intra prediction for a 16x16 block. When coding a block in intra prediction mode, the video coder performs image block prediction using spatially neighboring reconstructed image samples. A typical example of intra prediction for a 16x16 image block is shown in Figure 3. In intra prediction, a 16x16 image block 40 is predicted by upper and left neighboring reconstructed samples (reference samples) along a selected prediction direction (as indicated by arrow 41).
[0054]
[0075] 4 shows the 35 intra prediction modes defined in HEVC. In HEVC, for intra prediction of luma blocks, a video coder may select from 35 available modes, including planar mode, DC mode, and 33 angular modes, as shown in FIG.
[0055]
[0076] For planar mode, which is a frequently used intra prediction mode, prediction samples are generated as shown in Figure 5. To perform planar prediction for an NxN block, each sample p xyFor , a prediction value is calculated (i.e., determined) using four specific neighboring reconstructed samples (e.g., reference samples) in a bilinear filter. The four reference samples are the top right reconstructed sample denoted as “TR”, the bottom left reconstructed sample denoted as “BL”, the same column (r x,-1 ), and the row of the current sample represented by "T" (r -1,y ) The planar mode can be formulated as follows:
number
number
[0056]
[0077] Although HEVC defines 35 intra prediction modes for intra prediction, some problems remain with these conventional modes, for example, for luma blocks: In some intra prediction cases, the existing modes (including the 33 angle modes) may not represent the most optimal prediction mode for coding a given block.
[0057]
[0078] Linear model (LM) chroma intra prediction was proposed to JCT-VC at http: / / phenix.int-evry.fr / jct / doc_end_user / documents / 5_Geneva / wg11 / JCTVC-E0266-v4.zip. It has also been proposed to JVET as described in section 2.2.4 at http: / / phenix.int-evry.fr / jvet / doc_end_user / documents / 3_Geneva / wg11 / JVET-C1001-v3.zip. The LM mode assumes that there is a linear relationship between the luma and chroma components. The LM mode searches neighboring reconstructed pixels by utilizing a linear regression approach to figure out the relationship. When the LM mode is used, the chroma values can be predicted from the reconstructed luma values of the same block as follows:
number
[0058]
[0079] The sampling ratio of the chroma components is half that of the luma component, with a 0.5 pixel phase difference vertically in YUV420 sampling. The reconstructed luma is downsampled vertically and subsampled horizontally to match the size and phase of the chroma size as follows:
number
[0059]
[0080] The LM method utilizes a linear least-squares solution between the causal reconstructed data of the downsampled luma component and the causal chroma components to derive the model parameters α and β. For example, the model parameters α and β can be derived as follows:
number
number
[0060]
[0081] 7 is a graphical diagram of the locations of samples used to derive model parameters α and β. As illustrated in FIG. 7, only the left and top causal samples, marked as grey circles, participate in the calculation to keep the total number of samples I as a power of 2. For a target N×N chroma block, when both left and top causal samples are available, the total number of samples involved is 2N, and when only left or only top causal samples are available, the total number of samples involved I is N.
[0061]
[0082] 8 is a graphical diagram of an example of a linear regression between the luma (Y) and chroma (C) components. As illustrated in FIG. 8, according to one example, the linear relationship between the luma and chroma components can be solved using a linear regression method. In FIG. 8, the points on the graphical diagram represent the sample Rec'L [x,y],Rec C [x,y]) pair.
[0062]
[0083] Figure 9 is a schematic diagram of luma sample downsampling in JEM3.0. As illustrated in Figure 9, JVET adopts a more advanced luma sample downsampling filter for LM mode in JEM3.0, where:
number
[0063]
[0084] When the sample is located on a picture boundary, a 2-tap filter is applied, as shown in equation (7) above.
[0064]
[0085] To potentially address the problems discussed herein and / or improve upon existing intra prediction techniques, this disclosure describes techniques for predicting samples that utilize angular intra prediction modes other than (i.e., other than and / or in addition to) angular intra prediction modes between horizontal -45° and vertical -45° (e.g., the 33 angular prediction modes defined in HEVC). Specifically, this disclosure contemplates the use of angular intra prediction modes beyond horizontal -45° or beyond vertical -45° for prediction. The angular intra prediction modes, techniques, methods, and / or various examples disclosed herein may be applied individually and / or in any combination.
[0065]
[0086] As mentioned above, the existing intra prediction modes defined in HEVC (including the 33 angular modes) may not provide the most optimal prediction for coding a given block in all circumstances. However, the utilization of the extended angular intra prediction modes (also referred to herein as extended intra prediction modes or extended intra prediction) as described in accordance with the present disclosure may require, in some cases, an increase in the complexity of the encoder design (e.g., algorithmic implementation and / or operation) of a video encoder (e.g., video encoder 20) to realize coding gain and increase prediction quality that would be achieved by increasing prediction variety that the use of extended angular intra prediction may provide. For example, a video encoder such as video encoder 20 that supports the extended intra prediction modes of the present disclosure may be required in some circumstances to evaluate additional (i.e., in addition to those image samples evaluated in conjunction with the intra prediction modes defined in HEVC) reconstructed image samples (or reference samples) along at least one additional prediction direction associated with the extended intra prediction mode to determine and / or select a particular reference sample(s) for predicting a current block. In other words, a video encoder (e.g., video encoder 20) may be required to perform further computations than are typically required for utilization of conventional intra prediction modes provided by HEVC, for example, to improve the likelihood of identifying better reference sample(s) (i.e., prediction candidate(s)) for predicting a current block in accordance with this disclosure.
[0066]
[0087] 10A illustrates some examples of extended angular intra-prediction modes contemplated by the present disclosure. In this example, there are four angular modes (illustrated by dashed arrows) that are greater than horizontal -45° (i.e., mode 2 defined in HEVC and illustrated in FIG. 4), tagged (i.e., identified) as N1, N2, N3, and N4, as shown. Additionally, in this particular example, there are four additional angular modes (illustrated by dashed arrows) that are greater than vertical -45° (i.e., mode 34 defined in HEVC and illustrated in FIG. 4), tagged as N5, N6, N7, and N8.
[0067]
[0088] Figure 10B illustrates another example of some of the extended angle intra-prediction modes contemplated by the present disclosure. In this example, when surrounding reconstructed samples are available (e.g., an intra-coded block surrounded by an inter-coded block), some (e.g., all) extended angle intra-prediction directions (illustrated by dashed arrows) may be applied. In other words, based on a determination that the current block being intra-coded is surrounded by an inter-coded block, the extended angle intra-prediction directions illustrated in Figure 10B may be determined to be available for predicting the samples of the current block.
[0068]
[0089] In some embodiments of the present disclosure, samples in a current block are predicted by a reconstructed sample on the top line (e.g., a reconstructed line of samples of a neighboring block) based on the extended intra prediction mode used beyond vertical -45°. Figure 11 shows an example of predicting a sample (marked as "A") of a current block from a reconstructed sample of a top line in the extended angle intra prediction mode of the present disclosure. At angles beyond vertical -45° (i.e., extended angle intra prediction mode illustrated by solid arrows), sample "A" is projected to a sample on the top line, which may be a sub-sample. Compared to the angle prediction mode in HEVC (marked as dashed arrows), the proposed extended angle intra prediction mode according to the present disclosure allows the projection of a sample or sub-sample beyond the sample (marked as "B") to which the angle vertical -45° is projected. In one example, sample "A" is projected to a sub-sample, which can be interpolated with a neighboring reconstructed sample on the top line by an interpolation filter. In one example, sample "A" is projected onto a subsample, which can be approximated by a neighboring reconstructed sample. In FIG. 10, sample "A" can be projected onto sample "C" as an approximation.
[0069]
[0090] In another example of the present disclosure, a sample of a current block may be predicted by a reconstructed sample of a left line utilizing an extended angle intra prediction mode beyond horizontal -45°. FIG. 12 illustrates an example of predicting a sample (marked as "A") from a reconstructed sample on a left line in an extended angle intra prediction mode of the present disclosure. At angles beyond horizontal -45° (i.e., extended angle intra prediction mode illustrated with a solid arrow), sample "A" is projected to a sample on a top line, which may be a sub-sample. Compared to the angle prediction mode in HEVC (illustrated as a dashed arrow in FIG. 12), the proposed extended angle prediction mode of the present disclosure allows the projection of a sample or sub-sample beyond the sample (marked as "B") to which angle horizontal -45° is projected. In one example, sample "A" is projected to a sub-sample, which may be interpolated with neighboring reconstructed samples on the left line by an interpolation filter. In one example, sample "A" is projected to a sub-sample, which may be approximated by neighboring reconstructed samples. In FIG. 12, sample "A" can be projected onto sample "C" as an approximation.
[0070]
[0091] In yet another example of the present disclosure, samples in a current block may be predicted by samples on the right line (e.g., reconstructed lines of samples of neighboring blocks) utilizing an extended angle intra prediction mode that exceeds vertical -45°. FIG. 13 illustrates an example of predicting samples (marked as "A", "B", "C" and "D") of a current block from reconstructed samples on the right line of a reconstructed neighboring block in an extended angle intra prediction mode of the present disclosure. When the angle exceeds vertical -45° (i.e., extended angle intra prediction mode illustrated by solid arrows), sample "A" is projected to a sample on the right line, which may be a sub-sample. In one example, sample "A" is projected to a sub-sample, which can be interpolated with neighboring reconstructed samples on the right line by an interpolation filter. In another example, sample "A" is projected to a sub-sample, which can be approximated by neighboring reconstructed samples.
[0071]
[0092] In yet another example of the present disclosure, samples in the current block (i.e., within or of the current block) may be predicted by projected samples on the right line based on the use of extended angle intra prediction mode(s) beyond vertical -45°. Figure 14 shows an example where samples on the right line are projected from the top line of reconstructed samples at angles beyond vertical -45° (i.e., extended angle intra prediction mode illustrated by solid arrow). In this example, the projected samples on the right line are "filled" based on the reconstructed samples of the top line. For example, sample "A" on the right line is projected to a sub-sample of the top line, which can be interpolated with neighboring reconstructed samples on the top line by an interpolation filter. In another example, sample "A" on the right line is projected to a sub-sample, which can be approximated by neighboring reconstructed samples. In Figure 14, sample "A" on the right line may be projected to sample "B" on the top line as an approximation.
[0072]
[0093] In yet another example of the present disclosure, samples in a current block (i.e., within or of the current block) are predicted by reconstructed samples on the bottom line using an extended angle intra prediction mode (one or more) that exceeds horizontal -45°. FIG. 15 illustrates an example of predicting samples (marked as "A", "B", "C" and "D") of a current block from reconstructed samples located on the bottom line in an extended angle intra prediction mode. For angles exceeding horizontal -45° associated with the extended angle intra prediction mode used in FIG. 15, sample "A" is projected to a sample on the bottom line, which may be a subsample. In one example, sample "A" is projected to a subsample, which may be interpolated with neighboring reconstructed samples on the bottom line by an interpolation filter. In another example, sample "A" may be projected to a subsample, which may be approximated by neighboring reconstructed samples.
[0073]
[0094] In yet another example of the present disclosure, samples in a current block may be predicted by projected samples on the bottom line of reconstructed samples based on the use of extended angle intra prediction mode(s) beyond horizontal -45°. FIG. 16 shows an example where samples on the bottom line are projected from the left line at angles beyond horizontal -45°. In this example, the projected samples on the bottom line are "filled" based on the reconstructed samples of the left line. In one example, sample "A" on the bottom line is projected to a subsample, which can be interpolated with neighboring reconstructed samples on the left line by an interpolation filter. In another example, sample "A" on the bottom line is projected to a subsample, which can be approximated by neighboring reconstructed samples. In FIG. 16, sample "A" on the bottom line can be projected to sample "B" as an approximation.
[0074]
[0095] The enhanced angular intra prediction modes described in this disclosure may be applied to the luma component as well as the chroma component.
[0075]
[0096] The use of the extended angle intra prediction modes may depend on (i.e., may be based on or responsive to) the availability of neighboring reconstructed modes. For example, for the extended angle intra prediction modes defined in Figures 10A and 10B, if the top right reference sample is not available, extended angle intra prediction modes (e.g., N5-N8) beyond vertical -45° are not applicable (e.g., are restricted from use in accordance with the present disclosure or are not enabled in accordance with the present disclosure).
[0076]
[0097] In one example, when a neighboring block applies an extended angle intra prediction direction according to the present disclosure and the current block does not apply an extended angle intra prediction direction to derive the Most Probable Mode (MPM) in intra mode coding, the neighboring extended angle intra prediction direction may be mapped (i.e., associated or correspond) to the closest intra prediction direction (i.e., intra prediction mode) available for the current block. For example, when the extended angle intra prediction modes defined in Figures 10A and 10B, modes N5 to N8 will be mapped to intra mode 34.
[0077]
[0098] Alternatively, or in addition to the above dependencies / basis, the use of the extended angle intra prediction modes according to the present disclosure may depend on the shape of the current block. For example, for the extended angle intra prediction modes defined in Figures 10A and 10B, when the block width (i.e., the width of the current block) is greater than the block height (i.e., the height of the current block), only the extended angle intra prediction modes (e.g., N5 to N8) that exceed vertical -45° may be applicable, and the extended angle intra prediction modes (e.g., N1 to N4) that exceed horizontal -45° may not be allowed to be applied (e.g., restricted from use according to the present disclosure or not enabled according to the present disclosure). When the block width is smaller than the block height, only the extended angle intra prediction modes (e.g., N1 to N4) that exceed horizontal -45° may be applicable, and the extended angle intra prediction modes (e.g., N5 to N8) that exceed vertical -45° may not be allowed to be applied.
[0078]
[0099] In order to preserve (i.e., maintain) the same number of intra prediction modes when applying the extended angular intra prediction modes of the present disclosure, the intra prediction directions may be redistributed, for example, but not limited to, by shifting some intra prediction directions within the range of the extended angular intra prediction directions, e.g., [horizontal -(45+Δ0)°, vertical -(45+Δ0)°], and / or replacing some original intra prediction directions with the extended angular intra prediction directions of the present disclosure. The above redistribution and replacement techniques are merely illustrative. The present disclosure contemplates other techniques to maintain the same number of intra prediction modes based on the utilization of the extended angular intra prediction modes of the present disclosure.
[0079]
[0100] In various embodiments of this disclosure, the current block may be predicted by a weighted sum of an extended angle intra-prediction mode and a normal intra-prediction mode with angles between −45° horizontal and −45° vertical.
[0080]
[0101] A prediction block P1 is generated for the current block using a normal intra-prediction mode M1, and another prediction block P2 is generated for the current block using an enhanced angular intra-prediction mode M2. The final prediction block P may be generated as a weighted sum of P1 and P2, according to the formula shown below: P(x,y)=w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y), where (x,y) are the coordinates of the samples in the current block, w1 is the weighting value for P1 and w2 is the weighting value for P2.
[0081]
[0102] In one example, P(x,y)=(w1(x,y)×P1(x,y)+w2(x,y)×P2(x,y)+o)≫s, where w1, w2, o, and s are integers. Several constraints may be utilized (i.e., limitations may be constructed). For example, w1(x,y)+w2(x,y)=2 s o=2 s-1 0≦w1(x,y)≦2 s , 0≦W2(x,y)≦2 s
[0082]
[0103] In another example, w1 and w2 depend on the intra-prediction mode (IPM), which can be M1 or M2. For example, each mode can have a different w1 and w2. P(x,y)=w1(x,y,IPM)×P1(x,y)+w2(x,y,IPM)×P2(x,y). In another example, the intra-prediction modes are categorized (eg, arranged or sorted or assigned) into groups, and each group may have a different w1 and w2. P(x,y)=w1(x,y,Group(IPM))×P1(x,y)+w2(x,y,Group(IPM))×P2(x,y).
[0083]
[0104] In other embodiments, w1 and w2 can be calculated from x and y. In one example, w1(x,y,Group(IPM))=a(Group(IPM))×x+b(Group(IPM))×y+c(Group(IPM)), and w2(x,y,Group(IPM))=1-w1(x,y,Group(IPM)) It can be implemented in an integrated form w1(x,y,Group(IPM))=(a(Group(IPM))×x+b(Group(IPM))×y+c(Group(IPM))+o)≫s, and w2(x,y,Group(IPM))=2 s -w1(x,y,Group(IPM)). Here, a(Group(IPM)), b(Group(IPM)), c(Group(IPM)), o and s are integers.
[0084]
[0105] The parameters a(Group(IPM)), b(Group(IPM)) and c(Group(IPM)) may be predefined (i.e., configured) in both the encoder and the decoder, or alternatively or in addition, the parameters a(Group(IPM)), b(Group(IPM)) and c(Group(IPM)) may be signaled by the encoder to the decoder. Or, there may be several predefined parameters in both the encoder and the decoder. The encoder may signal an index associated with a set of predefined parameters to the decoder to indicate which parameter(s) are being used.
[0085]
[0106] This disclosure contemplates constraints that a coding device (e.g., an encoder and / or decoder) may be configured to operate according to. For example, o=2 s-1 0≦w1(x,y)≦2 s ,0≦w2(x,y)≦2 s 0≦a(Group(IPM)),b(Group(IPM)),c(Group(IPM))≦2 k where k is an integer.
[0086]
[0107] In one example, w1(x,y,Group(IPM))=a(Group(IPM))×x 2 +b(Group(IPM))×y 2 +c(Group(IPM))×x×y+d(Group(IPM))×x+e(Group(IPM))×y+f(Group(IPM)), and w2(x,y,Group(IPM))=1-w1(x,y,Group(IPM)) It may be implemented in an integrated form (e.g., by a coding device) w1(x,y,Group(IPM))=(a(Group(IPM))×x 2 +b(Group(IPM))×y 2+c(Group(IPM))×x×y+d(Group(IPM))×x+e(Group(IPM))×y+f(Group(IPM))+o)≫s, and w2(x,y,Group(IPM))=2 s -w1(x,y,Group(IPM)). Here, a(Group(IPM)), b(Group(IPM)), c(Group(IPM)), d(Group(IPM)), e(Group(IPM)), f(Group(IPM)), o and s are integers.
[0087]
[0108] The parameters a(Group(IPM)), b(Group(IPM)), c(Group(IPM)), d(Group(IPM)), e(Group(IPM)), and f(Group(IPM)) may be predefined in both the encoder and the decoder, or alternatively or in addition, the parameters a(Group(IPM)), b(Group(IPM)), c(Group(IPM)), d(Group(IPM)), e(Group(IPM)), and f(Group(IPM)) may be signaled from the encoder to the decoder. Alternatively or in addition, some predefined parameters may be configured in both the encoder and the decoder. In one embodiment, similar to the discussion above, the encoder may signal an index to the decoder to indicate which parameter is being used. Several constraints may be utilized in accordance with the present disclosure. For example, o=2 s-1 0≦w1(x,y)≦2 s ,0≦w2(x,y)≦2 s 0≦a(Group(IPM)),b(Group(IPM)),c(Group(IPM)),d(Group(IPM)),e(Group(IPM)),f(Group(IPM))≦2 k where k is an integer.
[0088]
[0109] As an alternative or in addition to other disclosed techniques, this disclosure contemplates enabling (i.e., configuring) a coding device to constrain the predicted angles of M1 and M2 to be opposite or nearly opposite to each other. Figure 17 illustrates an example where the angles of M1 and M2 are opposite directions.
[0089]
[0110] In various implementations of this disclosure, luma samples may be predicted from chroma samples. This disclosure contemplates a new prediction technique that enables this prediction of luma samples from chroma samples, called inverse linear model (iLM) intra prediction.
[0090]
[0111] For example, Pred' L [x,y]=α·Rec C [x,y]+β, where Rec c [x,y] is the reconstructed sample of chroma. α and β are derived by the neighboring constructed luma and chroma samples in a linear regression approach. Pred' L [x,y] are the downsampled luma prediction samples. The prediction block for the luma component can be generated by upsampling the downsampled luma prediction samples. For example,
number
[0091]
[0112] According to the present disclosure, a flag may be signaled at the picture level, slice level, coding tree unit (CTU) level, coding unit (CU) level, prediction unit (PU) level, and / or transform unit (TU) level to indicate whether iLM is applied. In one example, based on a luma sample in a CTU, CU, TU, or PU being predicted in iLM mode, the chroma sample in the same CTU, CU, TU, or PU cannot be predicted in LM mode. In one example, based on a luma sample in a CTU being predicted in iLM mode, the coding structures of the luma and chroma components must be shared, and in this example, the coding structures of the luma and chroma components cannot be separated. In yet another example, based on a luma sample in a CTU being predicted in iLM mode, the coding structures of the luma and chroma components can be separated, but the information of the chroma component from which iLM derives luma prediction must be coded before the luma component.
[0092]
[0113] In accordance with this disclosure, the final luma prediction block may be computed (ie, determined or calculated) as a weighted sum of a prediction for the iLM mode and a prediction for a normal or enhanced intra prediction mode.
[0093]
[0114] In various embodiments of the present disclosure, intra prediction can be performed in a row-by-row cascaded manner. Figures 18A-18D illustrate examples of row-by-row cascaded intra prediction of a current block according to the present disclosure. Figures 18E-18H illustrate examples of row-by-row cascaded intra prediction of a current block utilizing the extended angular intra prediction mode of the present disclosure.
[0094]
[0115] In Figure 18A, samples in the first row from the top of the current block (marked in black) are predicted from reconstructed neighboring samples (marked in crosshatch shading) at an angle associated with a particular prediction mode. In Figure 18B, samples in the second row of the current block (marked in black) are predicted from the predicted samples in the first row at an angle associated with a particular prediction mode (e.g., the angle of the prediction mode utilized in predicting the sample illustrated in Figure 18A). Samples of the current block at the boundary of Figure 18B (e.g., the leftmost sample in the second row from the top of the current block, marked in black) may be predicted from reconstructed neighboring samples (e.g., samples marked in crosshatch shading) using an angle associated with a particular prediction mode. In Figure 18C, the third row of samples of the current block (samples marked in black) are predicted (e.g., using an angle associated with a particular prediction mode) from the predicted samples of the second row of the current block and the reconstructed neighboring block (marked in cross-hatch shading) as shown. In Figure 18D, the fourth row of samples of the current block (samples marked in black) are predicted from the predicted samples of the third row of the current block and the reconstructed neighboring block (marked in cross-hatch shading) as shown.
[0095]
[0116] As mentioned above, Figures 18E-18H illustrate examples of row-by-row cascaded intra prediction utilizing the extended angle intra prediction mode of the present disclosure. In Figure 18E, samples in the fourth row from the top of the current block (samples marked in black) are predicted from reconstructed neighboring samples (samples marked in cross-hatch shading) using the extended angle of the extended angle intra prediction mode. In Figure 18F, samples in the third row from the top of the current block (samples marked in black) are predicted from predicted samples in the fourth row of the current block (i.e., samples of the current block predicted as illustrated in Figure 18E) using the extended angle of the extended angle intra prediction mode. Samples at the boundary positions of the current block (e.g., the leftmost sample marked in black in the third row from the top of the current block) may be predicted from reconstructed neighboring samples (samples marked in cross-hatch shading). In Figure 18G, the samples located / in the second row from the top of the current block (marked in black) may be predicted from the predicted samples in the third row of the current block and the neighboring reconstructed sample(s) using the extended angle of the extended angle intra-prediction mode. Similarly, in Figure 18H, the samples located / in the first row from the top of the current block (marked in black) may be predicted from the predicted samples in the second row of the current block and the neighboring reconstructed sample(s) using the extended angle of the extended angle intra-prediction mode.
[0096]
[0117] In one example of this disclosure, the final prediction block may be calculated by the coding device as a weighted sum of a prediction of a cascade prediction technique and a prediction of a normal or enhanced intra prediction mode with the same prediction angle or other prediction angles.
[0097]
[0118] In accordance with the present disclosure, the cascade prediction technique may be constrained to be applied only to certain prediction modes. In one example, the cascade prediction technique may be applied only to prediction modes having angles between 0° horizontal and 0° vertical, as shown in FIG.
[0098]
[0119] In various embodiments, when the cascaded intra-prediction techniques of the present disclosure are implemented, the intra-prediction direction is signaled, for example, by a source device, however, for each row, or for each column or group of rows or groups of columns, a different intra-prediction direction may be applied. In such cases, the difference compared to (i.e., to) the signaled prediction direction, or compared to the intra-prediction applied for the previous row / column, is signaled.
[0099]
[0120] In yet another embodiment, when the cascaded intra prediction technique of the present disclosure is implemented, the intra prediction direction (represented by SIP) is signaled. However, for each row, or for each column or group of rows or groups of columns, a different intra prediction direction may be applied, which is derived by checking (i.e., determining or calculating) the cost of applying each intra prediction direction in the range of (SIP-σ, SIP+σ) on the previous reconstructed row / column, and the intra prediction direction with the smallest cost among the multiple calculated costs is derived as the intra prediction direction to be applied for the current row / column.
[0100]
[0121] FIG. 20 is a block diagram illustrating an example of a video encoder 20 that may implement techniques for prediction described in this disclosure (e.g., enhanced angular intra-prediction modes, cascaded intra-prediction, and / or inverse linear model intra-prediction). The video encoder 20 may perform intra- and inter-coding of video blocks within a video slice. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy in video within a given video frame or picture. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy in video within adjacent frames or pictures of a video sequence. An intra-mode (I-mode) may refer to any of several spatial-based coding modes. An inter-mode, such as uni-directional prediction (P-mode) or bi-prediction (B-mode), may refer to any of several temporal-based coding modes. As shown in FIG. 20, the video encoder 20 receives a current video block in a video frame to be encoded. In the example of FIG. 20, video encoder 20 includes a mode selection unit 40, a reference picture memory 64 (which may be referred to as a decoded picture buffer (DPB)), an adder 50, a transform processing unit 52, a quantization unit 54, and an entropy coding unit 56. Mode selection unit 40 in turn includes a motion compensation unit 44, a motion estimation unit 42, an intra prediction unit 46, and a partitioning unit 48. For video block reconstruction, video encoder 20 also includes an inverse quantization unit 58, an inverse transform unit 60, and an adder 62. A deblocking filter (not shown in FIG. 20) may also be included to filter block boundaries to remove blockiness artifacts from the reconstructed video. If desired, the deblocking filter will typically filter the output of adder 62. Additional filters (in-loop or post-loop) may also be used in addition to the deblocking filter.Such a filter is not shown for simplicity, but may filter the output of summer 50 (as an in-loop filter) if desired.
[0101]
[0122] During the encoding process, video encoder 20 receives a video frame or slice to be coded. The frame or slice may be divided into multiple video blocks. Motion estimation unit 42 and motion compensation unit 44 perform inter-predictive coding of the received video block relative to one or more blocks in one or more reference frames to provide temporal prediction. Intra prediction unit 46 may alternatively perform intra-predictive coding of the received video block relative to one or more neighboring blocks in the same frame or slice as the block to be coded to provide spatial prediction. Video encoder 20 may perform multiple coding passes, for example, to select an appropriate coding mode for each block of video data.
[0102]
[0123] Moreover, partitioning unit 48 may partition blocks of video data into sub-blocks based on an evaluation of a previous partitioning scheme in a previous coding pass. For example, partitioning unit 48 may first partition a frame or slice into CTUs and partition each of the CTUs into sub-CUs based on a rate-distortion analysis (e.g., rate-distortion optimization). Mode selection unit 40 may further create a quadtree data structure indicating the partitioning of the CTUs into sub-CUs. A leaf node CU of the quadtree may include one or more PUs and one or more TUs.
[0103]
[0124] Mode select unit 40 may select one of the prediction modes, intra or inter, for example, based on the error result, and provide the resulting predicted block to summer 50 to generate residual data and to summer 62 to reconstruct the coded block for use as a reference frame. Mode select unit 40 also provides syntax elements, such as motion vectors, intra mode indicators, partitioning information, and other such syntax information, to entropy coding unit 56.
[0104]
[0125] Motion estimation unit 42 and motion compensation unit 44 may be highly integrated, but are illustrated separately for conceptual purposes. Motion estimation performed by motion estimation unit 42 is the process of generating motion vectors, which estimate motion for video blocks. A motion vector may indicate, for example, the displacement of a PU of a video block in a current video frame or picture relative to a predictive block in a reference frame (or other coded unit) relative to a current block being coded in that current frame (or other coded unit). A predictive block is a block that is found to closely match a block to be coded in terms of pixel differences, which may be determined by sum of absolute difference (SAD), sum of square difference (SSD), or other difference metric. In some examples, video encoder 20 may calculate values for sub-integer pixel locations of reference pictures stored in reference picture memory 64. For example, video encoder 20 may interpolate values of quarter-pixel, eighth-pixel, or other fractional pixel locations of a reference picture. Thus, motion estimation unit 42 may perform motion searches for full-pixel and fractional-pixel locations and output motion vectors with fractional-pixel accuracy.
[0105]
[0126] Motion estimation unit 42 calculates a motion vector for a PU of a video block in an inter-coded slice by comparing the position of the PU to the position of a predictive block of a reference picture. The reference picture may be selected from a first reference picture list (list 0) or a second reference picture list (list 1), each of which identifies one or more reference pictures stored in reference picture memory 64. Motion estimation unit 42 sends the calculated motion vector to entropy encoding unit 56 and motion compensation unit 44.
[0106]
[0127] The motion compensation performed by motion compensation unit 44 may involve fetching or generating a predictive block based on a motion vector determined by motion estimation unit 42. Again, in some examples, motion estimation unit 42 and motion compensation unit 44 may be functionally integrated. Upon receiving a motion vector for a PU of a current video block, motion compensation unit 44 may locate the predictive block to which the motion vector points in one of the reference picture lists. Adder 50 forms a residual video block by subtracting pixel values of the predictive block from pixel values of the current video block being coded and forming pixel difference values, as discussed below. In general, motion estimation unit 42 performs motion estimation on the luma component, and motion compensation unit 44 uses the motion vector calculated based on the luma component for both the chroma and luma components. Mode selection unit 40 may also generate syntax elements associated with the video blocks and video slices for use by video decoder 30 in decoding video blocks of the video slices.
[0107]
[0128] Intra prediction unit 46 may intra predict the current block as an alternative to inter prediction performed by motion estimation unit 42 and motion compensation unit 44, as described above. In particular, intra prediction unit 46 may determine an intra prediction mode to use to encode the current block. For example, intra prediction unit 46 may implement an extended angular intra prediction mode, cascaded intra prediction, and / or inverse linear model intra prediction, e.g., as described in this disclosure. In some examples, intra prediction unit 46 may encode the current block using various intra prediction modes, e.g., during separate encoding passes, and intra prediction unit 46 (or, in some examples, mode selection unit 40) may select an appropriate intra prediction mode to use from the tested modes and / or intra prediction modes described in this disclosure.
[0108]
[0129] For example, intra prediction unit 46 may calculate a rate-distortion value using a rate-distortion analysis for various tested intra prediction modes and select the intra prediction mode with the best rate-distortion characteristics among the tested modes. The rate-distortion analysis generally determines the amount of distortion (or error) between the coded block and the original uncoded block that was coded to produce the coded block, as well as the bit rate (i.e., number of bits) used to produce the coded block. Intra prediction unit 46 may calculate a ratio from the distortion and rate for the various coded blocks to determine which intra prediction mode exhibits the best rate-distortion value for the block.
[0109]
[0130] After selecting an intra-prediction mode for a block, intra-prediction unit 46 may provide information indicating the selected intra-prediction mode for the block to entropy encoding unit 56. Entropy encoding unit 56 may encode the information indicating the selected intra-prediction mode. Video encoder 20 may include definitions of coding contexts for various blocks and indications of the most probable intra-prediction mode, intra-prediction mode index table, and modified intra-prediction mode index table to use for each of those contexts in the transmitted bitstream configuration data, which may include multiple intra-prediction mode index tables and multiple modified intra-prediction mode index tables (also referred to as codeword mapping tables). As mentioned above, intra-prediction unit 46 may be configured to perform the intra-prediction techniques described in this disclosure.
[0110]
[0131] Video encoder 20 forms a residual video block by subtracting the prediction data from mode select unit 40 from the original video block being coded. Summer 50 represents one or more components that perform this subtraction operation. Transform processing unit 52 applies a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform, to the residual block to produce a video block comprising transform coefficient values. A wavelet transform, an integer transform, a sub-band transform, a discrete sine transform (DST), or other types of transforms may be used in place of the DCT. In either case, transform processing unit 52 applies a transform to the residual block to produce a block of transform coefficients. The transform may convert the residual information from the pixel domain to a transform domain, such as the frequency domain. Transform processing unit 52 may send the resulting transform coefficients to quantization unit 54. Quantization unit 54 quantizes the transform coefficients to further reduce the bit rate. The quantization process may reduce the bit depth associated with some or all of the coefficients. The degree of quantization may be modified by adjusting a quantization parameter.
[0111]
[0132] Following quantization, entropy coding unit 56 entropy codes the quantized transform coefficients. For example, entropy coding unit 56 may perform context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioned entropy (PIPE) coding, or another entropy coding technique. In the case of context-based entropy coding, the context may be based on neighboring blocks. Following entropy coding by entropy coding unit 56, the encoded bitstream may be transmitted to another device (e.g., video decoder 30) or archived for later transmission or retrieval.
[0112]
[0133] Inverse quantization unit 58 and inverse transform unit 60 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain. In particular, adder 62 adds the reconstructed residual block to a motion compensated prediction block previously produced by motion compensation unit 44 or intra prediction unit 46 to produce a reconstructed video block for storage in reference picture memory 64. The reconstructed video block may be used by motion estimation unit 42 and motion compensation unit 44 as a reference block for inter-coding blocks in subsequent video frames.
[0113]
[0134] FIG. 21 is a block diagram illustrating an example of a video decoder 30 that may implement techniques for intra prediction described in this disclosure, such as enhanced angular intra prediction modes, cascaded intra prediction, and / or inverse linear model intra prediction. In the example of FIG. 21, the video decoder 30 includes an entropy decoding unit 70, a motion compensation unit 72, an intra prediction unit 74, an inverse quantization unit 76, an inverse transform unit 78, a reference picture memory 82, and an adder 80. The video decoder 30 may, in some examples, perform a decoding path that is generally opposite to the encoding path described with respect to the video encoder 20 (FIG. 20). The motion compensation unit 72 may generate prediction data based on a motion vector received from the entropy decoding unit 70, while the intra prediction unit 74 may generate prediction data based on an intra prediction mode indicator received from the entropy decoding unit 70.
[0114]
[0135] During the decoding process, video decoder 30 receives an encoded video bitstream representing video blocks of encoded video slices and associated syntax elements from video encoder 20. Entropy decoding unit 70 of video decoder 30 entropy decodes the bitstream to generate quantized coefficients, motion vectors or intra-prediction mode indicators, and other syntax elements. Entropy decoding unit 70 forwards the motion vectors and other syntax elements to motion compensation unit 72. Video decoder 30 may receive syntax elements at the video slice level and / or the video block level.
[0115]
[0136] When a video slice is coded as an intra-coded (I) slice, intra prediction unit 74 may generate predictive data for video blocks of the current video slice based on data from previously decoded blocks of the current frame or picture and the signaled intra-prediction mode. When a video frame is coded as an inter-coded (i.e., B or P) slice, motion compensation unit 72 produces predictive blocks for video blocks of the current video slice based on motion vectors and other syntax elements received from entropy decoding unit 70. The predictive blocks may be produced 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 default construction technique based on reference pictures stored in reference picture memory 82. Motion compensation unit 72 determines predictive information for video blocks of the current video slice by parsing the motion vectors and other syntax elements and uses the predictive information to produce predictive blocks for the current video block being decoded. For example, motion compensation unit 72 uses some of the received syntax elements to determine the prediction mode (e.g., intra or inter prediction) used to code the video blocks of the video slice, the inter prediction slice type (e.g., B slice or P slice), construction information for one or more of the reference picture lists for the slice, motion vectors for each inter coded video block of the slice, inter prediction states for each inter coded video block of the slice, and other information for decoding the video blocks in the current video slice.
[0116]
[0137] Motion compensation unit 72 may also perform the interpolation based on an interpolation filter. Motion compensation unit 72 may use an interpolation filter, as used by video encoder 20 during encoding of the video block, to calculate interpolated values for sub-integer pixels of the reference block. In this case, motion compensation unit 72 may determine the interpolation filter used by video encoder 20 from the received syntax element and use the interpolation filter to produce the predictive block.
[0117]
[0138] Intra prediction unit 74 may be configured to perform intra prediction techniques such as the enhanced angular intra prediction modes described in this disclosure, cascaded intra prediction, and / or inverse linear model intra prediction.
[0118]
[0139] Inverse quantization unit 76 inverse quantizes, or de-quantizes, the quantized transform coefficients provided in the bitstream and decoded by entropy decoding unit 70. The inverse quantization process uses a quantization parameter QP calculated by video decoder 30 for each video block in a video slice to determine the degree of quantization, and similarly, the degree of inverse quantization to be applied. Y This may include the use of
[0119]
[0140] Inverse transform unit 78 applies an inverse transform, such as an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients in order to produce residual blocks in the pixel domain.
[0120]
[0141] After motion compensation unit 72 generates a predictive block for the current video block based on the motion vector and other syntax elements, video decoder 30 forms a decoded video block by adding a residual block from inverse transform unit 78 with a corresponding predictive block generated by motion compensation unit 72. Adder 80 represents one or more components that perform this addition operation. If desired, a deblocking filter may also be applied to filter the decoded block to remove blockiness artifacts. Other loop filters (either during or after the coding loop) may also be used to smooth pixel transitions or otherwise improve video quality. The decoded video blocks in a given frame or picture are then stored in reference picture memory 82, which stores reference pictures used for subsequent motion compensation. Reference picture memory 82 also stores decoded video for later presentation on a display device, such as display device 32 of FIG. 1.
Claims
1. 1. A method for encoding or decoding video data, comprising the steps of: locating at least one reconstructed sample of the video data; determining at least one extended angular intra-prediction mode to use for intra-prediction of at least one sample of the current block; Intra predicting at least one sample of the current block based on the at least one reconstructed sample using the at least one extended angular intra prediction mode, the extended angular intra prediction mode including an angular intra prediction mode other than an angular prediction mode between −45 degrees horizontal and −45 degrees vertical. encoding or decoding the current block based on the at least one predicted sample; A method comprising:
2. The method of claim 1 , wherein the at least one extended angular intra-prediction mode comprises at least one of an angle mode greater than −45 degrees horizontal or an angle mode greater than −45 degrees vertical.
3. The method of claim 1 , further comprising determining whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block based on a shape of the current block.
4. 2. The method of claim 1, further comprising: determining whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block based on availability of at least one reconstructed sample neighboring the current block.
5. The method of claim 1 , further comprising predicting at least one of a luma component or a chroma component of the current block based on the at least one enhanced angular intra prediction mode.
6. 10. The method of claim 1, further comprising: determining the at least one extended angular intra-prediction mode in response to permuting angular intra-prediction modes between -45 degrees horizontal and -45 degrees vertical.
7. 2. The method of claim 1 , further comprising: determining the at least one extended angular intra prediction mode in response to shifting an angular intra prediction mode between −45 degrees horizontal and −45 degrees vertical within an angular direction range of the extended angular intra prediction mode.
8. generating a first predicted block associated with the current block based on an angular intra prediction mode between −45 degrees horizontal and −45 degrees vertical; generating a second predicted block associated with the current block based on the at least one extended angular intra-prediction mode; determining a weighted sum of the first predicted block and the second predicted block; generating a final prediction block based on the weighted sum; and predicting the current block based on the final predicted block; The method of claim 1 further comprising:
9. 1. An apparatus configured to encode or decode video data, the apparatus comprising: a memory configured to store at least one reconstructed sample of the video data; at least one processor in communication with the memory; wherein the at least one processor: identifying at least one reconstructed sample; determining at least one extended angular intra-prediction mode to use for intra-prediction of at least one sample of the current block; Intra predicting at least one sample of the current block based on the at least one reconstructed sample using the at least one extended angular intra prediction mode, the extended angular intra prediction mode including an angular intra prediction mode other than an angular prediction mode between −45 degrees horizontal and −45 degrees vertical. encoding or decoding the current block based on the at least one predicted sample; 4. An apparatus configured to:
10. 10. The apparatus of claim 9, wherein the at least one extended angular intra-prediction mode comprises at least one of an angle mode greater than -45 degrees horizontal or an angle mode greater than -45 degrees vertical.
11. 10. The apparatus of claim 9, wherein the at least one processor is further configured to determine, based on a shape of the current block, whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block.
12. 10. The apparatus of claim 9, wherein the at least one processor is further configured to determine whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block based on availability of at least one reconstructed sample neighboring the current block.
13. 10. The apparatus of claim 9, wherein the at least one processor is further configured to predict at least one of a luma component or a chroma component of the current block based on the at least one enhanced angular intra prediction mode.
14. 10. The apparatus of claim 9, wherein the at least one processor is further configured to determine the at least one extended angular intra-prediction mode in response to a permutation of angular intra-prediction modes between −45 degrees horizontal and −45 degrees vertical.
15. 10. The apparatus of claim 9, wherein the at least one processor is further configured to determine the at least one extended angular intra prediction mode in response to a shift such that an angular intra prediction mode between −45 degrees horizontal and −45 degrees vertical is within an angular direction range of the extended angular intra prediction mode.
16. The at least one processor generating a first prediction block associated with the current block based on an angular intra prediction mode between −45 degrees horizontal and −45 degrees vertical; generating a second predicted block associated with the current block based on the at least one extended angular intra-prediction mode; determining a weighted sum of the first predicted block and the second predicted block; generating a final prediction block based on the weighted sum; and predicting the current block based on the final predicted block; The apparatus of claim 9 , further configured to:
17. 1. An apparatus configured to encode or decode video data, the apparatus comprising: means for storing at least one reconstructed sample of the video data; means for identifying at least one reconstructed sample; means for determining at least one extended angular intra-prediction mode to use for intra-prediction of at least one sample of a current block; means for intra predicting at least one sample of the current block based on the at least one reconstructed sample using the at least one extended angular intra prediction mode, the extended angular intra prediction mode including an angular intra prediction mode other than an angular prediction mode between −45 degrees horizontal and −45 degrees vertical; means for encoding or decoding the current block based on the at least one predicted sample; An apparatus comprising:
18. 20. The apparatus of claim 17, wherein the at least one extended angular intra-prediction mode comprises at least one of an angle mode greater than -45 degrees horizontal or an angle mode greater than -45 degrees vertical.
19. The apparatus of claim 17 , further comprising: means for determining, based on a shape of the current block, whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block.
20. 20. The apparatus of claim 17, further comprising: means for determining whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block based on availability of at least one reconstructed sample neighboring the current block.
21. The apparatus of claim 17 , further comprising: means for predicting at least one of a luma component or a chroma component of the current block based on the at least one enhanced angular intra prediction mode.
22. 20. The apparatus of claim 17, further comprising: means for determining the at least one extended angular intra-prediction mode in response to a permutation of an angular intra-prediction mode between -45 degrees horizontal and -45 degrees vertical.
23. 20. The apparatus of claim 17, further comprising: means for determining the at least one extended angular intra prediction mode in response to a shift such that an angular intra prediction mode between −45 degrees horizontal and −45 degrees vertical is within an angular direction range of the extended angular intra prediction mode.
24. means for generating a first prediction block associated with the current block based on an angular intra prediction mode between −45 degrees horizontal and −45 degrees vertical; means for generating a second predicted block associated with the current block based on the at least one extended angular intra-prediction mode; means for determining a weighted sum of the first predicted block and the second predicted block; means for generating a final prediction block based on the weighted sum; means for predicting the current block based on the final predicted block; 20. The apparatus of claim 17, further comprising:
25. When executed, the method includes the steps of: identifying at least one reconstructed sample; determining at least one extended angular intra-prediction mode to use for intra-prediction of at least one sample of the current block; Intra predicting at least one sample of the current block based on the at least one reconstructed sample using the at least one extended angular intra prediction mode, the extended angular intra prediction mode including an angular intra prediction mode other than an angular prediction mode between −45 degrees horizontal and −45 degrees vertical. encoding or decoding the current block based on the at least one predicted sample; A computer-readable storage medium storing instructions for causing a
26. 26. The computer-readable storage medium of claim 25, further storing instructions that, when executed, cause the one or more processors configured to encode or decode video data to determine, based on a shape of the current block, whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block.
27. 26. The computer-readable storage medium of claim 25, further storing instructions that, when executed, cause the one or more processors configured to encode or decode video data to determine whether the at least one enhanced angular intra-prediction mode is available for intra prediction of the current block based on availability of at least one reconstructed sample neighboring the current block.
28. 26. The computer-readable storage medium of claim 25, further storing instructions that, when executed, cause the one or more processors configured to encode or decode video data to predict at least one of a luma component or a chroma component of the current block based on the at least one enhanced angular intra-prediction mode.
29. 26. The computer-readable storage medium of claim 25, further storing instructions that, when executed, cause the one or more processors configured to encode or decode video data to determine the at least one extended angular intra-prediction mode in response to a shift such that an angular intra-prediction mode between -45 degrees horizontal and -45 degrees vertical is within an angular direction range of the extended angular intra-prediction mode.
30. When executed, the one or more processors are configured to encode or decode video data: generating a first prediction block associated with the current block based on an angular intra prediction mode between −45 degrees horizontal and −45 degrees vertical; generating a second predicted block associated with the current block based on the at least one extended angular intra-prediction mode; determining a weighted sum of the first predicted block and the second predicted block; generating a final prediction block based on the weighted sum; and predicting the current block based on the final predicted block; 26. The computer readable storage medium of claim 25, further storing instructions to cause:
Citation Information
Patent Citations
Image processing apparatus and image processing method
JP2012028858A
Intra prediction and intra mode coding
US20160373741A1
Intra-prediction coding method, intra-prediction decoding method, intra-prediction coding device, intra-prediction decoding device, programs therefor and recording mediums on which programs are recorded
WO2014050971A1