Apparatus and method for encoding video data

文档序号:1866584 发布日期:2021-11-19 浏览:6次 中文

阅读说明:本技术 用于编码视频数据的装置和方法 (Apparatus and method for encoding video data ) 是由 杨雨樵 林柏翰 于 2020-03-10 设计创作,主要内容包括:提供了一种由电子装置对比特流进行解码的方法。从比特流接收图像帧。从图像帧来确定块单元。基于比特流为块单元确定与多个广角候选模式之一相对应的帧内预测模式索引,每个广角候选模式均具有角度参数。确定与块单元相邻的多个参考样本。电子装置确定帧内预测模式索引是否与预定义索引不同,每个预定义索引对应于广角候选模式中的预定义广角模式之一。当帧内预测模式索引与预定义索引不同时,基于参考样本由插值滤波器生成多个滤波后样本。基于滤波后样本沿帧内预测模式索引的模式方向重建块单元。(A method of decoding a bitstream by an electronic device is provided. An image frame is received from a bitstream. The block unit is determined from the image frame. An intra prediction mode index corresponding to one of a plurality of wide angle candidate modes, each having an angle parameter, is determined for a block unit based on a bitstream. A plurality of reference samples adjacent to the block unit is determined. The electronic device determines whether intra-prediction mode indices are different from predefined indices, each predefined index corresponding to one of predefined wide-angle modes in the wide-angle candidate mode. When the intra prediction mode index is different from the predefined index, a plurality of filtered samples are generated by the interpolation filter based on the reference sample. The block unit is reconstructed in a mode direction of the intra prediction mode index based on the filtered samples.)

1. A method of decoding a bitstream by an electronic device, the method comprising:

receiving an image frame of the bitstream;

determining a block unit from the received image frame;

determining an intra prediction mode index of the block unit based on the bitstream, the intra prediction mode index corresponding to one of a plurality of wide angle candidate modes, each wide angle candidate mode having an angle parameter;

determining a plurality of reference samples adjacent to the block unit;

determining whether the determined intra-prediction mode index is equal to at least one of a plurality of predefined indices, each predefined index corresponding to one of a plurality of predefined wide angle modes of the plurality of wide angle candidate modes;

generating, by an interpolation filter, a plurality of filtered samples based on the determined plurality of reference samples when the determined intra prediction mode index is not equal to at least one of the plurality of predefined indices; and

reconstructing the determined block unit in a mode direction of the determined intra prediction mode index based on the generated plurality of filtered samples,

wherein the angle parameters of the plurality of predefined wide angle modes are divisible by predefined values.

2. The method of claim 1, further comprising:

generating a plurality of filtered samples with a reference filter different from the interpolation filter based on the determined plurality of reference samples when the determined intra-prediction mode index is equal to at least one of the plurality of predefined indices.

3. The method of claim 2,

the plurality of filtered samples bypass the interpolation filter when the determined intra-prediction mode index is equal to at least one of the plurality of predefined indices.

4. The method of claim 1, wherein:

the determined block unit comprises a plurality of component blocks; and

each of the plurality of component blocks points to a corresponding one of the determined plurality of reference samples along the mode direction when the determined intra prediction mode index is equal to at least one of the plurality of predefined indices.

5. The method of claim 4,

each of the plurality of component blocks points along the mode direction to a fractional sample position between two adjacent reference samples of the determined plurality of reference samples when the determined intra prediction mode index is not equal to at least one of the plurality of predefined indices.

6. The method of claim 1,

each of the plurality of predefined wide angle modes points from the determined block unit to a fully sampled position in the determined plurality of reference samples.

7. The method of claim 1,

the predefined value is equal to a fractional sampling precision parameter of the interpolation filter.

8. An electronic device for decoding a bitstream, the electronic device comprising:

at least one processor; and

a storage device coupled to the at least one processor and storing a plurality of instructions that, when executed by the at least one processor, cause the at least one processor to:

receiving an image frame of the bitstream;

determining a block unit from the received image frame;

determining an intra prediction mode index of the determined block unit based on the bitstream, the determined intra prediction mode index corresponding to one of a plurality of wide angle candidate modes, each wide angle candidate mode having an angle parameter;

determining a plurality of reference samples adjacent to the block unit;

determining whether the determined intra-prediction mode index is equal to at least one of a plurality of predefined indices, each predefined index corresponding to one of a plurality of predefined wide angle modes of the plurality of wide angle candidate modes;

generating, by an interpolation filter, a plurality of filtered samples based on the determined plurality of reference samples when the determined intra prediction mode index is not equal to at least one of the plurality of predefined indices; and

reconstructing the determined block unit in a mode direction of the intra prediction mode index based on the generated plurality of filtered samples,

wherein the angle parameters of the plurality of predefined wide angle modes are divisible by predefined values.

9. The electronic device of claim 8, wherein the plurality of instructions, when executed by the at least one processor, cause the at least one processor to:

generating a plurality of filtered samples with a reference filter different from the interpolation filter based on the determined plurality of reference samples when the determined intra-prediction mode index is equal to at least one of the plurality of predefined indices.

10. The electronic device of claim 9,

the plurality of filtered samples bypass the interpolation filter when the plurality of reference samples are filtered by the reference filter to generate the plurality of filtered samples.

11. The electronic device of claim 8, wherein:

the determined block unit comprises a plurality of component blocks; and

each of the plurality of component blocks points to a corresponding one of the determined plurality of reference samples along the mode direction when the determined intra prediction mode index is equal to at least one of the plurality of predefined indices.

12. The electronic device of claim 11,

each of the plurality of component blocks points along the mode direction to a fractional sample position between two adjacent reference samples of the determined plurality of reference samples when the determined intra prediction mode index is not equal to at least one of the plurality of predefined wide angle indices.

13. The electronic device of claim 8,

the predefined value is equal to a fractional sampling precision parameter of the interpolation filter.

14. A method of decoding a bitstream by an electronic device, the method comprising:

receiving an image frame of the bitstream;

determining a block unit from the received image frame;

determining an intra prediction mode index of the determined block unit based on the bitstream;

determining a plurality of reference samples adjacent to the determined block unit;

comparing the determined intra-prediction mode index to a plurality of predefined indices, each predefined index corresponding to an angle parameter that is divisible by a predefined value;

generating a plurality of filtered samples by one of a plurality of sampling filters selected based on the comparison, the plurality of filtered samples determined based on the determined plurality of reference samples; and

reconstructing the determined block unit based on the generated plurality of filtered samples and the determined intra prediction mode index.

15. The method of claim 14,

when the determined intra-prediction mode index is equal to at least one of the plurality of predefined indices, one of the selected plurality of sampling filters is a reference filter.

16. The method of claim 15,

when the determined intra prediction mode index is not equal to at least one of the plurality of predefined indices, the selected one of the plurality of sampling filters is an interpolation filter different from a reference filter.

17. The method of claim 16,

the generated plurality of filtered samples bypass the interpolation filter when the determined intra-prediction mode index is equal to at least one of the plurality of predefined indices.

18. The method of claim 14, wherein:

the determined block unit comprises a plurality of component blocks; and

when the determined intra-prediction mode index is equal to at least one of the plurality of predefined indices and corresponds to an angular intra-mode, each of the plurality of component blocks points to a corresponding one of the determined plurality of reference samples along the mode direction.

19. The method of claim 17,

each of the plurality of component blocks points along the mode direction to a fractional sample position between two adjacent reference samples of the determined plurality of reference samples when the determined intra prediction mode index is not equal to at least one of the plurality of predefined indices and corresponds to an angular intra mode.

20. The method of claim 14,

the predefined value is equal to a fractional sampling precision parameter of the interpolation filter.

Technical Field

The present disclosure relates generally to video coding and, more particularly, to techniques for selecting one of a plurality of sampling filters to predict block units in an image frame.

Background

