WO2022095918A1 - Dispositif et procédé de codage de données vidéo - Google Patents

Dispositif et procédé de codage de données vidéo Download PDF

Info

Publication number
WO2022095918A1
WO2022095918A1 PCT/CN2021/128605 CN2021128605W WO2022095918A1 WO 2022095918 A1 WO2022095918 A1 WO 2022095918A1 CN 2021128605 W CN2021128605 W CN 2021128605W WO 2022095918 A1 WO2022095918 A1 WO 2022095918A1
Authority
WO
WIPO (PCT)
Prior art keywords
neighboring
modes
mode
block
unit
Prior art date
Application number
PCT/CN2021/128605
Other languages
English (en)
Inventor
Chihyu TENG
Yuchiao YANG
Original Assignee
FG Innovation Company Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FG Innovation Company Limited filed Critical FG Innovation Company Limited
Publication of WO2022095918A1 publication Critical patent/WO2022095918A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Definitions

  • the present disclosure is generally related to video coding, and more specifically, to techniques for intra prediction based on an adjusted intra mode list.
  • Intra prediction is a coding tool for video coding.
  • an encoder and a decoder only use previously reconstructed pixels in a closest pixel line adjacent to a coding block to generate reference pixels and predictors for predicting or reconstructing the coding block along an orientation.
  • the orientation is selected from a plurality of intra modes included in a predefined mode list.
  • the number of intra modes may be too high for the encoder to quickly select an appropriate prediction mode when the encoder predicts the coding block based on the prediction mode (which is included in the predefined mode list) .
  • the encoder needs to determine a frequent mode list that adapts to different coding blocks.
  • the decoder also needs to determine the frequent mode list that adapts to different coding blocks in the same way.
  • the frequent mode list may include non-angular intra modes, two previous intra modes of two neighboring blocks of the coding block, and some derived intra modes adjacent to the two previous intra modes.
  • the frequent mode list will be predefined as a default mode list when the two previous intra modes are identical to the non-angular intra modes.
  • the encoder and the decoder need to have a method for more efficiently generating the frequent mode list.
  • the present disclosure is directed to a device and method for reconstructing a block unit in an image frame based on a plurality of candidate modes in a plurality of candidate lists.
  • a method of decoding video data and an electronic device for performing the method comprises determining a block unit from an image frame according to the video data; determining a plurality of first neighboring blocks each having a first neighboring mode and each covering a first neighboring location neighboring the block unit; determining at least one second neighboring block each having a second neighboring mode, each covering a second neighboring location neighboring the block unit and different from the first neighboring locations when at least one of the first neighboring modes is included in a plurality of non-angular modes; determining at least one neighboring candidate mode based on the at least one second neighboring mode; determining a plurality of candidate list modes based on the at least one neighboring candidate mode; and reconstructing the block unit based on the plurality of candidate list modes.
  • a method for decoding video data and an electronic device for performing the method comprises determining a block unit from an image frame according to the video data; determining a plurality of first neighboring blocks neighboring the block unit and each having a first neighboring mode; determining at least one second neighboring block neighboring the block unit, each having a second neighboring mode, and different from the plurality of first neighboring blocks when a non-angular mode is included in the first neighboring modes; determining a neighboring candidate mode based on the at least one second neighboring mode; determining a plurality of candidate list modes based on the neighboring candidate mode; and reconstructing the block unit based on the plurality of candidate list modes.
  • FIG. 1 illustrates a block diagram of a system configured to encode and decode video data according to an implementation of the present disclosure.
  • FIG. 2 illustrates a block diagram of the decoder module of the second electronic device illustrated in FIG. 1 according to an implementation of the present disclosure.
  • FIG. 3 illustrates a flowchart of a method for decoding video data by an electronic device according to an implementation of the present disclosure.
  • FIG. 4 (a) and FIG. 4 (b) are a schematic illustration of an example implementation of a block unit and the neighboring partitions and is a schematic illustration of an example implementation of a block unit and the neighboring positions.
  • FIG. 5 illustrates a flowchart of a method for decoding video data by an electronic device according to an implementation of the present disclosure.
  • FIG. 6 illustrates a flowchart of a method for decoding video data by an electronic device according to an implementation of the present disclosure.
  • FIG. 7 illustrates a block diagram of the encoder module of the first electronic device illustrated in FIG. 1 according to an implementation of the present disclosure.
  • the disclosure uses the phrases “in one implementation, ” or “in some implementations, ” may refer to one or more of the same or different implementations.
  • the term “coupled” is defined as connected, whether directly or indirectly, through intervening components and is not necessarily limited to physical connections.
  • the term “comprising” means “including, but not necessarily limited to” and specifically indicates open-ended inclusion or membership in the so-described combination, group, series and the equivalent.
  • any 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.
  • Disclosed functions may correspond to modules that are software, hardware, firmware, or any combination thereof.
  • a software implementation may include a program having computer executable instructions stored on computer readable medium such as memory or other type of storage devices.
  • computer readable medium such as memory or other type of storage devices.
  • one or more microprocessors or general-purpose computers with communication processing capability may be programmed with executable instructions and perform the disclosed function (s) or algorithm (s) .
  • microprocessors or general-purpose computers may be formed of application-specific integrated circuits (ASICs) , programmable logic arrays, and/or using one or more digital signal processors (DSPs) .
  • ASICs application-specific integrated circuits
  • DSPs digital signal processors
  • the computer readable medium includes 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 (CD ROM) , magnetic cassettes, magnetic tape, magnetic disk storage, or any other equivalent medium capable of storing computer-readable instructions.
  • RAM random-access memory
  • ROM read-only memory
  • EPROM erasable programmable read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • flash memory compact disc read-only memory (CD ROM)
  • CD ROM compact disc read-only memory
  • magnetic cassettes magnetic tape
  • magnetic disk storage 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 implementation of the present disclosure.
  • the system 100 includes a first electronic device 110, a second electronic device 120, and a communication medium 130.
  • the first electronic device 110 may be a source device including any device configured to encode video data and transmit encoded video data to the communication medium 130.
  • the second electronic device 120 may be a destination device including any device configured to receive encoded video data via the communication medium 130 and decode encoded video data.
  • the first electronic device 110 may communicate via wire or wirelessly with the second electronic device 120 via the communication medium 130.
  • the first electronic device 110 may include a source module 112, an encoder module 114, and a first interface 116.
  • the second electronic device 120 may include a display module 122, a decoder module 124, and a second interface 126.
  • the first electronic device 110 may be a video encoder and the second electronic device 120 may be a video decoder.
  • the first electronic device 110 and/or the second electronic device 120 may be a mobile phone, a tablet, a desktop, a notebook, or other electronic device.
  • FIG. 1 illustrates one example of the first electronic device 110 and the second electronic device 120.
  • the first electronic device 110 and second electronic device 120 may include greater or fewer components than illustrated or have a different configuration of the various illustrated components.
  • the 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 feed 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 as the source 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.
  • CCD charge-coupled device
  • CMOS complementary metal-oxide-semiconductor
  • the encoder module 114 and the decoder module 124 may each be implemented as any of a variety of suitable encoder/decoder circuitry such as one or more microprocessors, a central processing unit (CPU) , a graphics processing unit (GPU) , a system-on-a-chip (SoC) , digital signal processors (DSPs) , application-specific integrated circuits (ASICs) , field-programmable gate arrays (FPGAs) , discrete logic, software, hardware, firmware or any combinations thereof.
  • a device may store the program having 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 disclosed methods.
  • Each of the encoder module 114 and the decoder module 124 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 a device.
  • CODEC combined encoder/decoder
  • the first interface 116 and the second interface 126 may utilize customized protocols or follow existing standards 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, Global System for Mobile Communications (GSM) , Code-Division Multiple Access 2000 (CDMA2000) , Time Division Synchronous Code Division Multiple Access (TD-SCDMA) , Worldwide Interoperability for Microwave Access (WiMAX) , Third Generation Partnership Project Long-Term Evolution (3GPP-LTE) or Time-Division LTE (TD-LTE) .
  • the first interface 116 and the second interface 126 may each include any device configured to transmit and/or store a compliant video bitstream via the communication medium 130 and to receive the compliant video bitstream via the communication medium130.
  • the first interface 116 and the second interface 126 may include a computer system interface that enables a compliant video bitstream to be stored on a storage device or to be received from the storage device.
  • the first interface 116 and the second interface 126 may include a chipset supporting Peripheral Component Interconnect (PCI) and Peripheral Component Interconnect Express (PCIe) bus protocols, proprietary bus protocols, Universal Serial Bus (USB) protocols, Inter-Integrated Circuit (I2C) protocols, or any other logical and physical structure that may be used to interconnect peer devices.
  • PCI Peripheral Component Interconnect
  • PCIe Peripheral Component Interconnect Express
  • 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, with other display technologies used in other implementations.
  • the display module 122 may include a high-definition display or an ultra-high-definition display.
  • FIG. 2 illustrates a block diagram of the decoder module 124 of the second electronic device 120 illustrated in FIG. 1 according to an implementation of the present disclosure.
  • the decoder module 124 includes an entropy decoder (e.g., entropy decoding unit 2241) , a prediction processor (e.g., prediction process unit 2242) , an inverse quantization/inverse transform processor (e.g., inverse quantization/inverse transform unit 2243) , a summer (e.g., summer 2244) , a filter (e.g., filtering unit 2245) , and a decoded picture buffer (e.g., decoded picture buffer 2246) .
  • entropy decoder e.g., entropy decoding unit 2241
  • a prediction processor e.g., prediction process unit 2242
  • an inverse quantization/inverse transform processor e.g., inverse quantization/inverse transform unit 2243
  • a summer e.
  • the prediction process unit 2242 further includes an intra prediction processor (e.g., intra prediction unit 22421) and an inter prediction processor (e.g., inter prediction unit 22422) .
  • the decoder module 124 receives a bitstream and decodes the bitstream to output decoded video.
  • the entropy decoding unit 2241 may receive the 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 syntax elements from the bitstream. As part of the parsing operation, the entropy decoding unit 2241 may entropy decode the bitstream to generate quantized transform coefficients, quantization parameters, transform data, motion vectors, intra modes, partition information, and other syntax information.
  • the entropy decoding unit 2241 may perform context adaptive variable length coding (CAVLC) , context adaptive binary arithmetic coding (CABAC) , syntax-based context-adaptive binary arithmetic coding (SBAC) , probability interval partitioning entropy (PIPE) coding or another entropy coding technique to generate the quantized transform coefficients.
  • CAVLC context adaptive variable length coding
  • CABAC context adaptive binary arithmetic coding
  • SBAC syntax-based context-adaptive binary arithmetic coding
  • PIPE probability interval partitioning entropy
  • the entropy decoding unit 2241 may provide the quantized transform coefficients, the quantization parameters, and the transform data to the inverse quantization/inverse transform unit 2243 and provide the motion vectors, the intra modes, the partition information, and other syntax information to the prediction process unit 2242.
  • the prediction process unit 2242 may receive syntax elements such as motion vectors, intra modes, partition information, and other syntax information from the entropy decoding unit 2241.
  • the prediction process unit 2242 may receive the syntax elements including the partition information and divide image frames according to the partition information.
  • Each of the image frames may be divided into at least one image block according to the partition information.
  • the at least one image block may include a luminance block for reconstructing a plurality of luminance samples and at least one chrominance block for reconstructing a plurality of chrominance samples.
  • the luminance block and the at least one chrominance block may be further divided to generate macroblocks, coding tree units (CTUs) , coding blocks (CBs) , sub-divisions thereof, and/or another equivalent coding unit.
  • CTUs coding tree units
  • CBs coding blocks
  • the prediction process unit 2242 may receive predicted data including the intra mode or the motion vector for a current image block of a specific one of the image frames.
  • the current image block may be the luminance block or one of the chrominance blocks in the specific image frame.
  • the intra prediction unit 22421 may perform intra-predictive coding of a current block unit relative to one or more neighboring blocks in the same frame as the current block unit based on syntax elements related to the intra mode in order to generate a predicted block.
  • the intra mode may specify the location of reference samples selected from the neighboring blocks within the current frame.
  • the intra prediction unit 22421 may reconstruct a plurality of chroma components of the current block unit based on a plurality of luma components of the current block unit when the chroma components are reconstructed by the prediction process unit 2242.
  • the intra prediction unit 22421 may reconstruct a plurality of chroma components of the current block unit based on the plurality of luma components of the current block unit when the luma components of the current block are reconstructed by the prediction process unit 2242.
  • the inter prediction unit 22422 may perform inter-predictive coding of the current block unit relative to one or more blocks in one or more reference image blocks based on syntax elements related to the motion vector in order to generate the predicted block.
  • the motion vector may indicate a displacement of the current block unit within the current image block relative to a reference block unit within the reference image block.
  • the reference block unit is a block determined to closely match the current block unit.
  • the inter prediction unit 22422 may receive the reference image block stored in the decoded picture buffer 2246 and reconstruct the current block unit based on the received reference image blocks.
  • the inverse quantization/inverse transform unit 2243 may apply inverse quantization and inverse transformation to reconstruct the residual block in the pixel domain.
  • the inverse quantization/inverse transform unit 2243 may apply inverse quantization to the residual quantized transform coefficient to generate a residual transform coefficient and then apply inverse transformation to the residual transform coefficient to generate the residual block in the pixel domain.
  • the inverse transformation may be inversely applied by the transformation 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, Karhunen-Loéve transform (KLT) , wavelet transform, integer transform, sub-band transform or a conceptually similar transform.
  • the inverse transformation may convert the residual information from a transform domain, such as a frequency domain, back to the pixel domain.
  • the degree of inverse quantization may be modified by adjusting a quantization parameter.
  • the summer 2244 adds the reconstructed residual block to the predicted block provided from the prediction process unit 2242 to produce a reconstructed block.
  • the filtering unit 2245 may include a deblocking filter, a sample adaptive offset (SAO) filter, a bilateral filter, and/or an adaptive loop filter (ALF) to remove blocking artifacts from the reconstructed block. Additional filters (in loop or post loop) may also be used in addition to the deblocking filter, the SAO filter, the bilateral filter and the ALF. Such filters are not explicitly illustrated for brevity but may filter the output of the summer 2244.
  • the filtering unit 2245 may output the decoded video to the display module 122 or other video receiving unit after the filtering unit 2245 performs the filtering process for the reconstructed blocks of the specific image frame.
  • the decoded picture buffer 2246 may be a reference picture memory that stores the reference block for use by the prediction process unit 2242 in decoding the bitstream (in inter coding modes) .
  • the decoded picture buffer 2246 may be formed by any of a variety of memory devices such as dynamic random-access memory (DRAM) , including synchronous DRAM (SDRAM) , magneto-resistive RAM (MRAM) , resistive RAM (RRAM) , or other types of memory devices.
  • DRAM dynamic random-access memory
  • SDRAM synchronous DRAM
  • MRAM magneto-resistive RAM
  • RRAM resistive RAM
  • the decoded picture buffer 2246 may be on-chip with other components of the decoder module 124 or off-chip relative to those components.
  • FIG. 3 illustrates a flowchart of a method 300 for decoding video data by an electronic device according to an implementation of the present disclosure.
  • the method 300 is an example only, as there are a variety of ways to perform decoding of the video data.
  • the method 300 may be performed using the configurations illustrated in FIG. 1 and FIG. 2, and various elements of these figures are referenced with regard to the method 300.
  • Each block illustrated in FIG. 3 may represent one or more processes, methods, or subroutines performed.
  • FIG. 3 The order of blocks in FIG. 3 is illustrative only and may change. Additional blocks may be added or fewer blocks may be utilized without departing from the present disclosure.
  • the decoder module 124 determines a block unit from an image frame according to video data.
  • the video data received by the decoder module 124 may be a bitstream.
  • the second electronic device 120 may receive the bitstream from an encoder, such as the first electronic device 110, or other video providers via the second interface 126.
  • the second interface 126 may provide the bitstream to the decoder module 124.
  • the entropy decoding unit 2241 may decode the bitstream to determine a plurality of prediction indications and a plurality of partitioning indications for the image frame. Then, the decoder module 124 may further reconstruct the image frame based on the prediction indications and the partitioning indications.
  • the prediction indications and the partitioning indications may include a plurality of flags and a plurality of indices.
  • the decoder module 124 determines the image frame based on the bitstream, and divides the image frame to determine the block unit according to the partition indications in the bitstream. For example, the decoder module 124 may divide the image frames to generate a plurality of CTUs, and further divide one of the CTUs to determine the block unit according to the partition indications based on any video coding standard.
  • the intra prediction unit 22421 determines a plurality of first neighboring blocks each having a first neighboring mode and each covering a first neighboring location neighboring the block unit.
  • the intra prediction unit 22421 may determine a plurality of neighboring partitions neighboring the block unit.
  • FIG. 4 (a) is a schematic illustration of an example implementation of a block unit 420 and the neighboring partitions.
  • the neighboring partitions may include an Above-Left block 421, an Above-L block 422, an Above block 423, an Above-R block 424, an Above-Right block 425, a Left-A block 426, a Left block 427, a Left-B block 428 and a Bottom-Left block 429.
  • the number of the neighboring partitions may be different from nine.
  • the number of the neighboring partitions may be equal to seven.
  • positions of the neighboring partitions may be different from positions of the nine blocks 421-429 shown in FIG. 4 (a) .
  • positions of the neighboring partitions may be predefined.
  • the intra prediction unit 22421 may determine the first neighboring blocks from the neighboring partitions. For example, the intra prediction unit 22421 may select the Above-R block 424 and the Left-B block 428 as the first neighboring blocks. In some implementations, the number of the first neighboring blocks may be equal to two.
  • the intra prediction unit 22421 may determine a plurality of neighboring positions neighboring the block unit.
  • FIG. 4 (b) is a schematic illustration of an example implementation of a block unit 440 and the neighboring positions.
  • the neighboring positions may include an Above-Left position 441, an Above-L position 442, an Above position 443, an Above-R position 444, an Above-Right position 445, a Left-A position 446, a Left position 447, a Left-B position 448 and a Bottom-Left position 449.
  • a top-left position 4401 in the block unit 440 relative to a top-left position in the image frame may be denoted as (x, y) and a width and a heigh of the block unit 440 are equal to W and H.
  • the Above-Left position 441 may be located at (x-1, y-1)
  • the Above_L position 442 may be located at (x, y-1)
  • the Above position 443 may be located at (x+ (W/2) , y-1)
  • the Above_R position 444 may be located at (x+ (W-1) , y-1)
  • the Above-Right position 445 may be located at (x+W, y-1)
  • the Left_A position 446 may be located at (x-1, y)
  • the Left position 447 may be located at (x-1, y+ (H/2)
  • the Left_B position 448 may be located at (x-1, y+ (H-1) )
  • the Bottom-Left position 449 may be located at (x-1, y+H) .
  • the number of the neighboring positions may be different from nine.
  • the number of the neighboring positions may be equal to seven.
  • the positions 443 and 447 may be excluded from the neighboring positions.
  • positions of the neighboring positions may be different from positions of the positions 441-449 shown in FIG. 4 (b) .
  • the number of the neighboring positions may be different from nine and the positions of the neighboring positions may be different from positions of the positions 441-449 shown in FIG. 4 (b) .
  • the first neighboring locations may be predefined and included in the neighboring positions.
  • the intra prediction unit 22421 may determine the first neighboring locations based on a predefined selection rule. For example, the intra prediction unit 22421 may determine the Above-R location 444 and the Left-B location 448 as the first neighboring locations, and then the intra prediction unit 22421 may select the first neighboring blocks from the neighboring partitions based on the first neighboring locations. Each of the neighboring blocks covers one of the first neighboring locations.
  • predictions or reconstructions of the first neighboring blocks may end before the intra prediction unit 22421 starts to predict the block unit.
  • the intra prediction unit 22421 may determine a plurality of predicted modes of the first neighboring blocks when the block unit is being predicted. The predicted modes are used to predict and reconstruct the first neighboring blocks. In addition, the predicted modes may be different from or identical to each other.
  • the first neighboring modes of the first neighboring blocks are determined based on the predicted modes of the first neighboring blocks.
  • the predicted modes may belong to one of an intra prediction mode and an inter prediction mode.
  • the intra prediction mode may include a plurality of non-angular modes, a plurality of angular mode and the other intra prediction modes.
  • the non-angular modes may include a Planar mode and a DC mode having intra prediction indices 0 and 1, respectively.
  • Each of the angular modes may correspond to different angles and have different intra prediction indices.
  • the intra prediction indices of the angular modes may include 2-66 when the decoder module 124 decodes the block unit in versatile video coding (VVC) or VVC test model (VTM) .
  • the intra prediction indices of the angular modes may include 2-33 when the decoder module 124 decodes the block unit in high efficiency video coding (HEVC) .
  • the other intra prediction modes different from the non-angular modes and the angular modes may include a matrix weighted intra prediction (MIP) mode.
  • MIP matrix weighted intra prediction
  • the intra prediction unit 22421 sets a first predefined mode as the first neighboring mode of the specific first neighboring block.
  • the predicted mode of the specific first neighboring block is the other intra prediction modes different from the non-angular modes and the angular modes
  • the intra prediction unit 22421 sets a second predefined mode as the first neighboring mode of the specific first neighboring block.
  • the intra prediction unit 22421 may directly set a third predefined mode as the first neighboring mode of the specific first neighboring block when the specific first neighboring block and the block unit are included in different CTUs.
  • the intra prediction unit 22421 may set the predicted mode of the specific first neighboring block as a corresponding one of the first neighboring modes.
  • the intra prediction unit 22421 may further determine whether a plurality of available blocks covering the neighboring positions. When there are a plurality of available blocks covering the neighboring positions, the available blocks may be set as the neighboring partitions. When there is no available block covering a specific one of the neighboring positions, there is no neighboring partition corresponding to the specific neighboring position. For example, the block unit is located at a left boundary of the image frame so there is no neighboring block located to the left side of the block unit. In addition, there is no predicted mode corresponding to a specific one of the first neighboring locations, when there is no neighboring block located at the specific first neighboring location. Thus, the intra prediction unit 22421 may directly set a fourth predefined mode as the first neighboring mode of the first neighboring block when there is no available block covering the first neighboring location.
  • the first predefined mode may be predefined as the Planar mode. In another implementation, the first predefined mode may be predefined as an unavailable mode so that the neighboring partition having the first predefined mode may not be selected as the first neighboring block.
  • the second predefined mode may be predefined as the Planar mode. In another implementation, the second predefined mode may be predefined as an unavailable mode so that the neighboring partition having the second predefined mode may not be selected as the first neighboring block.
  • the third predefined mode may be predefined as the Planar mode. In another implementation, the third predefined mode may be predefined as an unavailable mode so that the neighboring partition having the third predefined mode may not be selected as the first neighboring block.
  • the fourth predefined mode may be predefined as the Planar mode. In another implementation, the fourth predefined mode may be predefined as an unavailable mode so that the neighboring partition having the fourth predefined mode may not be selected as the first neighboring block.
  • the intra prediction unit 22421 may further determine a plurality of available modes of the available blocks based on the predicted modes of the available blocks.
  • the intra prediction unit 22421 may determine the predicted modes of the available blocks as the available modes.
  • the intra prediction unit 22421 may determine whether the predicted modes are included in the inter prediction mode and the other intra prediction modes different from the non-angular modes and the angular modes and whether the available blocks and the block unit are included in different CTUs for determining the available modes.
  • the available modes may be changed from the predicted modes to be a corresponding one of the first predefined mode and the second predefined mode.
  • the available modes may be changed from the predicted modes to be the third predefined mode. Then, the intra prediction unit 22421 may determine a first number equal to the number of the available modes included in the non-angular modes and a second number equal to the number of the available modes included in the angular modes and compare the first number with the second number. When the second number is less than the first number, the intra prediction unit 22421 may determine a predefined list modes as a plurality of candidate list modes. The predefined list modes may be the DC mode and Planar. For example, when the second number is equal to zero, the predefined list modes may be set as the candidate list modes of the block unit. In the implementation, each of the first predefined mode, the second predefined mode and the third predefined mode may be identical to the Planar mode or the unavailable mode.
  • the intra prediction unit 22421 determines whether at least one of the first neighboring modes is included in a plurality of non-angular modes.
  • the method 300 may proceed to block 340 when the decoder module 124 determines that at least one of the first neighboring modes is included in the non-angular modes.
  • the method 300 may proceed to block 360 when the decoder module 124 determines that the first neighboring modes are different from the non-angular modes.
  • the intra prediction unit 22421 may compare the intra prediction indices of the first neighboring modes with the intra prediction index of the DC mode. When one or two of the intra prediction indices of the first neighboring modes are less than or equal to the intra prediction index of the DC mode, the decoder module 124 determines that at least one of the first neighboring modes is included in the non-angular modes. When each the intra prediction indices of the first neighboring modes is greater than the intra prediction index of the DC mode, the decoder module 124 determines that the first neighboring modes are included in the angular modes and excluded from the non-angular modes. In some implementations, the intra prediction index of the DC mode may be equal to one.
  • the intra prediction unit 22421 determines at least one second neighboring block each having a second neighboring mode and each covering a second neighboring location neighboring the block unit.
  • the at least one second neighboring block may be different from the first neighboring blocks.
  • the intra prediction unit 22421 may exclude the first neighboring blocks from the neighboring partitions to generate a plurality of remaining partitions and select the at least one second neighboring block from the remaining partitions. For example, the intra prediction unit 22421 may select the Left-A block or other blocks as the second neighboring block. In addition, the intra prediction unit 22421 may select all the other blocks different from the Above_R block 424 and the Left_B block 428 as the second neighboring blocks. In addition, the intra prediction unit 22421 may exclude the first neighboring blocks from the available blocks to generate the remaining partitions and select the at least one second neighboring block from the remaining partitions.
  • the at least one second neighboring location may be predefined in the neighboring positions and different from the first neighboring locations, and the at least one second neighboring block covering the at least one second neighboring location may be different from the first neighboring blocks.
  • the intra prediction unit 22421 may exclude the first neighboring locations from the neighboring positions to generate a plurality of remaining positions and select the at least one second neighboring locations from the remaining positions. Then, the intra prediction unit 22421 may exclude the first neighboring blocks from the neighboring partitions and select the at least one second neighboring block from the remaining partitions based on the at least one second neighboring location.
  • the intra prediction unit 22421 may select the Left-A position or other positions as the second neighboring location and select the neighboring partition covering the selected position as the second neighboring block. In addition, the intra prediction unit 22421 may select all the other neighboring positions as the second neighboring locations and determine the remaining blocks covering the second neighboring locations as the second neighboring blocks. The at least one second neighboring blocks do not cover the first neighboring locations.
  • the number of the at least one second neighboring blocks may be equal to the number of the at least one of the first neighboring modes is included in the non-angular modes. For example, when the number of the at least one of the first neighboring modes included in the non-angular modes is equal to one, the intra prediction unit 22421 may determine one second neighboring block and determine one second neighboring mode of the second neighboring block for replacing with the first neighboring mode included in the non-angular modes.
  • the selection order for the second neighboring block may be predefined. When the second neighboring mode determined for the first selected one of the second neighboring blocks is still included in the non-angular modes, the intra prediction unit 22421 may select one of the other neighboring partitions based on the predefined selection order.
  • the number of the at least one second neighboring blocks may be greater than the number of the at least one of the first neighboring modes is included in the non-angular modes.
  • the intra prediction unit 22421 may determine all the other neighboring partitions different from the first neighboring blocks as the second neighboring blocks and determine the second neighboring modes of the second neighboring blocks.
  • the intra prediction unit 22421 determines at least one neighboring candidate mode based on the at least one second neighboring mode.
  • the number of the at least one neighboring candidate mode may be equal to the number of the at least one of the first neighboring modes included in the non-angular modes.
  • the intra prediction unit 22421 may determine one second neighboring block and determine one second neighboring mode of the second neighboring block for replacing with the first neighboring mode included in the non-angular modes. Thus, the intra prediction unit 22421 may set the determined second neighboring mode as the neighboring candidate mode.
  • the at least one neighboring candidate mode is selected based on at least one of a maximum index value and a minimum index value determined based on the at least one second neighboring mode.
  • the intra prediction unit 22421 may determine more than one second neighboring block, determine more than one second neighboring mode of the more than one second neighboring block and determine one neighboring candidate mode based on the more than one second neighboring mode for replacing with the first neighboring mode included in the non-angular modes. For example, the intra prediction unit 22421 may select the neighboring candidate mode from the more than one second neighboring mode based on the intra prediction indices of the more than one second neighboring mode. A specific one of the second neighboring modes having the maximum index value may be selected to be the neighboring candidate mode. The other one of the second neighboring modes having the minimum index value may be selected to be the neighboring candidate mode. Thus, the neighboring candidate mode is selected based on one of the maximum index value and the minimum index value determined based on the second neighboring modes. The intra prediction indices of the more than one second neighboring mode may be greater than the intra prediction index of the DC mode.
  • the intra prediction unit 22421 may determine more than one second neighboring block for determining more than one neighboring candidate mode. For example, the intra prediction unit 22421 may determine two second neighboring blocks and determine two second neighboring modes of the two second neighboring blocks when the number of the at least one of the first neighboring modes included in the non-angular modes is equal to two.
  • the intra prediction unit 22421 may determine more than two second neighboring blocks, determine the more than two second neighboring modes of the more than two second neighboring blocks and determine two neighboring candidate modes based on the more than two second neighboring modes when the number of the at least one of the first neighboring modes included in the non-angular modes is equal to two.
  • Two of the more than two second neighboring modes respectively having the minimum index value and the maximum index value may be selected to be the neighboring candidate modes.
  • the two index values of the two neighboring candidate modes include the maximum index value and the minimum index value when the number of the at least one of the first neighboring modes included in the plurality of non-angular modes is greater than one.
  • the intra prediction unit 22421 determines a plurality of candidate list modes based on the first neighboring modes.
  • the intra prediction unit 22421 may directly determine the candidate list modes based on the first neighboring modes.
  • the candidate list modes may be a plurality of most probable modes (MPMs) .
  • the intra prediction unit 22421 may compare the first neighboring modes with each other and determines the MPMs based on the comparison result. Different comparison results may correspond to different mode determination rules. For example, when the first neighboring modes are identical to each other, the candidate list modes may be derived as follows:
  • candModeList [4] 2 + (candIntraPredModeA %64)wherein candIntraPredModeA is equal to the intra prediction index of the first neighboring mode and the operator “x %y” is defined as a remainder of x divided by y.
  • the candidate list modes may be derived as follows:
  • the intra prediction unit 22421 determines the candidate list modes based on the at least one neighboring candidate mode.
  • the intra prediction unit 22421 may determines more than one neighboring candidate modes when the first neighboring modes are included in the non-angular modes.
  • the number of the more than one neighboring candidate modes may be equal to two.
  • the intra prediction unit 22421 may determine the candidate list modes only based on the more than one neighboring candidate modes.
  • the intra prediction unit 22421 may compare the intra prediction indices of the more than one neighboring candidate modes with each other and determine the candidate list modes based on the comparison result by using the mode determination rules.
  • the intra prediction unit 22421 may determines one neighboring candidate mode when the number of the at least one the first neighboring modes included in the non-angular modes is equal to one. Thus, the intra prediction unit 22421 may determine the candidate list modes based on the one neighboring candidate mode and the other of the first neighboring modes included in the angular modes. Then, the intra prediction unit 22421 may compare the intra prediction indices of the one neighboring candidate mode and the other of the first neighboring modes included in the angular modes with each other and determine the candidate list modes based on the comparison result by using the mode determination rules.
  • the intra prediction unit 22421 predicts the block unit based on the candidate list modes.
  • the intra prediction unit 22421 may parse a mode index and select a prediction mode, based on the mode index, from the candidate list modes. Then, the intra prediction unit 22421 may generate a plurality of predicted components for the block components based on the prediction mode.
  • the first summer 2244 of the decoder module 124 in the destination device 12 may add the predicted components into a plurality of residual components determined from the bitstream to reconstruct the block unit.
  • the decoder module 124 may reconstruct all of the other block units in the image frame for reconstructing the image frame and the video.
  • FIG. 5 illustrates a flowchart of a method 500 for decoding video data by an electronic device according to an implementation of the present disclosure.
  • the method 500 is an example only, as there are a variety of ways to perform decoding of the video data.
  • the method 500 may be performed using the configurations illustrated in FIG. 1 and FIG. 2, and various elements of these figures are referenced with regard to the method 500.
  • Each block illustrated in FIG. 5 may represent one or more processes, methods, or subroutines performed.
  • FIG. 5 The order of blocks in FIG. 5 is illustrative only and may change. Additional blocks may be added or fewer blocks may be utilized without departing from the present disclosure.
  • the decoder module 124 determines a block unit from an image frame according to video data.
  • the video data received by the decoder module 124 may be a bitstream.
  • the second electronic device 120 may receive the bitstream from an encoder, such as the first electronic device 110, or other video providers via the second interface 126.
  • the second interface 126 may provide the bitstream to the decoder module 124.
  • the entropy decoding unit 2241 may decode the bitstream to determine a plurality of prediction indications and a plurality of partitioning indications for the image frame. Then, the decoder module 124 may further reconstruct the image frame based on the prediction indications and the partitioning indications.
  • the prediction indications and the partitioning indications may include a plurality of flags and a plurality of indices.
  • the decoder module 124 determines the image frame based on the bitstream, and divides the image frame to determine the block unit according to the partition indications in the bitstream. For example, the decoder module 124 may divide the image frames to generate a plurality of CTUs, and further divide one of the coding tree units CTUs to determine the block unit according to the partition indications based on any video coding standard.
  • the intra prediction unit 22421 determines a plurality of neighboring blocks each corresponding to a neighboring mode and each covering a neighboring position neighboring the block unit.
  • the intra prediction unit 22421 may determine a plurality of neighboring positions neighboring the block unit.
  • the neighboring positions may include an Above-Left position 441, an Above-L position 442, an Above position 443, an Above-R position 444, an Above-Right position 445, a Left-A position 446, a Left position 447, a Left-B position 448 and a Bottom-Left position 449.
  • the number of the neighboring positions may be different from nine.
  • locations of the neighboring positions may be different from locations of the nine positions 441-449 shown in FIG. 4 (b) .
  • the intra prediction unit 22421 may further determine whether there are a plurality of available blocks covering the neighboring positions.
  • the specific neighboring block may be an available block of the block unit.
  • the specific neighboring block may be an unavailable block of the block unit.
  • the block unit may be located at boundary of the image frame, a slice included in the image frame and including the block unit, a tile included in the image frame and including the block unit or a CTU included in the image frame and including the block unit.
  • the neighboring blocks of the block unit may include the available blocks and the unavailable blocks.
  • predictions or reconstructions of the available blocks may end before the intra prediction unit 22421 starts to predict the block unit.
  • the intra prediction unit 22421 may determine a plurality of predicted modes of the available blocks when the block unit is being predicted. The predicted modes are used to predict and reconstruct the available blocks. In addition, the predicted modes may be different from or identical to each other.
  • the neighboring modes of the available blocks are determined based on the predicted modes of the available blocks.
  • the predicted modes may belong to one of an intra prediction mode and an inter prediction mode.
  • the intra prediction mode may include a plurality of non-angular modes, a plurality of angular modes and the other intra prediction modes.
  • the non-angular modes may include a Planar mode and a DC mode having intra prediction indices 0 and 1, respectively. Each of the angular modes may correspond to different angles and have different intra prediction indices.
  • the other intra prediction modes different from the non-angular modes and the angular modes may include a matrix weighted intra prediction (MIP) mode.
  • MIP matrix weighted intra prediction
  • the intra prediction unit 22421 sets a first predefined mode as the neighboring mode corresponding to the specific available block.
  • the intra prediction unit 22421 sets a second predefined mode as the neighboring mode corresponding to the specific available block.
  • the intra prediction unit 22421 may directly set a third predefined mode as the neighboring mode corresponding to the specific available block when the specific available block and the block unit are included in different CTUs.
  • the intra prediction unit 22421 may set the predicted mode of the specific available block as a corresponding one of the neighboring modes.
  • the predicted mode of a specific one of the unavailable blocks is absence when the specific unavailable block is not included in the image frame.
  • the neighboring mode of the specific unavailable block may be directly set to be a fourth predefined mode.
  • the predicted mode of the specific unavailable block may exist when the specific unavailable block is included in the image frame, the neighboring mode of the specific unavailable block may still be set to be the fourth predefined mode.
  • each of the first predefined mode, the second predefined mode, the third predefined mode and the fourth predefined mode may be respectively predefined to be identical to the Planar mode or an unavailable mode.
  • the available blocks having the unavailable mode may not be selected as the neighboring blocks.
  • the neighboring modes of the neighboring blocks may be changed from different predicted modes to be one of the first predefined mode, the second predefined mode, third predefined mode, and the fourth predefined mode, the neighboring modes of the neighboring blocks may be identical to or different from each other even if the predicted modes of the neighboring blocks are different from each other.
  • the intra prediction unit 22421 may determine a first number equal to the number of the neighboring modes included in the non-angular modes and a second number equal to the number of the neighboring modes included in the angular modes and compare the first number with the second number. When the second number is less than the first number, the intra prediction unit 22421 may determine a predefined list modes as a plurality of candidate list modes.
  • the predefined list modes may be the DC mode and Planar. For example, when the second number is equal to zero, the predefined list modes may be set as the candidate list modes of the block unit.
  • the intra prediction unit 22421 determines at least one candidate list based on the neighboring modes.
  • the neighboring modes of the neighboring blocks are identical to each other.
  • the neighboring modes of the neighboring blocks are identical to each other.
  • the neighboring modes of the neighboring blocks are identical to each other.
  • the intra prediction unit 22421 may directly determine one candidate list including a plurality of candidate list modes based on the neighboring modes.
  • the candidate list modes may be a plurality of most probable modes (MPMs) .
  • MPMs most probable modes
  • the candidate list modes in the candidate list may be determined based on a first determination rule for two identical non-angular neighboring modes.
  • the candidate list modes in the candidate list may be determined based on a second determination rule different from the first determination rule for two identical angular neighboring modes. It is manifest that various determination rules may be used for implementing the concepts described in the present application without departing from the scope of those concepts.
  • the intra prediction unit 22421 may determine at least two candidate lists based on the neighboring modes.
  • the candidate list modes in the candidate list may be determined based on the first determination rule for two different non-angular neighboring mode. For example, one of two neighboring modes is the Planar mode and the other of the two neighboring modes is the DC mode, the candidate list modes in the candidate list may be determined based on the first determination rule.
  • the intra prediction unit 22421 determines a plurality of mode sets based on the neighboring modes.
  • Each the mode sets includes two of the neighboring modes respectively corresponding to one of the neighboring blocks.
  • the two neighboring modes included in one of the mode sets may be identical to each other, when the corresponding two neighboring blocks have the same neighboring modes.
  • the two neighboring modes included in one of the mode sets may be different from each other, when the corresponding two neighboring blocks have different neighboring modes.
  • the number of the mode sets may be equal to when the number of the neighboring modes is equal to N. For example, the number of the mode set is equal to 10, when the number of the neighboring modes is equal to 5.
  • the mode sets may include some redundant sets when two of the neighboring modes are identical to each other and another two of the neighboring modes are identical to each other.
  • the modes set may include two identical mode sets.
  • the intra prediction unit 22421 determines the candidate list modes for each of the mode sets. In other words, the intra prediction unit 22421 determines a corresponding one of the candidate lists based on each of the mode sets including two neighboring modes. When the two neighboring modes in a first one of the mode sets are identical to the two neighboring modes in a second one of the mode sets, the candidate list and the candidate list modes for the first mode set may be identical to the candidate list and the candidate list modes for the second mode set. In addition, when the two neighboring modes in the first mode set are different from the two neighboring modes in the second mode set, the candidate list and the candidate list modes for the first mode set may be different from the candidate list and the candidate list modes for the second mode set. In some implementation, each of the candidate lists may be determined based on the relationship between the two neighboring modes in a corresponding one of the mode set. Thus, the candidate lists may derived by different determination rules.
  • the intra prediction unit 22421 determines a mode list based on the at least one candidate list.
  • the intra prediction unit 22421 may directly set the candidate list as the mode list.
  • the intra prediction unit 22421 may combine all of the candidate list modes included in different candidate lists into the mode list.
  • the number of the candidate lists is equal to three.
  • a plurality of intra prediction indices of the candidate list modes in the first candidate list may include A, B, C, D, E, and F
  • the intra prediction indices of the candidate list modes in the second candidate list may include A, B, D, E, G, and H
  • the intra prediction indices of the candidate list modes in the third candidate list may include A, C, D, G, H, I.
  • the intra prediction indices of the candidate list modes in the mode list may A, B, C, D, E, F, G, H and I.
  • the intra prediction unit 22421 determines the mode list from the at least one candidate list based on a block shape of the block unit.
  • the intra prediction unit 22421 may determine whether a height of the block unit is greater than, equal to or less than a width of the block unit. When the height is equal to the width, the intra prediction unit 22421 may directly select a first predefined one of the candidate lists to be the mode list. For example, when the height is equal to the width, the intra prediction unit 22421 may directly select the first predefined candidate list generated based on the neighboring modes of the two neighboring blocks each covering one of the Above-R position 444 and the Left-B position 448 in FIG. 4 (b) .
  • the intra prediction unit 22421 may directly select a second predefined one of the candidate lists to be the mode list. For example, when the height is greater than the width, the intra prediction unit 22421 may directly select the second predefined candidate list generated based on the neighboring modes of the two neighboring blocks each covering one of the two neighboring positions selected from the Above-Left position 441, the Left-A position 446, the Left position 447, the Left-B position 448 and the Bottom-Left position 449 in FIG. 4 (b) .
  • the second predefined candidate list may be predefined to be generate according to the Above-Left position 441 and the Bottom-Left position 449.
  • the intra prediction unit 22421 may directly select a third predefined one of the candidate lists to be the mode list. For example, when the height is less than the width, the intra prediction unit 22421 may directly select the third predefined candidate list generated based on the neighboring modes of the two neighboring blocks each covering one of the two neighboring positions selected from the Above-Left position 441, the Above-L position 442, the Above position 443, the Above-R position 444 and the Above-Right position 445 in FIG. 4 (b) . In one implementation, the third predefined candidate list may be predefined to be generate according to the Above-L position 442 and the Above-R position 444.
  • the intra prediction unit 22421 may select two of the neighboring blocks based on the block shape. Then, the intra prediction unit 22421 derives the mode list based on two neighboring modes of the two selected neighboring blocks.
  • the bitstream may include a list index indicating one of the at least one candidate list.
  • the intra prediction unit 22421 may select the mode list from the at least one candidate list based on the list index.
  • the decoder module 124 may determine that the list index is not included the bitstream when the intra prediction unit 22421 determines that the number of the at least one candidate list is equal to one. Then the intra prediction unit 22421 may directly select the candidate list as the mode list without parsing the list index.
  • the list index of the block unit may be signalled by truncated binary. For example, if the list index of the block unit is equal to two, a codeword in the bitstream is “11” .
  • the list index of the block unit may be signalled by truncated unary. For example, if the list index of the block unit is equal to two, the codeword in the bitstream is “110” .
  • the intra prediction unit 22421 predicts the block unit based on the mode list.
  • the intra prediction unit 22421 may parse a mode index and select a prediction mode, based on the mode index, from the mode list. Then, the intra prediction unit 22421 may generate a plurality of predicted components for the block components based on the prediction mode.
  • the first summer 2244 of the decoder module 124 in the destination device 12 may add the predicted components into a plurality of residual components determined from the bitstream to reconstruct the block unit.
  • the decoder module 124 may reconstruct all of the other block units in the image frame for reconstructing the image frame and the video.
  • FIG. 6 illustrates a flowchart of a method 600 for decoding video data by an electronic device according to an implementation of the present disclosure.
  • the method 600 is an example only, as there are a variety of ways to perform decoding of the video data.
  • the method 600 may be performed using the configurations illustrated in FIG. 1 and FIG. 2, and various elements of these figures are referenced with regard to the method 600.
  • Each block illustrated in FIG. 6 may represent one or more processes, methods, or subroutines performed.
  • FIG. 6 The order of blocks in FIG. 6 is illustrative only and may change. Additional blocks may be added or fewer blocks may be utilized without departing from the present disclosure.
  • the decoder module 124 determines a block unit from an image frame according to video data.
  • the video data received by the decoder module 124 may be a bitstream.
  • the second electronic device 120 may receive the bitstream from an encoder, such as the first electronic device 110, or other video providers via the second interface 126.
  • the second interface 126 may provide the bitstream to the decoder module 124.
  • the entropy decoding unit 2241 may decode the bitstream to determine a plurality of prediction indications and a plurality of partitioning indications for the image frame. Then, the decoder module 124 may further reconstruct the image frame based on the prediction indications and the partitioning indications.
  • the prediction indications and the partitioning indications may include a plurality of flags and a plurality of indices.
  • the decoder module 124 determines the image frame based on the bitstream, and divides the image frame to determine the block unit according to the partition indications in the bitstream. For example, the decoder module 124 may divide the image frames to generate a plurality of CTUs, and further divide one of the coding tree units CTUs to determine the block unit according to the partition indications based on any video coding standard.
  • the intra prediction unit 22421 determines a plurality of neighboring blocks each corresponding to a neighboring mode and each covering a neighboring position neighboring the block unit.
  • the intra prediction unit 22421 may determine the neighboring positions neighboring the block unit.
  • the neighboring positions may include an Above-Left position 441, an Above-L position 442, an Above position 443, an Above-R position 444, an Above-Right position 445, a Left-A position 446, a Left position 447, a Left-B position 448 and a Bottom-Left position 449.
  • the number of the neighboring positions may be different from nine.
  • locations of the neighboring positions may be different from locations of the nine positions 441-449 shown in FIG. 4 (b) .
  • the intra prediction unit 22421 may further determine whether there are a plurality of available blocks covering the neighboring positions.
  • the specific neighboring block may be an available block of the block unit.
  • the specific neighboring block may be an unavailable block of the block unit.
  • the block unit when the block unit has one unavailable block covering a specific one of the neighboring positions, the block unit may be located at boundary of the image frame, a slice included in the image frame and including the block unit, a tile included in the image frame and including the block unit or a CTU included in the image frame and including the block unit so that the block unit and the specific neighboring blocs are included in the different regions.
  • the neighboring blocks of the block unit may include the available blocks and the unavailable blocks.
  • predictions or reconstructions of the available blocks may end before the intra prediction unit 22421 starts to predict the block unit.
  • the intra prediction unit 22421 may determine a plurality of predicted modes of the available blocks when the block unit is being predicted. The predicted modes are used to predict and reconstruct the available blocks. In addition, the predicted modes may be different from or identical to each other.
  • the neighboring modes of the available blocks are determined based on the predicted modes of the available blocks.
  • the predicted modes may belong to one of an intra prediction mode and an inter prediction mode.
  • the intra prediction mode may include a plurality of non-angular modes, a plurality of angular modes and the other intra prediction modes.
  • the non-angular modes may include a Planar mode and a DC mode having intra prediction indices 0 and 1, respectively. Each of the angular modes may correspond to different angles and have different intra prediction indices.
  • the other intra prediction modes different from the non-angular modes and the angular modes may include a matrix weighted intra prediction (MIP) mode.
  • MIP matrix weighted intra prediction
  • the intra prediction unit 22421 sets a first predefined mode as the neighboring mode corresponding to the specific available block.
  • the intra prediction unit 22421 sets a second predefined mode as the neighboring mode corresponding to the specific available block.
  • the intra prediction unit 22421 may directly set a third predefined mode as the neighboring mode corresponding to the specific available block when the specific available block and the block unit are included in different CTUs.
  • the intra prediction unit 22421 may set the predicted mode of the specific available block as a corresponding one of the neighboring modes.
  • the predicted mode of a specific one of the unavailable blocks is absence when the specific unavailable block is not included in the image frame.
  • the neighboring mode of the specific unavailable block may be directly set to be a fourth predefined mode.
  • the predicted mode of the specific unavailable block may exist when the specific unavailable block is included in the image frame, the neighboring mode of the specific unavailable block may still be set to be the fourth predefined mode.
  • each of the first predefined mode, the second predefined mode, the third predefined mode and the fourth predefined mode may be respectively predefined to be identical to the Planar mode or an unavailable mode.
  • the available blocks having the unavailable mode may not be selected as the neighboring blocks.
  • the neighboring modes of the neighboring blocks may be changed from different predicted modes to be one of the first predefined mode, the second predefined mode, the third predefined mode and the fourth predefined mode, the neighboring modes of the neighboring blocks may be identical to or different from each other even if the predicted modes of the neighboring blocks are different from each other.
  • the intra prediction unit 22421 determines a first number equal to the number of the neighboring modes included in the non-angular modes and a second number equal to the number of the neighboring modes included in the angular modes.
  • the first number is determined to be equal to the number of the neighboring modes included in the non-angular modes.
  • the first number may be equal to a third number equal to the number of the neighboring blocks each corresponding to one of the neighboring modes included in the non-angular modes.
  • the neighboring modes included in the non-angular modes may be regarded as a plurality of neighboring non-angular modes, and the neighboring blocks corresponding to the neighboring non-angular modes may be regarded as a plurality of neighboring non-angular blocks.
  • the second number is determined to be equal to the number of the neighboring modes included in the angular modes.
  • the second number may be equal to a fourth number equal to the number of the neighboring blocks each corresponding to one of the neighboring modes included in the angular modes.
  • the neighboring modes included in the angular modes may be regarded as a plurality of neighboring angular modes, and the neighboring blocks corresponding to the neighboring angular modes may be regarded as a plurality of neighboring angular blocks.
  • the decoder module 124 determines whether the second number is less than the first number.
  • the method 600 may proceed to block 650 when the decoder module 124 determines that the second number is greater than or equal to the first number.
  • the method 600 may proceed to block 660 when the decoder module 124 determines the second number is less than the first number.
  • the decoder module 124 may compare the first number with the second number. Since the first number is equal to the third number and the second number is equal to the fourth number, the decoder module 124 may compare the third number with the fourth number for substituting for the comparison between the first number and the second number.
  • the second number is greater than the first number when the first number is equal to zero.
  • the second number is less than the first number when the second number is equal to zero.
  • the intra prediction unit 22421 determines a plurality of reference modes from the neighboring modes included in the angular modes.
  • the intra prediction unit 22421 may uses the neighboring angular modes to generate a plurality of candidate list modes for predicting the block unit.
  • the intra prediction unit 22421 may select two of the neighboring modes to be the reference modes.
  • the neighboring modes may include the intra prediction indices and the intra prediction indices of the neighboring modes may be regarded as the intra neighboring indices.
  • the intra prediction unit 22421 may determine one neighboring mode having a maximum value of the intra neighboring indices as one of the reference modes. In some implementations, the intra prediction unit 22421 may determine one neighboring mode having a minimum value of the intra neighboring indices as one of the reference modes. In some implementations, the intra prediction unit 22421 may determine two neighboring modes respectively having the maximum value and the minimum value of the intra neighboring indices as the reference modes.
  • the intra prediction unit 22421 may determine the intra neighboring indices, and check how may neighboring modes each of the intra neighboring indices corresponds to. For example, when the neighboring modes of three of the neighboring blocks are identical to each other, the number of the neighboring blocks corresponding to the identical intra neighboring indices is equal to three.
  • the intra prediction unit 22421 may select one intra neighboring index corresponding to more than one neighboring block and determine the reference mode having the selected neighboring index.
  • this neighboring mode corresponding to more than one neighboring block may be determined as one of the reference modes.
  • the intra prediction unit 22421 may further determine another neighboring angular mode as one of the reference modes.
  • the determined neighboring angular mode may have the maximum value or the minimum value of the intra neighboring indices.
  • the two neighboring modes corresponding to more than one neighboring block may be determined as the reference modes.
  • two of the neighboring modes corresponding to more than one neighboring block may be determined as the reference modes.
  • each of the neighboring modes corresponding to more than one neighboring block may be determined as the reference modes.
  • the intra prediction unit 22421 determines a plurality of candidate list modes based on a plurality of predefined list modes.
  • the intra prediction unit 22421 may determine the candidate list modes based on the predefined list modes.
  • the first number is equal to the number of the neighboring blocks and the second number is less than the first number.
  • the intra prediction unit 22421 may determine the candidate list modes based on the predefined list modes.
  • the predefined list modes may be the Planar mode and the DC mode. In some implementation, the predefined list modes may be the Planar mode, the DC mode, a vertical mode, a horizontal mode, a vertical-based mode and a horizontal-based mode.
  • the intra prediction index of the vertical-based mode is equal to a value generated by subtracting an integer value K from the intra prediction index of the vertical mode
  • the intra prediction index of the horizontal-based mode is equal to a value generated by subtracting the integer value K from the intra prediction index of the horizontal mode.
  • the integer value K may be equal to four.
  • the intra prediction unit 22421 determines the candidate list modes based on the at least two reference modes.
  • the intra prediction unit 22421 may compare the at least two reference modes with each other and determine the candidate list modes based on the comparison result by using a plurality of mode determination rules. Different comparison results may correspond to different mode determination rules. For example, when the at least two reference modes are identical to each other, the candidate list modes may be derived based on the mode determination rule shown in the method 300. In addition, when the number of the at least one reference modes is equal to two and the at least two reference modes having the intra prediction indices A and B are different from each other, the candidate list modes may be derived based on the mode determination rule shown in the method 300. From the above rules, it is manifest that various determination rules may be used for implementing the concepts described in the present application without departing from the scope of those concepts.
  • the intra prediction units may still compare the at least two reference modes with each other and determine the candidate list modes based on the comparison result by using the mode determination rules.
  • the candidate list modes may be a plurality of most probable modes (MPMs) .
  • the intra prediction unit 22421 predicts the block unit based on the candidate list modes.
  • the intra prediction unit 22421 may parse a mode index and select a prediction mode, based on the mode index, from the candidate list modes. Then, the intra prediction unit 22421 may generate a plurality of predicted components for the block components based on the prediction mode.
  • the first summer 2244 of the decoder module 124 in the destination device 12 may add the predicted components into a plurality of residual components determined from the bitstream to reconstruct the block unit.
  • the decoder module 124 may reconstruct all of the other block units in the image frame for reconstructing the image frame and the video.
  • Another method for decoding video data by an electronic device is shown according to an implementation of the present disclosure. This method is an example only, as there are a variety of ways to perform decoding of the video data. This method may be performed using the configurations illustrated in FIG. 1 and FIG. 2.
  • the video data may be a bitstream, and the bitstream may include a plurality of flags and a plurality of indices.
  • the flags in the bitstream may include a plurality of prediction flags and the indices in the bitstream may include a plurality of prediction indices.
  • the prediction flags may include a first not_mode-A_flag for indicating whether a prediction mode of a block unit corresponding the first not_mode-A_flag is the intra prediction mode A or an intra prediction mode B.
  • the first not_mode-A_flag may be an intra_luma_not_Ver_flag for indicating whether the prediction mode of the block unit is a Vertical mode or a Horizontal mode.
  • the intra_luma_not_Ver_flag is equal to zero, the prediction mode of the block unit is the Vertical mode.
  • the intra_luma_not_Ver_flag is equal to one, the prediction mode of the block unit is the Horizontal mode.
  • the first not_mode-A_flag may be an intra_luma_not_Hor_flag for indicating whether the prediction mode of the block unit is the Horizontal mode or the Vertical mode.
  • the prediction mode of the block unit is the Horizontal mode.
  • the prediction mode of the block unit is the Vertical mode.
  • the Horizontal mode has a horizontal prediction direction and the Vertical mode has a vertical prediction direction.
  • the first not_mode-A_flag may be an intra_luma_not_planar_flag for indicating whether the prediction mode of the block unit is a Planar mode or a DC mode.
  • the intra_luma_not_planar_flag is equal to zero, the prediction mode of the block unit is the Planar mode.
  • the prediction mode of the block unit is the DC mode.
  • the prediction flags may include a second not_mode-A_flag for indicating whether the prediction mode of the block unit corresponding the second not_mode-A_flag is the intra prediction mode A or one of two predefined modes.
  • the second not_mode-A_flag may be an intra_luma_not_DC_flag for indicating whether the prediction mode of the block unit is the DC mode or one of the two predefined modes including the Vertical mode and the Horizontal mode.
  • the intra_luma_not_DC_flag is equal to zero
  • the prediction mode of the block unit is the DC mode.
  • the prediction mode of the block unit may be one of the Vertical mode and the Horizontal mode.
  • the bitstream may further include one of the intra_luma_not_Ver_flag and the intra_luma_not_Hor_flag for indicating whether the prediction mode is the vertical mode or the horizontal mode.
  • the prediction flags may include a third not_mode-A_flag for indicating whether the prediction mode of the block unit corresponding the third not_mode-A_flag is an intra prediction mode A or one of a plurality of most probable modes (MPMs) .
  • the bitstream may further include an MPM index for indicating one of the MPMs for the block unit.
  • the third not_mode-A_flag may be an intra_luma_not_Ver_flag for indicating whether the prediction mode of the block unit is the Vertical mode or one of the MPMs. When the intra_luma_not_Ver_flag is equal to zero, the prediction mode of the block unit is the Vertical mode.
  • the prediction mode of the block unit is one of the MPMs.
  • the third not_mode-A_flag may be an intra_luma_not_Hor_flag for indicating whether the prediction mode of the block unit is the Horizontal mode or one of the MPMs.
  • the prediction mode of the block unit is the Horizontal mode.
  • the prediction mode of the block unit is one of the MPMs.
  • the third not_mode-A_flag may be an intra_luma_not_DC_flag for indicating whether the prediction mode of the block unit is a DC mode or one of the MPMs.
  • the intra_luma_not_DC_flag is equal to zero
  • the prediction mode of the block unit is the DC mode.
  • the intra_luma_not_DC_flag is equal to one
  • the prediction mode of the block unit is one of the MPMs.
  • the bitstream may further include one of the intra_luma_not_Hor_flag and intra_luma_not_Ver_flag as another third not_mode-A_flag or the MPM index for indicating whether the prediction mode is the Horizontal mode, Vertical mode or one of the other MPMs.
  • the prediction flags may include a first not_mode-AB_flag for indicating whether the prediction mode of the block unit corresponding the first not_mode-AB_flag is one of two intra prediction modes A and B or one of two intra prediction modes C and D.
  • the first not_mode-AB_flag may be an intra_luma_not_Planar_DC_flag for indicating whether the prediction mode of the block unit is one of the Planar mode and the DC mode or one of the Vertical mode and the Horizontal mode.
  • the prediction mode of the block unit is one of the Planar mode and the DC mode and the bitstream may further include the intra_luma_not_Planar_flag as the first not_mode-A_flag.
  • the prediction mode of the block unit is one of the Vertical mode and the Horizontal mode and the bitstream may further include the one of the intra_luma_not_Ver_flag and the intra_luma_not_Hor_flag as the first not_mode-A_flag.
  • the prediction flags may include a second not_mode-AB_flag for indicating whether the prediction mode of the block unit corresponding the second not_mode-AB_flag is one of the two intra prediction modes A and B or one of the MPMs.
  • the bitstream may further include the MPM index for indicating one of the MPMs for the block unit.
  • the second not_mode-AB_flag may be an intra_luma_not_Ver_Hor_flag for indicating whether the prediction mode of the block unit is one of the Vertical mode and the Horizontal mode or one of the MPMs.
  • the prediction mode of the block unit is one of the Vertical mode and the Horizontal mode and the bitstream may further include the one of the intra_luma_not_Ver_flag and the intra_luma_not_Hor_flag as the first not_mode-A_flag.
  • the prediction mode of the block unit is one of the MPMs.
  • the second not_mode-AB_flag may be an intra_luma_not_Planar_DC_flag for indicating whether the prediction mode of the block unit is one of the Planar mode and the DC mode or one of the MPMs.
  • the prediction mode of the block unit is one of the Planar mode and the DC mode and the bitstream may further include the intra_luma_not_Planar_flag as the first not_mode-A_flag.
  • the prediction mode of the block unit is one of the MPMs.
  • the bitstream may further include one of the intra_luma_not_Hor_flag and intra_luma_not_Ver_flag as the third not_mode-A_flag or the MPM index for indicating whether the prediction mode is the Horizontal mode, Vertical mode or one of the other MPMs.
  • the prediction flags may include a not_mode-ABCD_flag for indicating whether the prediction mode of the block unit corresponding the not_mode-ABCD_flag is one of four intra prediction modes A, B, C and D or one of the MPMs.
  • the bitstream may further include the MPM index for indicating one of the MPMs for the block unit.
  • the not_mode-ABCD_flag may be an intra_luma_not_Planar_DC_Ver_Hor_flag for indicating whether the prediction mode of the block unit is one of the Planar mode, the DC mode, the Vertical mode and the Horizontal mode or one of the MPMs.
  • the prediction mode of the block unit is one of the Planar mode, the DC mode, the Vertical mode and the Horizontal mode.
  • the bitstream may further include the intra_luma_not_Planar_DC_flag as the first not_mode-AB_flag for indicating whether the prediction mode is one of the Planar mode and the DC mode or one of the Vertical mode and the Horizontal mode.
  • the bitstream may further include one of the intra_luma_not_DC_flag, the intra_luma_not_Ver_flag, the intra_luma_not_Hor_flag and an intra_luma_not_Planar_flag as the third not_mode-A_flag for indicating whether the prediction mode is the intra prediction mode A or one of the intra prediction modes B, C and D.
  • the intra_luma_not_Planar_DC_Ver_Hor_flag is equal to one, the prediction mode of the block unit is one of the MPMs.
  • At least one of the first not_mode-A_flag, the second not_mode-A_flag, the third not_mode-A_flag, the first not_mode-AB_flag, the second not_mode-AB_flag and not_mode-ABCD_flag may be directly added into the bitstream. In some implementations, at least one of the first not_mode-A_flag, the second not_mode-A_flag, the third not_mode-A_flag, the first not_mode-AB_flag, the second not_mode-AB_flag and not_mode-ABCD_flag may be substituted for at least one original flag in the bitstream.
  • FIG. 7 illustrates a block diagram of the encoder module 114 of the first electronic device 110 illustrated in FIG. 1 according to an implementation of the present disclosure.
  • the encoder module 114 may include a prediction processor (e.g., prediction process unit 7141) , at least a first summer (e.g., first summer 7142) and a second summer (e.g., second summer 7145) , a transform/quantization processor (e.g., transform/quantization unit 7143) , an inverse quantization/inverse transform processor (e.g., inverse quantization/inverse transform unit 7144) , a filter (e.g., filtering unit 7146) , a decoded picture buffer (e.g., decoded picture buffer 7147) , and an entropy encoder (e.g., entropy encoding unit 7148) .
  • a prediction processor e.g., prediction process unit 7141
  • a first summer e.g., first summer 7142
  • the prediction process unit 7141 of the encoder module 114 may further include a partition processor (e.g., partition unit 71411) , an intra prediction processor (e.g., intra prediction unit 71412) , and an inter prediction processor (e.g., inter prediction unit 71413) .
  • a partition processor e.g., partition unit 71411
  • an intra prediction processor e.g., intra prediction unit 71412
  • an inter prediction processor e.g., inter prediction unit 71413
  • the encoder module 114 may receive the source video and encode the source video to output a bitstream.
  • the encoder module 114 may receive source video including a plurality of image frames and then divide the image frames according to a coding structure. Each of the image frames may be divided into at least one image block.
  • the at least one image block may include a luminance block having a plurality of luminance samples and at least one chrominance block having a plurality of chrominance samples.
  • the luminance block and the at least one chrominance block may be further divided to generate macroblocks, coding tree units (CTUs) , coding blocks (CBs) , sub-divisions thereof, and/or another equivalent coding unit.
  • CTUs coding tree units
  • CBs coding blocks
  • the encoder module 114 may perform additional sub-divisions of the source video. It should be noted that the disclosed implementations are generally applicable to video coding regardless of how the source video is partitioned prior to and/or during the encoding.
  • the prediction process unit 7141 may receive a current image block of a specific one of the image frames.
  • the current image block may be the luminance block or one of the chrominance blocks in the specific image frame.
  • the partition unit 71411 may divide the current image block into multiple block units.
  • the intra prediction unit 71412 may perform intra-predictive coding of a current block unit relative 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 71413 may perform inter-predictive coding of the current block unit relative to one or more blocks in one or more reference image blocks to provide temporal prediction.
  • the prediction process unit 7141 may select one of the coding results generated by the intra prediction unit 71412 and the inter prediction unit 71413 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 process unit 7141 may determine the selected coding result and provide a predicted block corresponding to the selected coding result to the first summer 7142 for generating a residual block and to the second summer 7145 for reconstructing the encoded block unit.
  • the prediction process unit 7141 may further provide syntax elements such as motion vectors, intra mode indicators, partition information, and other syntax information to the entropy encoding unit 7148.
  • the intra prediction unit 71412 may intra predict the current block unit.
  • the intra prediction unit 71412 may determine an intra prediction mode directed toward a reconstructed sample neighboring the current block unit in order to encode the current block unit.
  • the intra prediction unit 71412 may encode the current block unit using various intra prediction modes.
  • the intra prediction unit 71412 of the prediction process unit 7141 may select an appropriate intra prediction mode from the selected modes.
  • the intra prediction unit 71412 may encode the current block unit using a cross component prediction mode to predict one of the two chroma components of the current block unit based on the luma components of the current block unit.
  • the intra prediction unit 71412 may predict a first one of the two chroma components of the current block unit based on the second of the two chroma components of the current block unit.
  • the inter prediction unit 71413 may inter predict the current block unit as an alternative to the intra prediction performed by the intra prediction unit 71412.
  • the inter prediction unit 71413 may perform motion estimation to estimate motion of the current block unit for generating a motion vector.
  • the motion vector may indicate a displacement of the current block unit within the current image block relative to a reference block unit within a reference image block.
  • the inter prediction unit 71413 may receive at least one reference image block stored in the decoded picture buffer 7147 and estimate the motion based on the received reference image blocks to generate the motion vector.
  • the first summer 7142 may generate the residual block by subtracting the prediction block determined by the prediction process unit 7141 from the original current block unit.
  • the first summer 7142 may represent the component or components that perform this subtraction.
  • the transform/quantization unit 7143 may apply a transform to the residual block in order to generate a residual transform coefficient and then quantize the residual transform coefficients to further reduce bit rate.
  • the transform may be one of a DCT, DST, AMT, MDNSST, HyGT, signal dependent transform, KLT, wavelet transform, integer transform, sub-band transform or a conceptually similar transform.
  • the transform may convert the residual information from a pixel value domain to a transform domain, such as a frequency domain.
  • the degree of quantization may be modified by adjusting a quantization parameter.
  • the transform/quantization unit 7143 may perform a scan of the matrix including the quantized transform coefficients.
  • the entropy encoding unit 7148 may perform the scan.
  • the entropy encoding unit 7148 may receive a plurality of syntax elements from the prediction process unit 7141 and the transform/quantization unit 7143 including a quantization parameter, transform data, motion vectors, intra modes, partition information, and other syntax information.
  • the entropy encoding unit 7148 may encode the syntax elements into the bitstream.
  • the entropy encoding unit 7148 may entropy encode the quantized transform coefficients by performing CAVLC, CABAC, SBAC, PIPE coding or another entropy coding technique to generate an encoded bitstream.
  • the encoded bitstream may be transmitted to another device (i.e., the second electronic device 120 in FIG. 1) or archived for later transmission or retrieval.
  • the inverse quantization/inverse transform unit 7144 may apply inverse quantization and inverse transformation to reconstruct the residual block in the pixel domain for later use as a reference block.
  • the second summer 7145 may add the reconstructed residual block to the prediction block provided from the prediction process unit 7141 in order to produce a reconstructed block for storage in the decoded picture buffer 7147.
  • the filtering unit 7146 may include a deblocking filter, a SAO filter, a bilateral filter, and/or an ALF to remove blocking artifacts from the reconstructed block. Additional filters (in loop or post loop) may be used in addition to the deblocking filter, the SAO filter, the bilateral filter and the ALF. Such filters are not illustrated for brevity and may filter the output of the second summer 7145.
  • the decoded picture buffer 7147 may be a reference picture memory that stores the reference block for use by the encoder module 114 to encode video, such as in intra or inter coding modes.
  • the decoded picture buffer 7147 may include a variety of memory devices such as DRAM, including SDRAM, MRAM, RRAM) , or other types of memory devices.
  • the decoded picture buffer 7147 may be on-chip with other components of the encoder module 114 or off-chip relative to those components.
  • the encoder module 114 may receive video data and use a plurality of prediction modes to predict a plurality of image frames in the video data.
  • the video data may be a video and the prediction modes may be indicated by a plurality of flags and a plurality of indices.
  • the prediction mode of a block unit may be indicated by a mode index.
  • the encoder module 114 may determine a plurality of neighboring positions neighboring to the block unit and determine a plurality of neighboring modes of the a plurality of neighboring blocks each covering one of the neighboring positions. Then, the encoder module 114 may determine the candidate list modes based on the method 300 by determining whether at least one of the first neighboring modes is included in a plurality of non-angular modes for determining a plurality of reference modes of the candidate list modes. In addition, the encoder module 114 may determine the mode list based on the method 500 by determining at least one candidate list based on the neighboring modes for generating more options for the candidate list modes.
  • the encoder module 114 may determine the candidate list modes based on the method 600 by comparing the number of a plurality of neighboring angular modes and the number of a plurality of neighboring non-angular modes for determining a plurality of reference modes of the candidate list modes.
  • the encoder module 114 may determine the mode list based on the at least one candidate list at block 540. In some implementations, the encoder module 114 combines all of the candidate list modes included in different candidate lists into the mode list. In some implementation, the encoder module 114 may select one of the at least one candidate list based on the block shape of the block unit. In some implementations, the encoder module 114 may select one of the at least one candidate list based on a list selection method, such as a cost function.
  • the list selection method may be a sum of absolute differences (SAD) process, a sum of absolute transformed differences (SATD) , or the RDO cost process.
  • the SAD process may be calculated by taking the absolute difference between the block unit and a prediction block of the block unit generated based on a MPM mode and a reference block.
  • the SATD process may be calculated by taking Hadamard transform of the difference between the block unit and a prediction block of the block unit generated based on a MPM mode and a reference block.
  • the RDO cost process may be calculated based on the block unit and the prediction block of the block unit generated based on a MPM mode and the reference block.
  • the encoder module 114 may select a specific one of the at least one candidate list including a candidate list mode having the minimum cost as the mode list for predicting the block unit. Then, the encoder module 114 may determine a list index to indicate the selected candidate list and add the list index into the bitstream for the decoder module 124 to reconstruct the block unit by determining the selected candidate list based on the list index of the bitstream.
  • the encoder module 114 selects one of the coding results generated by the intra prediction unit 71412 and the inter prediction unit 71413 based on a mode selection method, such as a cost function.
  • the mode selection method may be a rate-distortion optimization (RDO) process.
  • RDO rate-distortion optimization
  • the encoder module 114 determines a prediction mode based on the selected coding result, and the first summer 7142 of the encoder module 114 in the source device 110 may generate the residual block based on the prediction mode and provide a bitstream to the second electronic device 120 including the coefficients corresponding to the residual block.
  • the encoder module 114 may reconstruct the block unit based on the prediction mode for predicting the other block units in the image frame for predicting the image frame and the video.
  • the block unit may be reconstructed by adding the residual block of the block unit into a prediction block generated based on the prediction mode.
  • the encoder module 114 may signal a plurality of prediction flags and a plurality of prediction indices for indicating the prediction mode, and add the prediction flags and the prediction indices into the bitstream.
  • the prediction flags may include at least one of the first not_mode-A_flag, the second not_mode-A_flag, the third not_mode-A_flag, the first not_mode-AB_flag, the second not_mode-AB_flag and not_mode-ABCD_flag.
  • the decoder module 124 may determine the prediction flags from the bitstream for determining the prediction mode of the block unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Procédé de décodage de données vidéo par un dispositif électronique. Le dispositif électronique détermine une unité de bloc à partir d'une trame d'image selon les données vidéo et détermine une pluralité de premiers blocs voisins présentant chacun un premier mode voisin et recouvrant chacun un premier emplacement voisin adjacent à l'unité de bloc. Lorsqu'un ou plusieurs modes des premiers modes voisins sont compris dans une pluralité de modes non angulaires, le dispositif électronique détermine un ou plusieurs seconds blocs voisins présentant chacun un second mode voisin, recouvrant chacun un second emplacement voisin adjacent à l'unité de bloc et différents des premiers emplacements voisins. Le dispositif électronique détermine un ou plusieurs modes candidats voisins sur la base desdits seconds modes voisins, et détermine une pluralité de modes de liste candidats selon lesdits modes candidats voisins. L'unité de bloc est reconstruite sur la base des modes de liste candidats.