Intra prediction is an encoding tool in video coding methods. In a conventional video encoding method, an encoder and a decoder generate a reference pixel and a predictor using previously reconstructed pixels in a nearest pixel line adjacent to a coding block, the predictor being used to predict or reconstruct the coding block at an orientation when the coding block is in an interior angle mode along a prediction mode of the coding block. The reference pixels are filtered by an interpolation filter before a predictor of the encoded block is generated from the reference pixels based on the direction. However, the number of times the interpolation filter for the coding block is calculated is equal to the product W × H of the block width W and the block height H of the coding block, so that the filtering process may be excessively complicated for the video coding method. Therefore, the encoder and the decoder need to reduce the usage rate of the interpolation filter to improve the encoding efficiency.

Disclosure of Invention

The present disclosure relates to an apparatus and method for filtering a plurality of reference samples of a block unit in an image frame through one of a plurality of sampling filters selected based on an intra prediction mode index.

In a first aspect of the disclosure, a method for decoding a bitstream by an electronic device is provided. The method comprises the following steps: receiving an image frame of the bitstream and determining a block unit from the received image frame; determining an intra prediction mode index of the block unit based on the bitstream, the intra prediction mode index corresponding to one of a plurality of wide angle candidate modes, each wide angle candidate mode having an angle parameter; determining a plurality of reference samples adjacent to the block unit; determining whether the determined intra-prediction mode index is equal to at least one index of a plurality of predefined indices, each predefined index corresponding to one of a plurality of predefined wide angle modes in the plurality of wide angle candidate modes; generating, by an interpolation filter, a plurality of filtered samples based on the determined plurality of reference samples when the determined intra prediction mode index is not equal to at least one index of the plurality of predefined indices; and reconstructing the determined block unit in a mode direction of the determined intra prediction mode index based on the generated plurality of filtered samples. In the method, the angle parameters of the plurality of predefined wide angle modes may be evenly divisible by predefined values.

In a second aspect of the disclosure, a method for decoding a bitstream by an electronic device is provided. The method comprises the following steps: receiving an image frame of the bitstream and determining a block unit from the received image frame; determining an intra prediction mode index of the determined block unit based on the bitstream; determining a plurality of reference samples adjacent to the determined block unit; comparing the determined intra-prediction mode index to a plurality of predefined indices, each predefined index corresponding to an angle parameter that is divisible by a predefined value; generating a plurality of filtered samples by one of a plurality of sampling filters selected based on the comparison, the plurality of filtered samples determined based on the determined plurality of reference samples; and reconstructing the determined block unit based on the generated plurality of filtered samples and the determined intra prediction mode index.

Drawings

Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. The various features are not drawn to scale and the dimensions of the various features may be arbitrarily increased or decreased for clarity of discussion.

Fig. 1 illustrates a block diagram of an example system configured to encode and decode video data according to an example embodiment of the present disclosure.

Fig. 2 illustrates a block diagram of an example decoder module of the target device of fig. 1 according to an example embodiment of the present disclosure.

Fig. 3 illustrates a flowchart of an example reconstruction method for reconstructing a block unit according to an example embodiment of the present disclosure.

Fig. 4 illustrates a plurality of intra candidate modes according to an exemplary embodiment of the present disclosure.

Fig. 5 illustrates a plurality of component blocks, a plurality of reference blocks, and a plurality of wide angle candidate modes in a block unit according to an exemplary embodiment of the present disclosure.

Fig. 6 illustrates a flowchart of another example reconstruction method for reconstructing a block unit according to an exemplary embodiment of the present disclosure.

Fig. 7 illustrates a relationship between a plurality of intra candidate modes and a plurality of angle parameters based on a fractional sampling precision parameter according to an exemplary embodiment of the present disclosure.

Fig. 8 illustrates a block diagram of an example encoder module of the source device of fig. 1 according to an example embodiment of the present disclosure.

Fig. 9 illustrates a flowchart of an example prediction method for predicting a block unit according to an example embodiment of the present disclosure.

Detailed Description

The following description contains specific information pertaining to the exemplary embodiments of the present disclosure. The drawings in the present disclosure and their accompanying detailed description are directed to merely exemplary embodiments. However, the present disclosure is not limited to such exemplary embodiments. Other variations and embodiments of the present disclosure will occur to those skilled in the art.

Unless otherwise indicated, identical or corresponding elements in the drawings may be denoted by identical or corresponding reference numerals. The drawings and illustrations in this disclosure are generally not drawn to scale and are not intended to correspond to actual relative dimensions.

For purposes of consistency and ease of understanding, identical features are labeled by reference numerals in the exemplary drawings (although not labeled in some instances). However, features in different embodiments may differ in other respects and should not be narrowly limited to the features shown in the drawings.

Statements using the phrase "one embodiment" or "some embodiments" may be viewed as one or more of the same or different embodiments. The term "coupled" is defined as directly or indirectly connected through intervening elements, and is not necessarily limited to physical connections. The term "comprising" means "including, but not necessarily limited to," and specifically means the open inclusion or membership in a described combination, group, series and equivalent.

For purposes of explanation and not limitation, specific details are set forth such as functional entities, techniques, protocols, and standards in order to provide an understanding of the disclosed technology. In other instances, detailed descriptions of well-known methods, techniques, systems, and architectures are omitted so as not to obscure the description with unnecessary detail.

One of ordinary skill in the art will immediately recognize that any of the disclosed coding function(s) or algorithm(s) described in the present disclosure may be implemented by hardware, software, or a combination of software and hardware. The functions described may correspond to modules, which may be software, hardware, firmware, or any combination thereof.

Software implementations may include computer-executable instructions stored on a computer-readable medium such as a memory or other type of storage device. For example: one or more microprocessors or general purpose computers having communication processing capabilities may be programmed with executable instructions and perform the disclosed function(s) or algorithm(s).

Microprocessors or general purpose computers may be constructed with Application Specific Integrated Circuits (ASICs), programmable logic arrays and/or using one or more Digital Signal Processors (DSPs). Although some of the disclosed embodiments are oriented to software installed and executing on computer hardware, alternative embodiments implemented as firmware or as hardware or as a combination of hardware and software are within the scope of the present disclosure. The computer-readable medium may include, but is not limited to, Random Access Memory (RAM), Read Only Memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, compact disc read-only memory (CDROM), magnetic cassettes, magnetic tape, magnetic disk storage devices, or any other equivalent medium capable of storing computer-readable instructions.

Fig. 1 illustrates a block diagram of a system 100 configured to encode and decode video data according to an example embodiment of the present disclosure. System 100 includes a source device 110, a target device 120, and a communication medium 130. Source device 110 may include any device configured to encode video data and transmit the encoded video data to communication medium 130. Target device 120 may include any device configured to receive encoded video data via communication medium 130 and decode the encoded video data.

In at least one implementation, source device 110 may be in wired and/or wireless communication with target device 120 via communication medium 130. Source device 110 may include a source module 112, an encoder module 114, and a first interface 116. Target device 120 may include a display module 122, a decoder module 124, and a second interface 126. Source device 110 may be a video encoder and target device 120 may be a video decoder.

In at least one embodiment, the source device 110 and/or the target device 120 may be a mobile phone, a tablet computer, a desktop computer, a notebook computer, or other electronic device. Fig. 1 shows only one example of the source device 110 and the target device 120. In other embodiments, source device 110 and target device 120 may include more or fewer elements than shown or have a different configuration of various elements.

In at least one implementation, source module 112 may include a video capture device to capture new video, a video archive to store previously captured video, and/or a video transfer interface to receive video from a video content provider. The source module 112 may generate computer graphics-based data as the source video or generate a combination of live video, archived video, and computer-generated video. The video capture device may be a charge-coupled device (CCD) image sensor, a complementary metal-oxide-semiconductor (CMOS) image sensor, or a camera.

In at least one embodiment, encoder module 114 and decoder module 124 may each be implemented as any of a variety of suitable encoder/decoder circuits, such as one or more microprocessors, Central Processing Units (CPUs), Graphics Processing Units (GPUs), system on chips (SoCs), Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), discrete logic, software, hardware, firmware, or any combinations thereof. When implemented in part in software, the apparatus may store instructions of the software in a suitable non-transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the disclosed methods. In at least one embodiment, each of the encoder module 114 and the decoder module 124 may be included in one or more encoders or decoders, where either module may be integrated as part of a combined encoder/decoder (CODEC) in the device.

In at least one embodiment, the first interface 116 and the second interface 126 may use customized protocols or conform to existing or de-facto standards including, but not limited to, Ethernet, IEEE 802.11 or IEEE 802.15 series, wireless USB, or telecommunication standards (including, but not limited to, GSM, CDMA2000, TD-SCDMA, WiMAX, 3GPP-LTE, or TD-LTE). In at least one implementation, the first interface 116 and the second interface 126 may each include any device configured to transmit a video bitstream to the communication medium 130 and/or store a compatible video bitstream therein and receive a compatible video bitstream from the communication medium 130.

In at least one embodiment, the first interface 116 and the second interface 126 may comprise computer system interfaces that enable compatible video bitstreams to be stored on or received from a storage device. For example, first interface 116 and second interface 126 may include a chipset that supports the Peripheral Component Interconnect (PCI) and Peripheral Component Interconnect Express (PCIe) Bus protocols, proprietary Bus protocols, Universal Serial Bus (USB) protocols, I2C, or any other logical and physical structures that may be used to Interconnect peer devices.

In at least one embodiment, the display module 122 may include a display using Liquid Crystal Display (LCD) technology, plasma display technology, Organic Light Emitting Diode (OLED) display technology, or light emitting polymer display (LPD) technology, among other display technologies used in other embodiments. The display module 122 may include a high definition display or an ultra high definition display.

Fig. 2 shows a block diagram of a decoder module 1240 representing an implementation of the decoder module 124 of the target device 120 in fig. 1, according to an example embodiment of the present application. The decoder module 1240 includes an entropy decoder (e.g., entropy decoding unit 2222), a prediction processor (e.g., prediction processing unit 22222), an inverse quantization/inverse transform processor (e.g., inverse quantization/inverse transform unit 2224), an adder (e.g., first adder 2226), a filter (e.g., filtering unit 2229), and a decoded picture buffer (e.g., decoded picture buffer 2228). The prediction processing unit 22222 further includes an intra prediction processor (intra prediction unit 22226) and an inter prediction processor (inter prediction unit 22224). The decoder module 1240 receives and decodes the bitstream to output decoded video.

The entropy decoding unit 2222 may receive a bitstream including a plurality of syntax elements from the second interface 126 in fig. 1 and perform a parsing operation on the bitstream to extract the syntax elements from the bitstream. As part of the parsing operation, the entropy decoding unit 2222 may entropy decode the bitstream to generate quantized transform coefficients, quantization parameters, transform data, motion vectors, intra modes, partition information, and other syntax information.

In at least one embodiment, the entropy decoding unit 2222 may perform Context Adaptive Variable Length Coding (CAVLC), Context Adaptive Binary Arithmetic Coding (CABAC), syntax-based context adaptive binary arithmetic coding (SBAC), probability interval entropy (PIPE) coding, or other entropy coding techniques to generate the quantized transform coefficients. In at least one embodiment, the entropy decoding unit 2222 may provide the quantized transform coefficients, quantization parameters, and transform data to the inverse quantization/inverse transform unit 2224, and provide motion vectors, intra modes, partition information, and other syntax information to the prediction processing unit 22222.

In at least one implementation, the prediction processing unit 22222 may receive syntax elements, such as motion vectors, intra modes, partition information, and other syntax information, from the entropy decoding unit 2222. The prediction processing unit 22222 may receive a syntax element including partition information and divide the image frame according to the partition information.

In at least one embodiment, each image frame may be divided into at least one image block according to partition information. The at least one image block may include a luma block for reconstructing a plurality of luma samples and at least one chroma block for reconstructing a plurality of chroma samples. The luma block and the at least one chroma block may be further divided to generate a macroblock, a Coding Tree Unit (CTU), a Coding Block (CB), a subdivision thereof, and/or another equivalent coding unit.

In at least one embodiment, in the decoding process, the prediction processing unit 22222 receives prediction data including an intra mode or a motion vector of a current image block of a specific one of the image frames. The current image block may be one of a luminance block and at least one chrominance block in a particular image frame.

In at least one embodiment, the intra prediction unit 22226 may perform intra prediction encoding of the current block unit with respect to one or more neighboring blocks in the same frame as the current block unit based on syntax elements related to an intra mode in order to generate the prediction block. The intra mode may specify the position of a reference sample selected from neighboring blocks within the current frame. In at least one embodiment, when the prediction processing unit 22222 reconstructs the luma component, the intra prediction unit 22226 may reconstruct a plurality of chroma components of the current block unit based on a plurality of luma components of the current block unit.

In at least one embodiment, the intra prediction unit 22221 may reconstruct a plurality of chrominance components of the current block unit based on a plurality of luminance components of the current block unit, when the luminance component of the current block is reconstructed by the prediction processing unit 2222.

In at least one embodiment, the interprediction unit 22224 may perform interprediction encoding of the current block unit with respect to one or more blocks of the one or more reference image blocks based on syntax elements related to a motion vector in order to generate the prediction block. In at least one implementation, a motion vector may indicate a displacement of a current block unit within a current picture block relative to a reference block unit within a reference picture block. The reference block unit is a block determined to closely match the current block unit. In at least one implementation, the inter prediction unit 22224 receives reference tiles stored in the decoded picture buffer 2228 and reconstructs the current block unit based on the received reference tiles.

In at least one embodiment, the inverse quantization/inverse transform unit 2224 may apply inverse quantization and inverse transform to reconstruct the residual block in the pixel domain. The inverse quantization/inverse transform unit 2224 may apply inverse quantization to the residual quantized transform coefficients to generate residual transform coefficients, and then apply inverse transform to the residual transform coefficients to generate a residual block in the pixel domain. In at least one embodiment, the inverse transform may be applied inversely by the following transform process: such as Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Adaptive Multiple Transform (AMT), mode-dependent non-separable secondary transform (MDNSST), hypercube-Givens transform (HyGT), signal dependent transform, Kahenn-Lovie transform (KLT), wavelet transform, integer transform, subband transform, or conceptually similar transform.

In at least one embodiment, an inverse transform may convert residual information from a transform domain (e.g., frequency domain) back to the pixel domain. In at least one embodiment, the degree of inverse quantization may be modified by adjusting a quantization parameter. The first adder 2226 adds the residual block to the prediction block from the prediction processing unit 22222 to generate a reconstructed block.

In at least one embodiment, the first adder 2224 adds the reconstructed residual block to the prediction block provided from the prediction processing unit 2222 to generate a reconstructed block.

In at least one embodiment, the filtering unit 2229 may include a deblocking filter, a Sample Adaptive Offset (SAO) filter, a bilateral filter, and/or an Adaptive Loop Filter (ALF) for removing blocking artifacts from the reconstructed block. In addition to deblocking filters, SAO filters, bilateral filters, and ALF, additional filters (in-loop or in-post-loop) may be used.

For simplicity, such a filter is not shown, but may filter the output of the first adder 2226. After the filtering unit 2229 performs a filtering process on the reconstructed blocks of a specific image frame, the filtering unit 2229 may output the decoded video to the display module 122 or other video receiving unit.

In at least one embodiment, the decoded picture buffer 2228 can be a reference picture memory that stores reference blocks (in inter-coding mode) for use by the prediction processing unit 22222 to decode the bitstream. The decoded picture buffer 2228 may be formed from any of a variety of storage devices, such as Dynamic Random Access Memory (DRAM), including Synchronous DRAM (SDRAM), Magnetoresistive RAM (MRAM), Resistive RAM (RRAM), or other types of storage devices. In at least one embodiment, decoded picture buffer 2228 may be located on-chip with other elements of decoder module 1240 or off-chip with respect to those elements.

Fig. 3 illustrates a flowchart of an example reconstruction method 300 for reconstructing a block unit by selecting a sampling filter based on an intra prediction mode of the block unit according to an example embodiment of the present disclosure. The method 300 is merely an example, as there are a variety of ways to perform the method.