PCT/CN2021/128605 2020-11-05 2021-11-04 Dispositif et procédé de codage de données vidéo WO2022095918A1 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063110254P 2020-11-05 2020-11-05
US63/110,254 2020-11-05
US202163136161P 2021-01-11 2021-01-11
US63/136,161 2021-01-11

Publications (1)

Publication Number Publication Date
WO2022095918A1 true WO2022095918A1 (fr) 2022-05-12

Family

ID=81456963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/128605 WO2022095918A1 (fr) 2020-11-05 2021-11-04 Dispositif et procédé de codage de données vidéo

Country Status (1)

Country Link
WO (1) WO2022095918A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109196869A (zh) * 2016-05-13 2019-01-11 高通股份有限公司 帧内预测模式的基于邻近的发信号
US20190158828A1 (en) * 2017-11-17 2019-05-23 Fg Innovation Ip Company Limited Device and method for coding video data based on adjusted intra mode list
US20190208195A1 (en) * 2017-12-29 2019-07-04 FG Innovation Company Limited Device and method for coding video data based on mode list including different mode groups
US20190306494A1 (en) * 2018-03-28 2019-10-03 FG Innovation Company Limited Device and method for coding video data in multiple reference line prediction
US20200145672A1 (en) * 2018-11-05 2020-05-07 FG Innovation Company Limited Device and method for coding video data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109196869A (zh) * 2016-05-13 2019-01-11 高通股份有限公司 帧内预测模式的基于邻近的发信号
US20190158828A1 (en) * 2017-11-17 2019-05-23 Fg Innovation Ip Company Limited Device and method for coding video data based on adjusted intra mode list
US20190208195A1 (en) * 2017-12-29 2019-07-04 FG Innovation Company Limited Device and method for coding video data based on mode list including different mode groups
US20190306494A1 (en) * 2018-03-28 2019-10-03 FG Innovation Company Limited Device and method for coding video data in multiple reference line prediction
US20200145672A1 (en) * 2018-11-05 2020-05-07 FG Innovation Company Limited Device and method for coding video data