The method 300 may be performed using the configurations shown in fig. 1 and 2, and various elements of these figures are referenced in explaining the method 300. Each block shown in fig. 3 may represent one or more executed processes, methods, or subroutines.

Further, the order of the blocks is merely illustrative and may be changed. Additional blocks may be added or fewer blocks may be used without departing from this disclosure.

At block 310, the decoder module 1240 receives an image frame of video data and determines block units from the image frame based on the video data. The video data may be a bitstream.

Referring to fig. 1 and 2, the target device 120 may receive a bitstream from an encoder, such as the source device 110, via the second interface 126. The second interface 126 may provide the bitstream to the decoder module 1240.

The decoder module 1240 may determine an image frame based on the bitstream and divide the image frame according to a plurality of partition indications in the bitstream to determine block units. For example, the decoder module 1240 may divide the image frame to generate a plurality of coding tree units and may further divide one of the coding tree units based on the partition indication (e.g., based on a video coding standard) to determine the block unit.

In at least one embodiment, the entropy decoding unit 2222 may decode the bitstream to determine a plurality of prediction indications for the block unit, and the decoder module 1240 may reconstruct the block unit further based on the prediction indications. The prediction indication may include a plurality of flags and a plurality of indices.

At block 320, the decoder module 1240 determines an intra prediction mode index corresponding to one of the plurality of wide angle candidate modes for the block unit based on the video data and determines a plurality of reference samples adjacent to the block unit. Each of the plurality of wide angle candidate modes has an angle parameter.

In at least one embodiment, referring to fig. 2, when a block unit is predicted in an intra prediction process, the decoder module 1240 may select an intra prediction mode from a plurality of intra candidate modes on the intra mode list based on the intra prediction mode index.

In at least one embodiment, the intra prediction mode index may be included in a prediction indication of the block unit. The intra prediction mode index may be obtained based on a block prediction index included in the prediction indication of the block unit.

In at least one embodiment, each intra candidate mode has an intra mode index, each intra mode index indicating a corresponding one of the intra candidate modes. The intra candidate mode includes a wide angle candidate mode, and the intra mode index of the wide angle candidate mode may be a plurality of wide angle mode indexes. When the intra prediction mode index is obtained based on a block prediction index different from the intra prediction mode index, the intra prediction mode index may be equal to one of the wide-angle mode indexes.

The intra candidate modes may include a plurality of non-angle candidate modes and a plurality of angle candidate modes. The non-angle candidate modes may be a planar mode and a DC mode. The intra mode index of the planar mode may be zero and the intra mode index of the DC mode may be equal to one.

In at least one embodiment, each wide angle candidate mode may be included in the angle candidate modes. Other angle candidate modes other than the wide angle candidate mode may be a plurality of angle default candidate modes. When the decoder module 1240 decodes a bitstream based on a video coding standard such as video coding (VVC), the intra mode index of the angle candidate mode may include-14 to-1 and 2 to 80.

Fig. 4 is a schematic diagram of a plurality of intra candidate modes according to an embodiment of the present disclosure. The intra mode index of the angle default candidate mode may include 2 to 66, and the wide mode index of the wide candidate mode may include-14 to-1 and 67 to 80.

In at least one embodiment, each angle candidate pattern has an angle parameter IntraPredAngle. The angle parameters of the intra candidate mode may be predefined to encode and decode video data. Table 1 shows an embodiment in which indexes are assigned to angle candidate patterns each having an angle parameter. Each angle candidate mode may correspond to one of the angle default candidate modes 2 to 66 and the wide angle candidate modes-14 to-1 and 67 to 80 in table 1.

TABLE 1

In at least one embodiment, referring to fig. 2, the decoder module 1240 may determine a plurality of neighboring blocks that neighbor the block unit. In at least one embodiment, some of the neighboring blocks may be reconstructed prior to reconstructing the block unit, such that each reconstructed neighboring block may include a plurality of reference blocks of the block unit used to reconstruct the block unit.

In at least one embodiment, the block unit may be reconstructed before some of the neighboring blocks are reconstructed, such that the non-reconstructed neighboring blocks may not include a reference block of the block unit used to reconstruct the block unit. Each reference block included in the reconstructed neighboring blocks may include a reference component. The reference components included in the reference block may be selected as reference samples for reconstructing the block unit.

Fig. 5 illustrates a plurality of component blocks, a plurality of reference blocks, and a plurality of wide-angle candidate modes in a block unit according to the present disclosure. The block unit 510 may include component blocks (component blocks 511-516) and the reconstructed neighboring blocks (not shown) may include reference blocks 520, which include reference blocks 521-526.

Fig. 5 shows an example of the reference block 521-526. Other embodiments may include more or fewer reference blocks than shown or have different configurations of various reference blocks. The dummy horizontal lines 561-.

In at least one embodiment, each reference block 520 may include a reference component, and the reference component in the reference block 520 may be selected as a reference sample. The reference components of reference block 520 may be determined by reconstructing the neighboring blocks to represent pixel components in the neighboring blocks. For example, when the decoder module 1240 reconstructs a plurality of luminance components in the block unit 510, each reference block 520 may include only one reference luminance component.

The reference sample selected from the reference component may be located at a plurality of block centers of the reference block. The block center may be a plurality of full sampling positions, such as full sampling position 5211-. Other positions in the reference block may be determined as a plurality of fractional sample positions (fractional sample positions 5212-5232) based on a plurality of fractional sample intersection points between the mode directions (531-533 and 541-543) of the intra prediction mode and the virtual horizontal line 563. Each fractional sample position may be located between two adjacent reference samples, such as the fractional sample position 5232 between two adjacent reference samples located at the two full sample positions 5221 and 5231.

At block 330, the decoder module 1240 may determine whether the intra prediction mode points to a fully sampled position of the reference sample. In at least one implementation, the method 300 may proceed to block 340 when the intra-prediction mode points to a fractional sample position adjacent to the reference sample. The method may proceed to block 350 when the intra prediction mode points to a fully sampled position of the reference sample.

In at least one embodiment, referring to fig. 2 and 5, when the intra prediction mode is one of the angle candidate modes, the decoder module 1240 may determine whether the intra prediction mode points to a full sampling position of the reference sample in the reference block 520. Each component block 511-516 may be determined for predicting pixel components in a block unit. For example, when the decoder module 1240 predicts the luminance components in the block unit, each of the component blocks 511 and 516 may include only one luminance component.

The prediction component may be located at a plurality of block centers of the component block. The block center may be a plurality of full sample positions, such as full sample position 5111-.

In at least one embodiment, the intra prediction mode may be a specific one of wide-angle candidate modes determined based on an intra prediction mode index. For example, the particular wide angle candidate mode may indicate a first wide angle direction comprising a plurality of first component directions 531-533 pointing from the full sample position 5111-5131 of the component block 511-513 to the reference block 520.

The first sampling intersections between the virtual horizontal line 563 and the first component directions 531-533 are the fractional sampling positions 5212-5232 of the reference blocks 521-523, which are different from the full sampling positions 5211-5231 of the reference blocks 521-523. Accordingly, when the specific wide angle candidate mode indicates the first wide angle direction, the decoder module 1240 may determine that the intra prediction mode points to the fractional sample position of the reference block. The particular wide angle candidate mode may indicate a second wide angle direction comprising a plurality of second component directions 541- > 543 pointing from the full sample position 5141- > 5161 of the component block 514- > 516 to the reference block 520.

The second sampling intersections between the virtual horizontal line 563 and the second component directions 541- > 543 are the full sampling positions 5241- > 5261 of the reference blocks 524- > 526. When the specific wide angle candidate mode indicates the second wide angle direction, the decoder module 1240 may determine that the intra prediction mode points to a full sampling position of the reference sample in the reference block.

In at least one embodiment, referring to fig. 1, intra candidate modes may be predefined in source device 110 and target device 120. Accordingly, the angle candidate pattern pointing to the full sampling position of the reference sample may be predetermined in the source device 110 and the target device 120.

The angle candidate pattern pointing to the full sampling position of the reference sample may be predetermined as a plurality of predefined angle patterns. The wide-angle candidate pattern pointing to the full sampling position of the reference sample may be predetermined as a plurality of predefined wide-angle patterns. The wide-angle mode index of the predefined wide-angle mode may be predetermined as a plurality of predefined indexes.

In at least one embodiment, the decoder module 1240 may directly compare the intra-prediction mode index to a predefined index to determine whether the intra-prediction mode points to a fully sampled position of a reference sample. When the intra prediction mode index is equal to one of the predefined indices, the decoder module 1240 may directly determine that the intra prediction mode points to the full sampling position of the reference sample. When the intra prediction mode index is different from the predefined index, the decoder module 1240 may directly determine the fractional sample position of the intra prediction mode with respect to the reference block.

In at least one embodiment, the predefined indexed angle parameter may be evenly divided by a predefined value. The predefined value may be equal to a fractional sampling precision parameter of the interpolation filter. When the angular parameter of the intra prediction mode index may be evenly divided by the fractional sampling precision parameter of the interpolation filter, the reference samples of the component block may not be located at the fractional sampling positions.

The fractional sample precision parameter of the interpolation filter in VVC may be predefined at block 320 of fig. 3 such that the predefined value is 32. Thus, according to Table 1, the predefined index may include-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, and 80.

At block 340, the decoder module may filter the reference samples with an interpolation filter.

In at least one embodiment, referring to fig. 2 and 5, the decoder module 1240 may filter the reference samples in block 340 of fig. 3 using an interpolation filter to generate a plurality of filtered reference samples. When the intra-prediction mode points from the block unit 510 to a fractional sample position of the reference block, there may be no reference sample at a number of sample intersections between the virtual horizontal line 563 and the component direction of the intra-prediction mode. Thus, decoder module 1240 may select some of the reference samples adjacent to the sample intersection and generate the filtered reference samples by interpolation based on the selected reference samples.

The component direction 533 may point from the component block 513 to the fractional sample position 5232 of the reference block 523. Accordingly, decoder module 1240 may select reference samples in reference blocks 522, 523 and/or other neighboring reference blocks to generate filtered reference samples by interpolation based on the reference samples selected for component block 513. The interpolation filter may include at least one of a four-tap Gaussian filter (fG) and a four-tap DCT filter (fC).

At block 350, the decoder module may filter the reference samples with a reference filter.

In at least one implementation, referring to fig. 2 and 5, decoder module 1240 may filter the reference samples in block 350 of fig. 3 using a reference filter to generate filtered reference samples. When the reference sample is filtered by the reference filter to generate a filtered sample, the filtered sample bypasses the interpolation filter. When the intra prediction mode points from the block unit 510 to the full sampling position of the reference sample, a plurality of sample intersection points between the virtual horizontal line 563 and the component direction of the intra prediction mode may be located at the full sampling position. Thus, the decoder module 1240 may directly select the reference sample to generate the filtered reference sample without interpolation.

The component direction 542 may point from the component block 515 to the fully sampled position 5251 of the reference block 525. Thus, the decoder module 1240 may select reference samples for the component block 515 in the reference block 525.

The selected reference block may be filtered by a reference filter. In this embodiment, the reference filter may be a [ 121 ] three-tap smoothing filter that is applied to the reference samples of the selected reference block and other reference blocks adjacent to the selected reference block. The filtered reference samples p [ x ] [ y ] (where x ═ 1, y ═ 1.. refH-1 and x ═ 0.. refW-1, y ═ 1) may be obtained by the reference filter based on the unfiltered reference samples refUnfilt [ x ] [ y ] as follows:

refH is the reference sample height and refW is the reference sample width.

p[-1][-1]=refUnfilt[-1][0]+2*refUnfilt[-1][-1]+refUnfilt[0][-1]+2)>>2

p[-1][refH–1]=refUnfilt[-1][refH–1]

p[refW–1][-1]=refUnfilt[refW–1][-1]

p[-1][y]=(refUnfilt[-1][y+1]+2*refUnfilt[-1][y]+refUnfilt[-1][y-1]+2)>>2

refH-2 for y ═ 0

p[x][-1]=(refUnfilt[x-1][-1]+2*refUnfilt[x][-1]+refUnfilt[x+1][-1]+2)>>2

refW-2 for x ═ 0

At block 360, the decoder module 1240 may reconstruct the block unit along the mode direction of the intra prediction mode from the filtered reference samples. Referring to fig. 1 and 2, the inter prediction unit 22224 may generate a prediction component for one of the component blocks in the block unit according to the filtered reference sample in the mode direction of the intra prediction mode.

In at least one embodiment, the first adder 2226 in the target device 120 may add the prediction component to a plurality of residual components determined from the bitstream to reconstruct the block unit. The decoder module 1240 may reconstruct all other block units in the image frame to reconstruct the image frame and the video.

Fig. 6 illustrates a flow diagram of another method 600 of reconstructing a block unit by selecting a sampling filter based on an intra prediction mode index of the block unit according to the present disclosure. The method 600 is provided as an example only and there are a variety of ways to perform the method.

Method 600 may be performed using the configurations shown in fig. 1 and 2, and various elements are referenced in describing method 600. Each block shown in method 600 may represent one or more processes, methods, or subroutines performed. The order of the blocks is merely illustrative and may be changed. Additional blocks may be added or fewer blocks may be used without departing from this disclosure.

At block 610, the decoder module 1240 may receive an image frame of video data and determine a block unit from the image frame. The video data may be a bitstream.

Referring to fig. 1 and 2, the target device 120 may receive a bitstream from an encoder, such as the source device 110, via the second interface 126. The second interface 126 may provide the bitstream to the decoder module 1240.

The decoder module 1240 may determine an image frame based on the bitstream and divide the image frame according to a plurality of partition indications in the bitstream to determine block units. The decoder module 1240 may divide the image frame to generate a plurality of coding tree units and further divide one of the coding tree units based on the partition indication (based on the video coding standard) to determine the block unit.

In at least one embodiment, the entropy decoding unit 2222 may decode the bitstream to determine a plurality of prediction indications for the block unit, and the decoder module 1240 may reconstruct the block unit further based on the prediction indications. The prediction indication may include a plurality of flags and a plurality of indices.

At block 620, the decoder module 1240 may determine an intra prediction mode index for the block unit based on the bitstream and determine a plurality of reference samples adjacent to the block unit. Referring to fig. 2, when a block unit is predicted in intra prediction, the decoder module 1240 may select an intra prediction mode from a plurality of intra candidate modes of the intra mode list based on the intra prediction mode index.

In at least one embodiment, the intra prediction mode index may be included in a prediction indication of the block unit. The intra prediction mode index may be obtained based on a block prediction index included in the prediction indication of the block unit.

In at least one embodiment, each intra candidate mode has an intra mode index, each intra mode index indicating a corresponding one of the intra candidate modes. The intra candidate mode includes a wide angle candidate mode, and the intra mode index of the wide angle candidate mode may be a plurality of wide angle mode indexes. When the intra prediction mode index is obtained based on a block prediction index different from the intra prediction mode index, the intra prediction mode index may be equal to one of the wide-angle mode indexes.

In at least one embodiment, the intra candidate modes may include a plurality of non-angle candidate modes and a plurality of angle candidate modes. The non-angle candidate modes may be a planar mode and a DC mode.

In this embodiment, the intra mode index of the planar mode may be equal to zero and the intra mode index of the DC mode may be equal to one. Each of the wide angle candidate patterns may be included in the angle candidate patterns, and the other angle candidate patterns different from the wide angle candidate pattern may be a plurality of angle default candidate patterns. When the decoder module 1240 decodes the bitstream based on a video coding standard such as VVC, the intra mode index of the angle candidate mode may include-14 to-1 and 2 to 80.