Similar Documents

Publication Publication Date Title
EP4216550A1 (fr) Dispositif et procédé de codage de données vidéo dans une prédiction de lignes de référence multiples
WO2019210840A1 (fr) Dispositif et procédé de codage de données vidéo sur la base de divers ensembles de référence dans une prédiction de modèle linéaire
EP3844950A1 (fr) Dispositif et procédé de codage de données vidéo
US11770548B2 (en) Device and method for coding video data based on one or more reference lines
US10924733B2 (en) Device and method for coding video data based on mode list including different mode groups
US20240089432A1 (en) Device and method for coding video data for geometric partitioning mode
US20200296363A1 (en) Device and method for coding video data
US11368704B2 (en) Device and method for coding video data
US11051029B2 (en) Device and method for coding video data
WO2022095918A1 (fr) Dispositif et procédé de codage de données vidéo
US20230217019A1 (en) Device and method for decoding video data
US20220417501A1 (en) Device and method for coding video data
WO2022268198A1 (fr) Dispositif et procédé de codage de données vidéo
US20220329813A1 (en) Device and method for coding video data
WO2022105721A1 (fr) Dispositif et procédé de codage de données vidéo
WO2023051541A1 (fr) Dispositif et procédé de codage de données vidéo
WO2023109899A1 (fr) Dispositif et procédé de codage de données vidéo
US20240129480A1 (en) Device and method for decoding video data
US11272179B2 (en) Device and method for coding video data
US11272199B2 (en) Device and method for coding video data
US20240137533A1 (en) Device and method for decoding video data
WO2022268207A1 (fr) Dispositif et procédé de partitionnement de blocs dans un codage vidéo
WO2023036341A1 (fr) Dispositif et procédé pour des prédictions intra dans un codage vidéo

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21888613

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21888613

Country of ref document: EP

Kind code of ref document: A1