In at least one embodiment, each angle candidate pattern has an angle parameter IntraPredAngle. The angle parameters of the intra candidate mode may be predefined to encode and decode video data.

In at least one embodiment, referring to fig. 2, the decoder module 1240 may determine a plurality of blocks adjacent to a block unit. Each of the neighboring blocks reconstructed prior to reconstructing the block unit may include a plurality of reference blocks of the block unit for reconstructing the block unit.

In at least one embodiment, each reference block included in the reconstructed neighboring blocks may include a reference component. The reference components included in the reference block may be selected as reference samples for reconstructing the block unit.

In at least one embodiment, referring to fig. 5, the block unit 510 may include the component blocks 511 and 516, and the reconstructed neighboring blocks may include the reference block 520 having the reference blocks 521 and 526. The dummy horizontal lines 561-.

In at least one embodiment, each reference block 520 may include a reference component, and the reference component may be selected as a reference sample. The reference sample may be located at a plurality of block centers of the component blocks. For example, when the decoder module 1240 reconstructs a plurality of luminance components in the block unit 510, each reference block 520 may include only one reference luminance component.

In at least one embodiment, the block center may include a plurality of full sample positions 5211-. Other positions in the reference block 521-.

In at least one embodiment, each fractional sample position may be located between two adjacent reference samples. For example, the fractional sample position 5232 is located between two adjacent reference samples, which are located at two full sample positions 5221 and 5231.

At block 630, the decoder module 1240 may compare the intra-prediction mode index to a plurality of predefined indices, each predefined index corresponding to an angle parameter that is divisible by a predefined value. Referring to fig. 1, an intra candidate mode and an intra mode index may be predefined in a source device 110 and a target device 120.

Some intra mode indexes may be set as predefined indexes for comparison with the intra prediction mode indexes. Thus, the predefined index may be predefined in the source device 110 and the target device 120.

In at least one embodiment, referring to fig. 2, the decoder module 1240 may compare the intra prediction mode index with a predefined index to determine whether the intra prediction mode index is different from the predefined index. The angle parameter of the predefined index may be evenly divided by a predefined value.

The predefined value may be equal to a fractional sampling precision parameter of the interpolation filter. In VVC, the fractional sampling precision parameter of the interpolation filter may be predefined as 32, so that the predefined value may be equal to 32. Thus, according to Table 1, the angle parameters of the predefined index may include 32, 64, 128, 256, and 512, and the predefined index may include-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, and 80.

In at least one embodiment, because the predefined value is equal to the fractional sampling precision parameter, the angle parameter of the predefined index may be evenly divided by the fractional sampling precision parameter. Fig. 7 illustrates a relationship between a plurality of intra candidate modes and a plurality of angle parameters based on a fractional sampling precision parameter according to the present disclosure.

In at least one embodiment, the plurality of sample positions of the plurality of reference blocks 720 adjacent to the block unit 710 may be divided based on a fractional sample precision parameter. The position number of each sample position pointed to by a corresponding intra candidate mode may be set as the angle parameter of the corresponding intra candidate mode.

When the fractional sampling precision parameter is equal to 32, the angle parameter of the vertical candidate pattern may be equal to 0 and the angle parameter of the diagonal pattern from the lower left corner to the upper right corner may be equal to 32. In at least one embodiment, when the angle parameter of a particular intra candidate mode is equal to 0 or equal to a positive or negative value of the fractional sampling precision parameter, the sampling position pointed to by the particular intra candidate mode is the full sampling position of the reference block 720.

When the angle parameter of a particular intra candidate mode is not zero or positive and negative values of the fractional sampling precision parameter, the sampling position pointed to by the particular intra candidate mode is the fractional sampling position of the reference block 720. When the angle parameter of the intra candidate mode selected from the wide angle candidate mode can be evenly divided by the fractional sampling precision parameter, the sampling position pointed to by the intra prediction mode is the full sampling position of the reference block 720. In other words, when the angle parameter of the intra candidate mode selected from the wide-angle candidate mode cannot be evenly divided by the fractional sampling precision parameter, the sampling position to which the intra prediction mode is directed is the fractional sampling position of the reference block 720.

At block 640, the decoder module 1240 may generate a plurality of filtered samples based on the reference samples by one of a plurality of sampling filters selected based on the comparison results. The sampling filter may include an interpolation filter and a reference filter.

In at least one embodiment, referring to fig. 2, when the decoder module 1240 determines that each predefined index is different from the intra prediction mode index, an interpolation filter may be selected to filter the reference samples and generate filtered samples. When each predefined index is different from the intra prediction mode index, the sample position pointed to by the intra prediction mode is a fractional sample position. Thus, when the sample position pointed to by the intra prediction mode is a fractional sample position, the interpolation filter may be selected to filter the reference sample to generate a filtered sample.

When the decoder module 1240 determines that the intra prediction mode index is equal to one of the predefined indices, a reference filter may be selected to filter the reference samples and generate filtered samples. When the intra prediction mode index is equal to one of the predefined indexes, the sample position pointed to by the intra prediction mode is a full sample position. Therefore, when the sampling position pointed to by the intra prediction mode is the full sampling position, the reference filter can be selected to filter the reference sample and generate the filtered sample. When the reference sample is filtered by the reference filter to generate a filtered sample, the filtered sample bypasses the interpolation filter.

In at least one implementation, referring to fig. 2 and 5, when the intra prediction mode points from the block unit 510 to a fractional sampling position of the reference block, there may be no reference sample at a plurality of sample intersections between the virtual horizontal line 563 and the component directions of the intra prediction mode. Accordingly, decoder module 1240 may select some of the reference samples adjacent to the sample intersection and generate the filtered reference sample based on the selected reference samples according to interpolation.

The component direction 533 may point from the component block 513 to the fractional sample position 5232 of the reference block 523. Accordingly, decoder module 1240 may select reference samples in reference blocks 522, 523 and/or other neighboring reference blocks to generate filtered reference samples by interpolation based on the reference samples selected for component block 513. The interpolation filter may include at least one of a four-tap gaussian filter (fG) and a four-tap DCT filter (fC).

In at least one embodiment, when the intra prediction mode points from the block unit 510 to the full sampling position of the reference sample, a plurality of sample intersection points between the virtual horizontal line 563 and the component direction of the intra prediction mode may be located at the full sampling position. Thus, the decoder module 1240 may directly select the reference sample to generate the filtered reference sample without interpolation.

The component direction 542 may point from the component block 515 to the fully sampled position 5251 of the reference block 525. Thus, the decoder module 1240 may select reference samples for the component block 515 in the reference block 525. The selected reference block may be filtered by a reference filter. The reference filter may be a [ 121 ] three-tap smoothing filter that is applied to reference samples of the selected reference block and other reference blocks adjacent to the selected reference block.

At block 650, the decoder module 1240 may reconstruct the block unit along the mode direction of the intra prediction mode from the filtered reference samples. Referring to fig. 1 and 2, the inter prediction unit 22224 may generate prediction components for a component block in a block unit from filtered samples along a mode direction of an intra prediction mode. For example, when the decoder module 1240 reconstructs a plurality of luminance components in the block unit 510, each prediction component may be a prediction luminance component included in one component block.

The first adder 2226 in the target device 120 may add the prediction component to a plurality of residual components determined from the bitstream to reconstruct a block unit. The decoder module 1240 may reconstruct all other block units in the image frame to reconstruct the image frame and the video.

Fig. 8 illustrates an encoder module 1140 as an embodiment of the encoder module 114 in fig. 1. The encoder module 1140 may include a prediction processor (e.g., prediction processing unit 1141), at least a first adder (e.g., first adder 1142) and a second adder (e.g., second adder 1145), a quantization/inverse transform processor (e.g., transform/quantization unit 1143), an inverse quantization/inverse transform processor (e.g., inverse quantization/inverse transform unit 1144), a filter (e.g., filtering unit 1146), a decoded picture buffer (e.g., decoded picture buffer 1147), and an entropy encoder (e.g., entropy encoding unit 1148). The prediction processing unit 1141 of the encoder module 1140 may further include a partition processor (e.g., partition unit 11411), an intra prediction processor (e.g., intra prediction unit 11412), and an inter prediction processor (e.g., inter prediction unit 11413). The encoder module 1140 may receive the source video and encode the source video to output a bitstream.

The encoder module 1140 may receive a source video comprising a plurality of image frames and then divide the image frames according to an encoding structure. Each image frame may be divided into at least one image block.

The at least one image block may include a luma block having a plurality of luma samples and at least one chroma block having a plurality of chroma samples. The luma block and the at least one chroma block may be further divided to generate a macroblock, a Coding Tree Unit (CTU), a Coding Block (CB), a subdivision thereof, and/or another equivalent coding unit.

In at least one implementation, the encoder module 1140 may perform additional subdivisions of the source video. It should be noted that these embodiments are generally applicable to video encoding, regardless of how the source video is partitioned prior to and/or during encoding.

In at least one embodiment, the prediction processing unit 1141 may receive a current image block of a specific image frame during encoding. The current image block may be one of a luminance block and at least one chrominance block in a particular image frame.

The partition unit 11411 may divide the current image block into a plurality of block units. The intra prediction unit 11412 may perform intra prediction encoding of the current block unit with respect to one or more neighboring blocks in the same frame as the current block unit in order to provide spatial prediction. The inter prediction unit 11413 may perform inter prediction encoding of the current block unit with respect to one or more blocks of the one or more reference image blocks to provide temporal prediction.

In at least one embodiment, the prediction processing unit 1141 may select one of the encoding results generated by the intra prediction unit 11412 and the inter prediction unit 11413 based on a mode selection method such as a cost function. The mode selection method may be a rate-distortion optimization (RDO) process.

The prediction processing unit 1141 may determine the selected coding result and provide a prediction block corresponding to the selected coding result to a first adder 1142 to generate a residual block and to a second adder 1145 to reconstruct the coding block unit. The prediction processing unit 1141 may further provide syntax elements such as motion vectors, intra mode indicators, partition information, and other syntax information to the entropy encoding unit 1148.

In at least one embodiment, the intra prediction unit 11412 may intra predict the current block unit. The intra prediction unit 11412 may determine an intra prediction mode pointing to reconstructed samples adjacent to the current block unit in order to encode the current block unit.

In at least one embodiment, the intra prediction unit 11412 may encode the current block unit using various intra prediction modes, and the intra prediction unit or the prediction processing unit 1141 may select an appropriate intra prediction mode from the measured modes. The intra prediction unit 11412 may encode the current block unit using a cross component prediction mode to predict one of two chrominance components of the current block unit based on a luminance component of the current block unit. The intra prediction unit 11412 may predict a first component of the two chroma components of the current block unit based on a second component of the two chroma components of the current block unit.

In at least one embodiment, the inter prediction unit 11413 may inter predict the current block unit instead of the intra prediction performed by the intra prediction unit 11412. The inter prediction unit 11413 may perform motion estimation to estimate motion of the current block unit in order to generate a motion vector.

The motion vector may indicate a displacement of a current block unit within the current image block relative to a reference block unit within the reference image block. The inter prediction unit 11413 may receive at least one reference image block stored in the decoded picture buffer 1147 and estimate motion based on the received reference image block to generate a motion vector.

In at least one embodiment, the first adder 1142 may generate a residual block by subtracting the prediction block determined by the prediction processing unit 1141 from the original current block unit. The first adder 1142 may represent one or more elements that perform the subtraction operation.

In at least one embodiment, the transform/quantization unit 1143 may apply a transform to the residual block to generate residual transform coefficients, and then quantize the residual transform coefficients to further reduce the bit rate. The transform may be one of a DCT, DST, AMT, mdsnst, HyGT, signal dependent transform, KLT, wavelet transform, integer transform, sub-band transform, or conceptually similar transform.

In at least one embodiment, the transform may convert the residual information from a pixel value domain to a transform domain, such as the frequency domain. The degree of quantization may be modified by adjusting the quantization parameter.

In at least one embodiment, the transform/quantization unit 1143 may perform a scan of a matrix including quantized transform coefficients. Alternatively, the entropy encoding unit 1148 may perform scanning.

In at least one embodiment, the entropy encoding unit 1148 may receive a plurality of syntax elements including quantization parameters, transform data, motion vectors, intra modes, partition information, and other syntax information from the prediction processing unit 1141 and the transform/quantization unit 1143. The entropy encoding unit 1148 may encode the syntax elements into the bitstream.

In at least one embodiment, the entropy encoding unit 1148 may entropy encode the quantized transform coefficients by performing CAVLC, CABAC, SBAC, PIPE encoding, or another entropy encoding technique to generate an encoded bitstream. The encoded bitstream may be transmitted to another device (target device 120 in fig. 1) or archived for later transmission or retrieval.

In at least one embodiment, the inverse quantization/inverse transform unit 1144 may apply inverse quantization and inverse transform to reconstruct the residual block in the pixel domain for later use as a reference block. The second adder 1145 may add the reconstructed residual block to the prediction block provided from the prediction processing unit 1141 to generate a reconstructed block for storage in the decoded picture buffer 1147.

In at least one embodiment, the filtering unit 1146 may include a deblocking filter, an SAO filter, a bilateral filter, and/or an ALF for removing blocking artifacts from the reconstructed block. In addition to deblocking filters, SAO filters, bilateral filters, and ALF, additional filters (in-loop or in-post-loop) may be used. Such filters are not shown for simplicity, and may filter the output of the second adder 1145.

In at least one implementation, the decoded picture buffer 1147 may be a reference picture memory that stores reference blocks for use by the encoder module 1140 in encoding video in, for example, an intra or inter coding mode. The decoded picture buffer 1147 may include various storage devices, such as DRAM (including SDRAM, MRAM, RRAM), or other types of storage devices. The decoded picture buffer 1147 may be on-chip with other elements of the encoder module 1140 or off-chip with respect to those elements.

Fig. 9 illustrates a method 900 of predicting a block unit by selecting a sampling filter based on an intra prediction mode index of the block unit according to the present disclosure. Method 900 is merely an example, as there are a variety of ways to perform the method. Method 900 may be performed using the configurations shown in fig. 1 and 8, and various elements are referenced in describing the method.

Each block shown in fig. 9 represents one or more executed processes, methods, or subroutines. The order of the blocks is merely illustrative and may be changed. Additional blocks may be added or fewer blocks may be used without departing from this disclosure.

At block 910, the encoder module may receive an image frame of video data and determine a block unit from the image frame based on the video data. The video data may be video.

In at least one implementation, referring to fig. 1 and 8, source device 110 may receive video via source module 112. The encoder module 1140 may determine image frames from the video and divide the image frames to determine block units.

In at least one embodiment, the prediction processing unit 1141 of the source device 110 may determine a block unit from the video via the partition unit 11411, and the encoder module 1140 may provide a plurality of partition indications into the bitstream based on the partition results of the partition unit 11411.

At block 920, the encoder module may determine an intra prediction mode for the block unit and determine a plurality of reference samples adjacent to the block unit.

In at least one embodiment, referring to fig. 8, the encoder module 1140 may select an intra prediction mode from a plurality of intra candidate modes of the intra mode list. Each intra candidate mode has an intra mode index, each index indicating a corresponding one of the intra candidate modes. The intra candidate mode includes a plurality of wide angle candidate modes, and the intra mode index of the wide angle candidate mode may be a plurality of wide angle mode indexes.

In at least one embodiment, the intra candidate modes may include a plurality of non-angle candidate modes and a plurality of angle candidate modes. The non-angle candidate modes may be a planar mode and a DC mode. The intra mode index of the planar mode may be equal to zero and the intra mode index of the DC mode may be equal to one.

In at least one embodiment, each of the wide angle candidate modes may be included in the angle candidate modes, and the other angle candidate modes different from the wide angle candidate mode may be a plurality of angle default candidate modes. When the encoder module 1140 encodes video based on a video coding standard, such as video coding (VVC), the intra mode index of the angle candidate mode may include-14 to-1 and 2 to 80 in table 1.

Each angle candidate pattern has an angle parameter (IntraPredAngle). The angle parameters of the intra candidate mode may be predefined to encode and decode video data.

In at least one embodiment, the prediction processing unit 1141 may select one of the encoding results based on a mode selection method such as a cost function. The encoding result may be generated by the intra prediction unit 11412 based on the intra candidate mode and generated by the inter prediction unit 11413 according to the plurality of motion vectors. The mode selection method may be a Rate Distortion Optimization (RDO) process.

In at least one embodiment, the decoder module 1240 may further select a filtering method for the reference samples when generating the selected encoding result based on the intra-prediction mode. The intra prediction unit 11412 may also select a filtering method for the reference samples based on the intra candidate mode before the prediction processing unit 1141 compares the encoding results.

In at least one embodiment, referring to fig. 8, the encoder module 1140 may determine a plurality of blocks adjacent to a block unit. Each of the neighboring blocks predicted before the block unit is predicted may include a plurality of reference blocks used for predicting the block unit.

Each reference block included in the prediction neighboring blocks may include a reference component. The reference components included in the reference block may be selected as reference samples for the prediction block unit.

In at least one embodiment, referring to FIG. 5, the block unit 510 may comprise the component blocks 511 and 516, and the predicted neighboring blocks may comprise the reference block 520 with the reference blocks 521 and 526. The dummy horizontal lines 561-.

In at least one embodiment, the reference sample may be located at a plurality of block centers of the reference block. The block center may include a plurality of full sample positions 5211-. Other positions in the reference block 521-526 may be determined as a plurality of fractional sample positions based on a plurality of fractional sample intersection points between the mode direction of the intra prediction mode and the virtual horizontal line 563. Each fractional sample position may be located between two adjacent reference samples.

At block 930, the encoder module may compare the intra-prediction mode to a plurality of predefined modes, each predefined mode corresponding to an angle parameter that is divisible by a predefined value.

In at least one embodiment, referring to fig. 1, intra candidate modes may be predefined in source device 110 and target device 120. Some intra mode indexes may be set to a predefined mode for comparison with the intra prediction mode. Thus, the predefined pattern may be predetermined in the source device 110 and the target device 120.

The encoder module 1140 may compare the intra-prediction mode to a plurality of predefined modes, each predefined mode corresponding to an angle parameter that is divisible by a predefined value. Referring to fig. 8, the decoder module 1140 may compare the intra prediction mode with the predefined mode to determine whether the intra prediction mode is different from the predefined mode. The angle parameter of the predefined pattern may be evenly divided by a predefined value. The predefined value may be equal to a fractional sampling precision parameter of the interpolation filter. In VVC, the fractional sampling precision parameter of the interpolation filter may be predefined as 32, such that the predefined value is equal to 32. Thus, the angle parameters according to the predefined patterns of Table 1 may include 32, 64, 128, 256, and 512, and the plurality of predefined indices corresponding to the predefined patterns may include-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, and 80.

In at least one embodiment, because the predefined value is equal to the fractional sampling precision parameter, the angle parameter of the predefined index may be evenly divided by the fractional sampling precision parameter. Referring to fig. 7, a plurality of sample positions of a plurality of reference blocks 720 adjacent to a block unit 710 may be divided based on a fractional sample precision parameter.

The position number of each sample position pointed to by a corresponding intra candidate mode may be set as the angle parameter of the corresponding intra candidate mode. When the angle parameter of a particular intra candidate mode is equal to 0 or is a positive or negative value of the fractional sampling precision parameter, the sampling position pointed to by the particular intra candidate mode is the full sampling position of the reference block 720.

When the angle parameter of a particular intra candidate mode is not zero or positive and negative values of the fractional sampling precision parameter, the sampling position pointed to by the particular intra candidate mode is the fractional sampling position of the reference block 720. When the angle parameter of the intra candidate mode selected from the wide angle candidate mode can be evenly divided by the fractional sampling precision parameter, the sampling position pointed to by the intra prediction mode is the full sampling position of the reference block 720. In other words, when the angle parameter of the intra candidate mode selected from the wide-angle candidate mode cannot be evenly divided by the fractional sampling precision parameter, the sampling position to which the intra prediction mode is directed is the fractional sampling position of the reference block 720.

At block 940, the encoder module 1140 may generate a plurality of filtered samples based on the reference sample from one of a plurality of sampling filters selected based on the comparison result. The sampling filter may include an interpolation filter and a reference filter.

Referring to fig. 8, when the encoder module 1140 determines that each predefined mode is different from an intra prediction mode, an interpolation filter may be selected to filter the reference samples to generate filtered samples. When each predefined mode is different from the intra prediction mode, the sample locations pointed to by the intra prediction mode are fractional sample locations. Thus, when the sample position pointed to by the intra prediction mode is a fractional sample position, the interpolation filter may be selected to filter the reference sample to generate a filtered sample.

In at least one implementation, when the encoder module 1140 determines that the intra-prediction mode is the same as one of the predefined modes, a reference filter may be selected to filter the reference samples to generate filtered samples. When the intra prediction mode is equal to one of the predefined modes, the sample position pointed to by the intra prediction mode is a full sample position.

Thus, when the sample position pointed to by the intra prediction mode is a full sample position, the reference filter may be selected to filter the reference samples to generate filtered samples. When the reference samples are filtered by the reference filter to generate filtered samples, the filtered samples bypass the interpolation filter.

Referring to fig. 5 and 8, when the intra prediction mode points from the block unit 510 to a fractional sample position of the reference block, there may be no reference sample at a plurality of sample intersections between the virtual horizontal line 563 and the component direction of the intra prediction mode. Accordingly, the encoder module 1140 may select some of the reference samples adjacent to the sample intersection and generate the filtered reference samples by interpolation based on the selected reference samples.

The component direction 533 may point from the component block 513 to the fractional sample position 532 of the reference block 523. Accordingly, the encoder module 1140 may select reference samples in the reference blocks 522, 523 and/or other neighboring reference blocks to generate filtered reference samples by interpolation based on the reference samples selected for the component block 513. The interpolation filter may include at least one of a four-tap gaussian filter (fG) and a four-tap DCT filter (fC).

When the intra prediction mode points from the block unit 510 to the full sampling position of the reference sample, a plurality of sample intersection points between the virtual horizontal line 563 and the component direction of the intra prediction mode may be located at the full sampling position. Accordingly, the encoder module 1140 may directly select the reference samples to generate the filtered reference samples without interpolation.

The component direction 542 may point from the component block 515 to the fully sampled position 5251 of the reference block 525. Accordingly, the encoder module 1140 may select reference samples for the component block 515 in the reference block 525. The selected reference block may be filtered by a reference filter. The reference filter may be a [ 121 ] three-tap smoothing filter that is applied to reference samples of the selected reference block and other reference blocks adjacent to the selected reference block.

At block 950, the encoder module may predict the block unit from the filtered samples based on the intra prediction mode. Referring to fig. 1 and 8, the intra prediction unit 11412 may generate prediction components for component blocks in a block unit based on an intra prediction mode.

The first adder 1142 of the encoder module 1140 in the source device 110 may generate a plurality of residual samples based on the prediction component and provide a bitstream including a plurality of coefficients corresponding to the residual samples to the target device 120. The encoder module 1140 may predict all other block units in the image frame to predict the image frame and the video.

From the above description, it can be seen that the concepts recited in the present disclosure can be implemented using a variety of techniques without departing from the scope of these concepts. Moreover, although the concepts have been described with specific reference to certain embodiments, a person of ordinary skill in the art would recognize that changes could be made in form and detail without departing from the scope of the concepts.

As such, the described embodiments are to be considered in all respects as illustrative and not restrictive. Also, it should be understood that the disclosure is not limited to the particular embodiments described above and that many rearrangements, modifications, and substitutions are possible for such embodiments without departing from the scope of the disclosure.

32页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:网络抽象层单元头

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类