Equivalent intra modes for non-intra predictive coding blocks

The method improves video coding by deriving directional intra-prediction modes from reconstructed samples and neighboring samples, addressing inefficiencies in existing systems and enhancing compression and decoding/encoding performance.

JP2025535117APending Publication Date: 2025-10-22INTERDIGITALCE PATENT HLDG SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025521120
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-10-11
Filing Date
2023-10-11
Publication Date
2025-10-22

AI Technical Summary

Technical Problem

Existing video coding systems face challenges in efficiently deriving directional intra-prediction modes for unidirectional intra-prediction, leading to suboptimal compression and decoding/encoding performance.

Method used

A method and device for deriving a directional intra-prediction mode based on reconstructed samples and neighboring samples, using techniques like histogram of gradients and multiple candidate modes, to enhance intra-prediction accuracy and transform selection for improved video coding.

Benefits of technology

Enhances video coding efficiency by accurately determining intra-prediction modes, reducing errors, and optimizing transform sets for better compression and decoding/encoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025535117000001_ABST
    Figure 2025535117000001_ABST
Patent Text Reader

Abstract

A video decoding device may determine that a current block is encoded in a non-directional intra-prediction mode (e.g., an inter-prediction mode, a cross-component prediction mode, a palette mode, an intra-block copy (IBC) mode, or an intra-template matching prediction (IntraTMP) mode). The device may derive a directional intra-prediction mode that corresponds to the non-directional intra-prediction mode. The derived directional intra-prediction mode may indicate a derived intra-prediction direction. The device may decode the current block based at least in part on the derived directional intra-prediction mode.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of European Provisional Patent Application No. EP22306526.9, filed October 11, 2022, the contents of which are incorporated herein by reference. [Background technology]

[0002] Video coding systems may be used to compress digital video signals, e.g., to reduce the storage and / or transmission bandwidth required for such signals. Video coding systems may include, for example, block-based systems, wavelet-based systems, and / or object-based systems. Summary of the Invention

[0003] A system, method and means for deriving an equivalent intra mode are disclosed.

[0004] An exemplary device (e.g., a video decoding device) may determine that a current block is coded in a unidirectional intra-prediction mode. The device may derive a directional intra-prediction mode that corresponds to the unidirectional intra-prediction mode. The derived directional intra-prediction mode may indicate a derived intra-prediction direction. The device may decode the current block based at least in part on the derived directional intra-prediction mode.

[0005] Similarly, an exemplary device (e.g., a video encoding device) may identify a unidirectional intra-prediction mode for encoding a current block. The device may derive a directional intra-prediction mode corresponding to the unidirectional intra-prediction mode. The derived directional intra-prediction mode may include a derived intra-prediction direction. The device may encode the current block based at least in part on the derived directional intra-prediction mode.

[0006] The device may obtain a predictive block of the current block using a non-directional intra-prediction mode. The device may obtain a plurality of reconstructed samples in the predictive block. The directional intra-prediction mode may be derived based on the plurality of reconstructed samples in the predictive block and a plurality of reconstructed neighboring samples of the current block.

[0007] The device may store the derived directional intra-prediction mode. The device may use the derived directional intra-prediction mode to generate a most probable mode (MPM) list for neighboring prediction blocks. The device may determine a low-frequency non-separable transform (LFNST) transform set based on the derived directional intra-prediction mode. The current block may be decoded / encoded based on the LFNST transform set. The device may determine a multiple transform selection (MTS) transform set based on the derived directional intra-prediction mode. The current block may be decoded / encoded based on the MTS transform set.

[0008] Deriving the directional intra-prediction mode may involve deriving the directional intra-prediction mode based on a histogram of gradients associated with reconstructed pixels neighboring the current block. Deriving the directional intra-prediction mode may involve testing multiple candidate directional intra-prediction modes on reconstructed pixels neighboring the current block, and selecting a directional intra-prediction mode from the multiple candidate directional intra-prediction modes based on the testing.

[0009] The device may obtain a prediction block for the current block using a non-directional intra-prediction mode. The device may obtain a plurality of reconstructed samples in the prediction block. The device may obtain a plurality of likely prediction modes. The device may calculate a plurality of predictions of the reconstructed samples in the prediction block based on the plurality of likely prediction modes. The device may calculate a plurality of prediction errors corresponding to the plurality of likely prediction modes based on the reconstructed samples in the prediction block and the corresponding plurality of predictions. The device may select a directional intra-prediction mode from among the plurality of likely prediction modes based on the plurality of prediction errors.

[0010] The non-directional intra prediction mode may be an inter prediction mode, a cross-component prediction mode, a palette mode, an intra block copy (IBC) mode, or an intra template matching prediction (IntraTMP) mode.

[0011] The device may select a low-frequency non-separable transform (LFNST) transform set based on the directional intra-prediction mode. The device may perform an inverse transform on the residual of the current block based on the LFNST transform set.

[0012] The device may select a multi-transform selection (MTS) transform set based on the directional intra-prediction mode. The device may perform an inverse transform on the residual of the current block based on the MTS transform set.

[0013] The video decoding device may include a processor configured to determine that a current block is coded in a non-intra prediction mode (e.g., not a directional intra prediction mode, a DC mode, or a Planar mode). For example, the non-intra prediction mode may be one or more of an inter prediction mode, a cross-component prediction mode, a palette mode, an intra block copy (IBC) mode, or an intra template matching prediction (IntraTMP) mode. An intra prediction mode corresponding to the non-intra prediction mode may be derived. The current block may be decoded based at least in part on the derived intra prediction mode.

[0014] In one example, a predictive block of a current block may be obtained using a non-intra prediction mode, and an intra prediction mode corresponding to the non-intra prediction mode may be derived based on the predictive block.

[0015] In one example, a predictive block of the current block may be obtained using a non-intra prediction mode, reconstructed samples in the predictive block may be obtained, and an intra prediction mode may be derived based on the reconstructed samples in the predictive block and reconstructed neighboring samples.

[0016] The intra-prediction mode may be derived by applying a decoder-side intra mode derivation (DIMD) process to at least one of a reconstructed template of the current block (e.g., a template around the current block, a template sample neighboring the current block), a predictive block of the current block obtained using a non-intra-prediction mode, or a reconstructed template within the predictive block. The intra-prediction mode may be derived by applying a template-based intra mode derivation (TIMD) process to at least one of a reconstructed template of the current block, a predictive block of the current block obtained using a non-intra-prediction mode, or a reconstructed template within the predictive block.

[0017] In one example, a prediction block of the current block may be obtained using a non-intra prediction mode. Reconstructed samples in the prediction block may be obtained. A likely prediction mode may be obtained. A prediction of the reconstructed samples in the prediction block may be calculated based on the likely prediction mode. A prediction error corresponding to the likely prediction mode may be calculated based on the reconstructed samples in the prediction block and the corresponding prediction. An intra prediction mode may be selected from the likely prediction modes based on the prediction error. The intra prediction mode may be selected based on a determination that the prediction error corresponding to the intra prediction mode is the smallest of the prediction errors.

[0018] In one example, a predictive block of the current block may be obtained using a non-intra prediction mode. Samples in the predictive block may be obtained. A directivity of the predictive block may be determined based on the samples in the predictive block. An intra prediction mode may be derived based on the determined directivity of the predictive block.

[0019] The video encoding device may include a processor configured to identify a non-intra-prediction mode for encoding a current block. An intra-prediction mode corresponding to the non-intra-prediction mode may be derived. The current block may be encoded based at least in part on the derived intra-prediction mode. [Brief explanation of the drawings]

[0020] Furthermore, like reference numbers in the figures indicate like elements as follows:

[0021] [Figure 1A] FIG. 1 is a system diagram illustrating an example communication system in which one or more disclosed embodiments may be implemented. [Figure 1B] 1B is a system diagram illustrating an exemplary wireless transmit / receive unit (WTRU) that may be used within the communication system shown in FIG. 1A, according to one embodiment. [Figure 1C] 1B is a system diagram illustrating an example radio access network (RAN) and an example core network (CN) that may be used within the communication system shown in FIG. 1A, according to one embodiment. [Figure 1D] FIG. 1B is a system diagram illustrating a further exemplary RAN and a further exemplary CN that may be used within the communication system shown in FIG. 1A, according to one embodiment. [Figure 2] FIG. 1 illustrates an exemplary video encoder. [Figure 3] FIG. 1 illustrates an exemplary video decoder. [Figure 4] FIG. 1 illustrates an example of a system in which various aspects and examples may be implemented. [Figure 5A] FIG. 2 illustrates exemplary prediction modes and prediction directions. [Figure 5B] FIG. 2 illustrates exemplary prediction modes and prediction directions. [Figure 5C] FIG. 2 illustrates exemplary prediction modes and prediction directions. [Figure 6] FIG. 10 shows an example of a template of the current luminance and decoded reference samples of the template. [Figure 7] FIG. 10 illustrates adjacent reconstructed samples used, for example, for decoder-side intra mode derivation (DIMD) chroma modes. [Figure 8] FIG. 1 is a diagram illustrating an example of matrix weighted intra prediction (MIP) processing. [Figure 9] FIG. 10 illustrates exemplary locations of samples used in cross-component linear model (CCLM) mode. [Figure 10A] FIG. 10 illustrates an exemplary effect of a gradient adjustment parameter. [Figure 10B] FIG. 10 illustrates an exemplary effect of a gradient adjustment parameter. [Figure 11] FIG. 1 illustrates the spatial part of a convolution filter. [Figure 12] FIG. 1 illustrates an exemplary reference area for intra block copy (IBC) when a coding tree unit (CTU) is coded. [Figure 13] FIG. 1 illustrates an exemplary intra-template matching search area. [Figure 14] FIG. 2 illustrates an example of a block coded in palette mode. [Figure 15A] FIG. 1 illustrates an example geometric partitioning mode (GPM) with inter- and intra-prediction. [Figure 15B] FIG. 1 illustrates an example geometric partitioning mode (GPM) with inter- and intra-prediction. [Figure 15C] FIG. 1 illustrates an example geometric partitioning mode (GPM) with inter- and intra-prediction. [Figure 15D] FIG. 1 illustrates an example geometric partitioning mode (GPM) with inter- and intra-prediction. [Figure 16] 10 is a table of available neighboring block positions for intra-prediction mode (IPM) candidate derivation based on the angle of GPM block boundaries. [Figure 17] FIG. 1 illustrates an exemplary region of interest (ROI). [Figure 18] FIG. 1 illustrates an exemplary ROI. [Figure 19] FIG. 10 illustrates an example mapping of intra-prediction modes to low-frequency non-separable transform (LFNST) set indices. [Figure 20] FIG. 1 illustrates exemplary neighboring blocks commonly used to derive a Most Probable Mode (MPM) list. [Figure 21] FIG. 10 is a diagram illustrating an example of deriving an equivalent mode. [Figure 22A] FIG. 1 illustrates an exemplary DIMD process. [Figure 22B] FIG. 1 illustrates MIP equivalent mode derivation. [Figure 23] FIG. 1 illustrates an exemplary coding block partitioning scheme. [Figure 24] 10 is an exemplary flowchart for decoding a current block. [Figure 25] 1 is an exemplary flowchart for encoding a current block. DETAILED DESCRIPTION OF THE INVENTION

[0022] 1A illustrates an example communication system 100 in which one or more disclosed embodiments may be implemented. The communication system 100 may be a multiple-access system that provides content, such as voice, data, video, messaging, broadcasts, etc., to multiple wireless users. The communication system 100 may enable the multiple wireless users to access such content through the sharing of system resources, including wireless bandwidth. For example, the communication system 100 may employ one or more channel access methods, such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single-carrier FDMA (SC-FDMA), zero-tailed unique word DFT spread OFDM (ZT UW DFT-s OFDM), unique word OFDM (UW-OFDM), resource block-filtered OFDM, filter bank multicarrier (FBMC), etc.

[0023] 1A, communications system 100 may include wireless transmit / receive units (WTRUs) 102a, 102b, 102c, 102d, RANs 104 / 113, CNs 106 / 115, public switched telephone network (PSTN) 108, the Internet 110, and other networks 112, although it will be appreciated that the disclosed embodiments contemplate any number of WTRUs, base stations, networks, and / or network elements. Each of WTRUs 102a, 102b, 102c, 102d may be any type of device configured to operate and / or communicate in a wireless environment. For example, the WTRUs 102a, 102b, 102c, 102d, any of which may be referred to as a “station” and / or “STA,” may be configured to transmit and / or receive wireless signals and may include user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a subscription-based unit, a pager, a cellular phone, a personal digital assistant (PDA), a smartphone, a laptop, a netbook, a personal computer, a wireless sensor, a hotspot or Mi-Fi device, an Internet of Things (IoT) device, a watch or other wearable, a head-mounted display (HMD), a vehicle, a drone, a medical device and application (e.g., remote surgery), an industrial device and application (e.g., robots and / or other wireless devices operating in an industrial and / or automated processing chain context), a consumer electronics device, a device operating on a commercial and / or industrial wireless network, etc. Any of the WTRUs 102a, 102b, 102c, and 102d may be referred to interchangeably as a UE.

[0024] The communications system 100 may also include a base station 114a and / or a base station 114b. Each of the base stations 114a, 114b may be any type of device configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, 102d to facilitate access to one or more communications networks, such as the CN 106 / 115, the Internet 110, and / or other networks 112. For example, the base stations 114a, 114b may be a base transceiver station (BTS), a Node B, an eNodeB, a Home Node B, a Home eNodeB, a gNB, an NR Node B, a site controller, an access point (AP), a wireless router, etc. While the base station 114a, 114b is shown as a single element, it will be appreciated that the base station 114a, 114b may include any number of interconnected base stations and / or network elements.

[0025] The base station 114a may be part of the RAN 104 / 113, which may also include other base stations and / or network elements (not shown), such as a base station controller (BSC), a radio network controller (RNC), relay nodes, etc. The base station 114a and / or base station 114b may be configured to transmit and / or receive wireless signals on one or more carrier frequencies, sometimes referred to as a cell (not shown). These frequencies may be in the licensed spectrum, the unlicensed spectrum, or a combination of the licensed and unlicensed spectrum. A cell may provide coverage for wireless services in a particular geographic area, which may be relatively fixed or may change over time. A cell may be further divided into cell sectors. For example, the cell associated with the base station 114a may be divided into three sectors. Thus, in one embodiment, the base station 114a may include three transceivers, i.e., one for each sector of the cell. In one embodiment, the base station 114a may employ multiple-input multiple-output (MIMO) technology and utilize multiple transceivers per sector of the cell. For example, beamforming may be used to transmit and / or receive signals in desired spatial directions.

[0026] The base stations 114a, 114b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 116, which may be any suitable wireless communication link (e.g., radio frequency (RF), microwave, centimeter wave, micrometer wave, infrared (IR), ultraviolet (UV), visible light, etc.). The air interface 116 may be established using any suitable radio access technology (RAT).

[0027] More particularly, as noted above, the communication system 100 may be a multiple-access system and may employ one or more channel access schemes, such as CDMA, TDMA, FDMA, OFDMA, SC-FDMA, etc. For example, the base stations 114a and WTRUs 102a, 102b, 102c in the RAN 104 / 113 may implement a radio technology such as Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA), which may establish the air interface 115 / 116 / 117 using Wideband CDMA (WCDMA). WCDMA may include communication protocols such as High Speed ​​Packet Access (HSPA) and / or Evolved HSPA (HSPA+). HSPA may include High Speed ​​Downlink (DL) Packet Access (HSDPA) and / or High Speed ​​UL Packet Access (HSUPA).

[0028] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as Evolved UMTS Terrestrial Radio Access (E-UTRA), which may establish the air interface 116 using Long Term Evolution (LTE) and / or LTE Advanced (LTE-A) and / or LTE Advanced Pro (LTE-A Pro).

[0029] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as New Radio (NR) radio access, which may establish the air interface 116 using NR.

[0030] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement multiple radio access technologies. For example, the base station 114a and the WTRUs 102a, 102b, 102c may jointly implement LTE and NR radio access, e.g., using a dual connectivity (DC) principle. Thus, the air interface utilized by the WTRUs 102a, 102b, 102c may be characterized by multiple types of radio access technologies and / or transmissions sent to and from multiple types of base stations (e.g., eNBs and gNBs).

[0031] In other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement a wireless technology such as IEEE 802.11 (i.e., Wireless Fidelity (WiFi)), IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000EV-DO, Interim Standard 2000 (IS-2000), Interim Standard 95 (IS-95), Interim Standard 856 (IS-856), Global System for Mobile communications (GSM), Enhanced Data Rates for GSM Evolution (EDGE), GSM EDGE (GERAN), or the like.

[0032] 1A may be, for example, a wireless router, a Home NodeB, a Home eNodeB, or an access point and may utilize any suitable RAT to facilitate wireless connectivity in a local area, such as a workplace, a home, a vehicle, a premises, an industrial facility, an air corridor (e.g., for use by drones), a road, etc. In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.11 to establish a wireless local area network (WLAN). In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.15 to establish a wireless personal area network (WPAN). In yet another embodiment, the base station 114b and the WTRUs 102c, 102d may utilize a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) to establish a picocell or femtocell. 1A, the base station 114b may have a direct connection to the Internet 110. Therefore, the base station 114b may not need to access the Internet 110 via the CN 106 / 115.

[0033] The RAN 104 / 113 may be in communication with the CN 106 / 115, which may be any type of network configured to provide voice, data, application, and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. The data may have varying Quality of Service (QoS) requirements, such as different throughput, latency, error resilience, reliability, data throughput, mobility, etc. The CN 106 / 115 may provide call control, billing services, mobile location services, prepaid calling, Internet connectivity, video distribution, etc., and / or perform high-level security functions such as user authentication. Although not shown in FIG. 1A , it will be appreciated that the RAN 104 / 113 and / or the CN 106 / 115 may be in direct or indirect communication with other RANs employing the same RAT as the RAN 104 / 113 or a different RAT. For example, in addition to being connected to the RAN 104 / 113, which may utilize NR radio technology, the CN 106 / 115 may also be in communication with another RAN (not shown) that employs GSM, UMTS, CDMA2000, WiMAX, E-UTRA, or WiFi radio technology.

[0034] The CN 106 / 115 may also serve as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 110, and / or other networks 112. The PSTN 108 may include a circuit-switched telephone network providing plain old telephone service (POTS). The Internet 110 may include a global system of interconnected computer networks and devices that use common communication protocols, such as TCP, UDP, and / or IP in the TCP / IP Internet protocol suite. The network 112 may include wired and / or wireless communication networks owned and / or operated by other service providers. For example, the network 112 may include another CN connected to one or more RANs, which may employ the same RAT as the RAN 104 / 113 or a different RAT.

[0035] Some or all of the WTRUs 102a, 102b, 102c, 102d in the communications system 100 may include multi-mode capabilities (e.g., the WTRUs 102a, 102b, 102c, 102d may include multiple transceivers for communicating with different wireless networks over different wireless links). For example, the WTRU 102c shown in FIG. 1A may be configured to communicate with a base station 114a that may employ cellular-based wireless technology and with a base station 114b that may employ IEEE 802 wireless technology.

[0036] 1B is a system diagram illustrating an example WTRU 102. As shown in FIG. 1B, the WTRU 102 may include, among other things, a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a keypad 126, a display / touchpad 128, non-removable memory 130, removable memory 132, a power source 134, a GPS chipset 136, and / or other peripherals 138. It will be appreciated that the WTRU 102 may include any sub-combination of the above elements while remaining consistent with an embodiment.

[0037] The processor 118 may be a general-purpose processor, a special-purpose processor, a conventional processor, a digital signal processor (DSP), multiple microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) circuit, other types of integrated circuits (ICs), a state machine, etc. As alluded to above, the processor 118 may include multiple processors. The processor 118 may perform signal coding, data processing, power control, input / output processing, and / or any other functionality that enables the WTRU 102 to operate in a wireless environment. The processor 118 may be coupled to the transceiver 120, which may be coupled to the transmit / receive element 122. While FIG. 1B depicts the processor 118 and the transceiver 120 as separate components, it will be appreciated that the processor 118 and the transceiver 120 may be integrated together in an electronic package or chip.

[0038] The transmit / receive element 122 may be configured to transmit signals to or receive signals from a base station (e.g., the base station 114a) over the air interface 116. For example, in one embodiment, the transmit / receive element 122 may be an antenna configured to transmit and / or receive RF signals. In one embodiment, the transmit / receive element 122 may be an emitter / detector configured to transmit and / or receive IR, UV, or visible light signals, for example. In another embodiment, the transmit / receive element 122 may be configured to transmit and / or receive both RF and light signals. It will be appreciated that the transmit / receive element 122 may be configured to transmit and / or receive any combination of wireless signals.

[0039] 1B as a single element, the WTRU 102 may include any number of transmit / receive elements 122. More particularly, the WTRU 102 may employ MIMO technology. Thus, in one embodiment, the WTRU 102 may include two or more transmit / receive elements 122 (e.g., multiple antennas) for transmitting and receiving wireless signals over the air interface 116.

[0040] The transceiver 120 may be configured to modulate signals to be transmitted by the transmit / receive element 122 and demodulate signals received by the transmit / receive element 122. As mentioned above, the WTRU 102 may have multi-mode capabilities. Thus, the transceiver 120 may include multiple transceivers to enable the WTRU 102 to communicate via multiple RATs, such as, for example, NR and IEEE 802.11.

[0041] The processor 118 of the WTRU 102 may be coupled to and may receive user input data from a speaker / microphone 124, a keypad 126, and / or a display / touchpad 128 (e.g., a liquid crystal display (LCD) display unit or an organic light emitting diode (OLED) display unit). The processor 118 may also output user data to the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128. Furthermore, the processor 118 may access information from and store data in any type of suitable memory, such as non-removable memory 130 and / or removable memory 132. The non-removable memory 130 may include random access memory (RAM), read-only memory (ROM), a hard disk, or other types of memory storage devices. The removable memory 132 may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, etc. In other embodiments, the processor 118 may access information from, and store data in, memory that is not physically located on the WTRU 102, such as on a server or home computer (not shown).

[0042] The processor 118 may receive power from the power source 134 and may be configured to distribute and / or control power to other components in the WTRU 102. The power source 134 may be any suitable device for powering the WTRU 102. For example, the power source 134 may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel-metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, etc.

[0043] The processor 118 may also be coupled to a GPS chipset 136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 102. In addition to, or instead of, information from the GPS chipset 136, the WTRU 102 may receive location information from base stations (e.g., base stations 114a, 114b) over the air interface 116 and / or determine its location based on the timing of signals received from two or more nearby base stations. It will be appreciated that the WTRU 102 may obtain location information by way of any suitable location determination method while remaining consistent with an embodiment.

[0044] The processor 118 may further be coupled to other peripherals 138, which may include one or more software and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, the peripherals 138 may include an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photos and / or videos), a USB port, a vibration device, a television transceiver, a hands-free headset, a Bluetooth module, a frequency modulation (FM) radio unit, a digital music player, a media player, a video game player module, an internet browser, a virtual reality and / or augmented reality (VR / AR) device, an activity tracker, etc. The peripherals 138 may include one or more sensors, which may be one or more of a gyroscope, an accelerometer, a Hall effect sensor, an orientation sensor, a proximity sensor, a temperature sensor, a time sensor, a geolocation sensor, an altimeter, a light sensor, a touch sensor, a magnetometer, a barometer, a gesture sensor, a biometric sensor, and / or a humidity sensor.

[0045] The WTRU 102 may include a full-duplex radio in which transmission and reception of some or all of the signals (associated with a particular subframe for both the UL (e.g., for transmission) and the downlink (e.g., for reception)) may be parallel and / or simultaneous. The full-duplex radio may include an interference management unit to reduce and / or substantially eliminate self-interference either through hardware (e.g., chokes) or signal processing via a processor (e.g., a separate processor (not shown) or via processor 118). In one embodiment, the WTRU 102 may include a half-duplex radio for transmission and reception of some or all of the signals (associated with a particular subframe for either the UL (e.g., for transmission) or the downlink (e.g., for reception)).

[0046] 1C is a system diagram illustrating the RAN 104 and the CN 106, according to one embodiment. As noted above, the RAN 104 may employ E-UTRA radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 104 may also be in communication with the CN 106.

[0047] The RAN 104 may include eNodeBs 160a, 160b, and 160c, although it will be appreciated that the RAN 104 may include any number of eNodeBs while remaining consistent with an embodiment. The eNodeBs 160a, 160b, and 160c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, and 102c over the air interface 116. In one embodiment, the eNodeBs 160a, 160b, and 160c may implement MIMO technology. Thus, the eNodeB 160a, for example, may use multiple antennas to transmit wireless signals to and / or receive wireless signals from the WTRU 102a.

[0048] Each of the eNodeBs 160a, 160b, 160c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in the UL and / or DL, etc. As shown in FIG. 1C, the eNodeBs 160a, 160b, 160c may communicate with one another via an X2 interface.

[0049] 1C may include a mobility management entity (MME) 162, a serving gateway (SGW) 164, and a packet data network (PDN) gateway (or PGW) 166. While each of the above elements is shown as part of the CN 106, it will be appreciated that any of these elements may be owned and / or operated by an entity other than the CN operator.

[0050] The MME 162 may be connected to each of the eNodeBs 160a, 160b, 160c in the RAN 104 via an S1 interface and may act as a control node. For example, the MME 162 may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, activating / deactivating bearers, selecting a particular serving gateway for the initial attach of the WTRUs 102a, 102b, 102c, etc. The MME 162 may provide a control plane function for switching between the RAN 104 and other RANs (not shown) that employ other radio technologies such as GSM and / or WCDMA.

[0051] The SGW 164 may be connected to each of the eNodeBs 160a, 160b, 160c in the RAN 104 via an S1 interface. The SGW 164 may generally route and forward user data packets to and from the WTRUs 102a, 102b, 102c. The SGW 164 may perform other functions such as anchoring the user plane during handovers between eNodeBs, triggering paging when DL data is available for the WTRUs 102a, 102b, 102c, managing and storing the context of the WTRUs 102a, 102b, 102c, etc.

[0052] The SGW 164 may be connected to a PGW 166 that may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks, such as the Internet 110, to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices.

[0053] The CN 106 may facilitate communication with other networks. For example, the CN 106 may provide the WTRUs 102a, 102b, 102c with access to circuit-switched networks, such as the PSTN 108, to facilitate communication between the WTRUs 102a, 102b, 102c and traditional fixed communication devices. For example, the CN 106 may include or communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between the CN 106 and the PSTN 108. Additionally, the CN 106 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers.

[0054] Although the WTRU is depicted in FIGS. 1A-1D as a wireless terminal, in some representative embodiments in which such a terminal may be used (e.g., temporarily or permanently), it is contemplated that wired communications will interface with the communications network.

[0055] In a representative embodiment, the other network 112 may be a WLAN.

[0056] A WLAN in infrastructure basic service set (BSS) mode may have an access point (AP) for the BSS and one or more stations (STAs) associated with the AP. The AP may have access to or interface with a distribution system (DS) or another type of wired / wireless network that carries traffic into and out of the BSS. Traffic to a STA originating from outside the BSS may arrive through the AP and be sent to the STA. Traffic originating from a STA to a destination outside the BSS may be sent to the AP for delivery to the respective destination. Traffic between STAs within a BSS may be sent through the AP, e.g., where a source STA may send traffic to the AP, and the AP may send traffic to the destination STA. Traffic between STAs within a BSS may be considered and / or referred to as peer-to-peer traffic. Peer-to-peer traffic may be sent between (e.g., directly between) a source STA and a destination STA using direct link setup (DLS). In some representative embodiments, the DLS may use 802.11e DLS or 802.11z tunneled DLS (TDLS). A WLAN using an Independent BSS (IBSS) mode may not have an AP, and the STAs within or using the IBSS (e.g., all of the STAs) can communicate directly with each other. The IBSS communication mode is sometimes referred to herein as an "ad hoc" communication mode.

[0057] When using the 802.11ac infrastructure mode of operation or a similar mode of operation, an AP can transmit beacons on a fixed channel, such as a primary channel. The primary channel can be a fixed width (e.g., a 20 MHz wide bandwidth) or dynamically set via signaling. The primary channel can be the operating channel of the BSS and can be used by STAs to establish a connection with the AP. In some representative embodiments, carrier sense multiple access with collision avoidance (CSMA / CA) can be implemented, for example, in an 802.11 system. In CSMA / CA, STAs (e.g., every STA), including the AP, can sense the primary channel. If the primary channel is sensed / detected by a particular STA and / or determined to be busy, the particular STA can back off. One STA (e.g., only one station) can transmit at a given time in a given BSS.

[0058] High-throughput (HT) STAs may use 40 MHz wide channels for communication, for example, via combination of a primary 20 MHz channel with adjacent or non-adjacent 20 MHz channels to form a 40 MHz wide channel.

[0059] A Very High Throughput (VHT) STA can support 20 MHz, 40 MHz, 80 MHz, and / or 160 MHz wide channels. 40 MHz and / or 80 MHz channels can be formed by combining contiguous 20 MHz channels. A 160 MHz channel can be formed by combining eight contiguous 20 MHz channels or by combining two non-contiguous 80 MHz channels, sometimes referred to as an 80+80 configuration. In the 80+80 configuration, data, after channel encoding, can be passed through a segment parser that can split the data into two streams. Inverse Fast Fourier Transform (IFFT) processing and time-domain processing can be performed separately on each stream. The streams can be mapped onto two 80 MHz channels, and the data can be transmitted by the transmitting STA. At the receiver of the receiving STA, the operations described above for the 80+80 configuration can be reversed, and the combined data can be sent to the Medium Access Control (MAC).

[0060] Sub-1 GHz operating modes are supported by 802.11af and 802.11ah. Channel operating bandwidths and carriers are reduced in 802.11af and 802.11ah compared to those used in 802.11n and 802.11ac. 802.11af supports 5 MHz, 10 MHz, and 20 MHz bandwidths in the TV White Space (TVWS) spectrum, while 802.11ah supports 1 MHz, 2 MHz, 4 MHz, 8 MHz, and 16 MHz bandwidths using non-TVWS spectrum. According to representative embodiments, 802.11ah can support meter-type control / machine-type communications, such as MTC devices, in macro coverage areas. MTC devices can have limited capabilities, including, for example, support for some and / or limited bandwidths (e.g., only support for some). MTC devices can include batteries with above-threshold battery life (e.g., to maintain very long battery life).

[0061] WLAN systems that can support multiple channels and channel bandwidths, such as 802.11n, 802.11ac, 802.11af, and 802.11ah, include a channel that can be designated as a primary channel. The primary channel can have a bandwidth equal to the largest common operating bandwidth supported by all STAs in the BSS. The bandwidth of the primary channel can be set and / or limited by the STA that supports the smallest bandwidth operating mode among all STAs operating in the BSS. In an 802.11ah example, the primary channel can be 1 MHz wide for a STA (e.g., an MTC-type device) that supports (e.g., only supports) the 1 MHz mode, even if the AP and other STAs in the BSS support 2 MHz, 4 MHz, 8 MHz, 16 MHz, and / or other channel bandwidth operating modes. Carrier sensing and / or network allocation vector (NAV) setting can depend on the status of the primary channel. For example, if the primary channel is busy for a STA (that only supports 1 MHz mode of operation), it may be considered busy to transmit the entire available frequency band to the AP, even though most of the frequency band may remain idle and be available for use.

[0062] In the United States, the available frequency bands that can be used by 802.11ah are from 902 MHz to 928 MHz. In South Korea, the available frequency bands are from 917.5 MHz to 923.5 MHz. In Japan, the available frequency bands are from 916.5 MHz to 927.5 MHz. The total available bandwidth for 802.11ah is 6 MHz to 26 MHz depending on the country code.

[0063] 1D is a system diagram illustrating the RAN 113 and the CN 115, according to one embodiment. As noted above, the RAN 113 may employ NR radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 113 may also be in communication with the CN 115.

[0064] The RAN 113 may include gNBs 180a, 180b, and 180c, although it will be appreciated that the RAN 113 may include any number of gNBs while remaining consistent with an embodiment. The gNBs 180a, 180b, and 180c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, and 102c over the air interface 116. In one embodiment, the gNBs 180a, 180b, and 180c may implement MIMO technology. For example, the gNBs 180a, 180b may utilize beamforming to transmit signals to and / or receive signals from the gNBs 180a, 180b, and 180c. Thus, the gNB 180a may use multiple antennas to transmit wireless signals to and / or receive wireless signals from, for example, the WTRU 102a. In one embodiment, the gNBs 180a, 180b, 180c may implement carrier aggregation technology. For example, the gNB 180a may transmit multiple component carriers to the WTRU 102a (not shown). A subset of these component carriers may be on an unlicensed spectrum, while the remaining component carriers may be on a licensed spectrum. In one embodiment, the gNBs 180a, 180b, 180c may implement coordinated multipoint (CoMP) technology. For example, the WTRU 102a may receive coordinated transmissions from the gNBs 180a and 180b (and / or 180c).

[0065] The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using scalable numerology-related transmissions. For example, the OFDM symbol spacing and / or OFDM subcarrier spacing may vary for different transmissions, cells, and / or portions of the wireless transmission spectrum. The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using subframes or transmission time intervals (TTIs) of varying or scalable lengths (e.g., including various numbers of OFDM symbols and / or lasting for varying lengths of absolute time).

[0066] The gNBs 180a, 180b, 180c may be configured to communicate with the WTRUs 102a, 102b, 102c in a standalone configuration and / or a non-standalone configuration. In a standalone configuration, the WTRUs 102a, 102b, 102c can communicate with the gNBs 180a, 180b, 180c without accessing another RAN (e.g., eNodeBs 160a, 160b, 160c, etc.). In a standalone configuration, the WTRUs 102a, 102b, 102c can utilize one or more of the gNBs 180a, 180b, 180c as mobility anchor points. In a standalone configuration, the WTRUs 102a, 102b, 102c can communicate with the gNBs 180a, 180b, 180c using signals in unlicensed bands. In a non-standalone configuration, the WTRUs 102a, 102b, 102c may communicate with / connect to a gNB 180a, 180b, 180c while also communicating with / connecting to another RAN, such as an eNodeB 160a, 160b, 160c. For example, the WTRUs 102a, 102b, 102c may implement a DC principle to communicate with one or more gNBs 180a, 180b, 180c and one or more eNodeBs 160a, 160b, 160c substantially simultaneously. In a non-standalone configuration, the eNodeBs 160a, 160b, 160c may act as mobility anchors for the WTRUs 102a, 102b, 102c, and the gNBs 180a, 180b, 180c may provide additional coverage and / or throughput for serving the WTRUs 102a, 102b, 102c.

[0067] Each of the gNBs 180a, 180b, 180c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in the UL and / or DL, support for network slicing, dual connectivity, interconnection between NR and E-UTRA, routing of user plane data towards user plane functions (UPFs) 184a, 184b, routing of control plane information towards access and mobility management functions (AMFs) 182a, 182b, etc. As shown in FIG. 1D, the gNBs 180a, 180b, 180c may communicate with each other via an Xn interface.

[0068] 1D may include at least one AMF 182a, 182b, at least one UPF 184a, 184b, at least one Session Management Function (SMF) 183a, 183b, and, optionally, a Data Network (DN) 185a, 185b. While each of the above elements is shown as part of the CN 115, it will be appreciated that any of these elements may be owned and / or operated by an entity other than the CN operator.

[0069] The AMF 182a, 182b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via an N2 interface and may act as a control node. For example, the AMF 182a, 182b may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, supporting network slicing (e.g., handling different PDU sessions with different requirements), selecting a particular SMF 183a, 183b, managing registration areas, terminating NAS signaling, mobility management, etc. Network slicing may be used by the AMF 182a, 182b to customize the CN support of the WTRUs 102a, 102b, 102c based on the type of service being utilized by the WTRUs 102a, 102b, 102c. For example, different network slices may be established for different use cases, such as services relying on highly reliable and low latency (URLLC) access, services relying on enhanced massive mobile broadband (eMBB) access, services with machine-type communications (MTC) access, etc. The AMF 162 may provide a control plane function for switching between the RAN 113 and other RANs (not shown) that employ other radio technologies, such as LTE, LTE-A, LTE-A Pro, and / or non-3GPP access technologies, such as WiFi.

[0070] The SMFs 183a and 183b may be connected to the AMFs 182a and 182b in the CN 115 via an N11 interface. The SMFs 183a and 183b may also be connected to the UPFs 184a and 184b in the CN 115 via an N4 interface. The SMFs 183a and 183b may select and control the UPFs 184a and 184b and configure the routing of traffic through the UPFs 184a and 184b. The SMFs 183a and 183b may perform other functions such as managing and allocating UE IP addresses, managing PDU sessions, enforcing policy and controlling QoS, providing downlink data notifications, etc. The type of PDU session may be IP-based, non-IP-based, Ethernet-based, etc.

[0071] The UPFs 184a, 184b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via an N3 interface, which may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks such as the Internet 110 to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices. The UPFs 184a, 184b may perform other functions such as routing and forwarding packets, enforcing user plane policies, supporting multi-homed PDU sessions, handling user plane QoS, buffering downlink packets, providing mobility anchoring, etc.

[0072] The CN 115 may facilitate communication with other networks. For example, the CN 115 may include or communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between the CN 115 and the PSTN 108. Additionally, the CN 115 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers. In one embodiment, the WTRUs 102a, 102b, 102c may be connected to the local data networks (DNs) 185a, 185b through the UPFs 184a, 184b via an N3 interface to the UPFs 184a, 184b and an N6 interface between the UPFs 184a, 184b and the DNs 185a, 185b.

[0073] 1A-1D and the corresponding description thereof, one or more or all of the functions described herein with respect to one or more of the WTRUs 102a-d, base stations 114a-b, eNodeBs 160a-c, MME 162, SGW 164, PGW 166, gNBs 180a-c, AMFs 182a-b, UPFs 184a-b, SMFs 183a-b, DNs 185a-b, and / or any other devices described herein may be performed by one or more emulation devices (not shown). The emulation devices may be one or more devices configured to emulate one or more or all of the functions described herein. For example, the emulation devices may be used to test other devices and / or simulate network and / or WTRU functionality.

[0074] The emulation device may be designed to perform one or more tests of other devices in a lab environment and / or an operator network environment. For example, one or more emulation devices may perform one or more or all functions while fully or partially implemented and / or deployed as part of a wired and / or wireless communication network to test other devices in the communication network. One or more emulation devices may perform one or more or all functions while temporarily implemented / deployed as part of a wired and / or wireless communication network. The emulation device may be directly coupled to another device to be able to test and / or perform tests using over-the-air wireless communication.

[0075] The one or more emulation devices may perform one or more functions, including but not limited to, without being implemented / deployed as part of a wired and / or wireless communication network. For example, the emulation devices may be utilized in a test scenario in a test laboratory and / or in an undeployed (e.g., test) wired and / or wireless communication network to implement testing of one or more components. The one or more emulation devices may be test equipment. Direct RF coupling and / or wireless communication via RF circuitry (which may, for example, include one or more antennas) may be used by the emulation devices to transmit and / or receive data.

[0076] This application describes various aspects, including tools, features, examples, models, techniques, and the like. Many of these aspects are described with specificity, and often in a manner that may sound limiting, at least to illustrate their individual characteristics. However, this is for clarity of description and does not limit the applicability or scope of the aspects. In fact, all of the different aspects can be combined and interchanged to provide further aspects. Also, aspects can be combined and interchanged with aspects similarly described in prior applications.

[0077] Aspects described and contemplated in this application may be implemented in many different forms. Figures 5-25 described herein may provide some examples, but other examples are contemplated. The descriptions of Figures 5-25 do not limit the breadth of implementations. At least one of the aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting a generated or encoded bitstream. These and other aspects may be implemented as a method, an apparatus, a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the described methods, and / or a computer-readable storage medium having stored thereon a bitstream generated according to any of the described methods.

[0078] In this application, the terms "reconstructed" and "decoded" may be used interchangeably, the terms "pixel" and "sample" may be used interchangeably, and the terms "image," "picture," and "frame" may be used interchangeably.

[0079] Various methods are described herein, each of which comprises one or more steps or acts for achieving the described method. Unless a specific order of steps or acts is required for the proper operation of the method, the order and / or use of specific steps and / or acts may be modified or combined. Furthermore, terms such as “first,” “second,” etc. may be used in various examples to modify elements, components, steps, operations, etc., such as, for example, “first decoding” and “second decoding.” The use of such terms does not imply a modified ordering of operations unless specifically required. Thus, in this example, the first decoding need not be performed before the second decoding, but may occur, for example, before, during, or during a time period overlapping with the second decoding.

[0080] Various methods and other aspects described in this application may be used to modify modules, e.g., decoding modules, of the video encoder 200 and decoder 300 shown in Figures 2 and 3. Furthermore, the subject matter disclosed herein may be applied to, for example, any type, format, or version of video coding, whether described in a standard or recommendation, whether existing, developed in the future, or an extension of such a standard or recommendation. Unless otherwise specified or technically prohibited, aspects described in this application may be used individually or in combination.

[0081] Various numerical values ​​such as bits, bit depth, etc. are used in the examples described in this application. These and other specific values ​​are for illustrative purposes only, and the aspects described are not limited to these specific values.

[0082] 2 illustrates an exemplary video encoder. While variations of the exemplary encoder 200 are contemplated, the encoder 200 is described below for clarity without describing all possible variations.

[0083] Before being encoded, the video sequence may undergo a pre-encoding process (201), such as applying a color transform to the input color picture (e.g., converting from RGB 4:4:4 to YCbCr 4:2:0) or performing a remapping of the input picture components to make the signal distribution more compression-resilient (e.g., using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and attached to the bitstream.

[0084] In the encoder 200, pictures are coded by the encoder elements as described below. The picture to be coded is partitioned (202) and processed, for example, in units of coding units (CUs). Each unit is coded, for example, using either intra mode or inter mode. When a unit is coded in intra mode, it performs intra prediction (260). In inter mode, motion estimation (275) and compensation (270) are performed. The encoder determines (205) whether to use intra mode or inter mode to code the unit, and indicates the intra / inter decision, for example, by a prediction mode flag. A prediction residual is calculated, for example, by subtracting (210) the prediction block from the original image block.

[0085] The prediction residual is then transformed (225) and quantized (230). The quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy coded (245) to output a bitstream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. The encoder can bypass both the transform and quantization, i.e., the residual is coded directly without applying a transform or quantization process.

[0086] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residual. The decoded prediction residual is combined (255) with the prediction block to reconstruct an image block. An in-loop filter (265) is applied to the reconstructed picture to perform, for example, deblocking / Sample Adaptive Offset (SAO) filtering to reduce coding artifacts. The filtered image is stored in a reference image buffer (280).

[0087] 3 illustrates an example of a video decoder. In the exemplary decoder 300, the bitstream is decoded by decoder elements as described below. The video decoder 300 generally performs a decoding path that is the reverse of the encoding path described in FIG. 2. The encoder 200 also generally performs video decoding as part of encoding the video data.

[0088] In particular, the decoder's input includes a video bitstream, which may be generated by the video encoder 200. The bitstream is first entropy decoded (330) to obtain transform coefficients, motion vectors, and other coded information. Picture partition information indicates how the picture is partitioned. Thus, the decoder can divide the picture according to the decoded picture partition information (335). The transform coefficients are inverse quantized (340) and inverse transformed (350) to decode the prediction residual. Combining the decoded prediction residual with a prediction block (355) reconstructs an image block. The prediction block may be obtained from intra prediction (360) or motion-compensated prediction (i.e., inter prediction) (370). An in-loop filter (365) is applied to the reconstructed image. The filtered image is stored in a reference image buffer (380).

[0089] The decoded picture may further undergo post-decoding processing (385), such as an inverse color transform (e.g., converting from YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping that performs the inverse of the remapping process performed in the pre-encoding process (201). The post-decoding process may use metadata derived in the pre-encoding process and signaled in the bitstream. In one example, the decoded image (e.g., after application of the in-loop filter (365) and / or after post-decoding processing (385), if post-decoding processing is used) may be sent to a display device for rendering to a user.

[0090] FIG. 4 illustrates an example of a system in which various aspects and examples described herein may be implemented. System 400 may be implemented as a device including various components described below and configured to implement one or more of the aspects described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set-top boxes, digital TV receivers, personal video recording systems, connected home appliances, and servers. The elements of system 400, singly or in combination, may be implemented on a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one example, the processing and encoder / decoder elements of system 400 are distributed across multiple ICs and / or discrete components. In various examples, system 400 is communicatively coupled to one or more other systems or other electronic devices, for example, via a communication bus or through dedicated input and / or output ports. In various examples, system 400 is configured to implement one or more of the aspects described herein.

[0091] The system 400 includes at least one processor 410 configured to execute instructions loaded therein to implement various aspects described herein, for example. The processor 410 may include embedded memory, input / output interfaces, and various other circuits known in the art. The system 400 includes at least one memory 420 (e.g., a volatile memory device and / or a non-volatile memory device). The system 400 includes a storage device 440, which may include non-volatile memory and / or volatile memory, including, but not limited to, electrically erasable programmable read-only memory (EEPROM), ROM, programmable read-only memory (PROM), RAM, dynamic random access memory (DRAM), static random access memory (SRAM), flash, magnetic disk drives, and / or optical disk drives. The storage device 440 may include, for example, but not limited to, an internal storage device, an attached storage device (including removable and non-removable storage devices), and / or a network-accessible storage device.

[0092] System 400 includes an encoder / decoder module 430 configured to process data to provide, for example, encoded video or decoded video, which may include its own processor and memory. Encoder / decoder module 430 represents a module that may be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of an encoding and a decoding module. Furthermore, encoder / decoder module 430 may be implemented as a separate element of system 400 or may be incorporated within processor 410 as a combination of hardware and software, as is known to those skilled in the art.

[0093] Program code to be loaded onto the processor 410 or the encoder / decoder 430 to implement various aspects described herein may be stored in the storage device 440 and then loaded onto the memory 420 for execution by the processor 410. According to various examples, one or more of the processor 410, the memory 420, the storage device 440, and the encoder / decoder module 430 may store one or more of various items during performance of the processes described herein. Such stored items include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and arithmetic logic.

[0094] In some examples, memory internal to the processor 410 and / or the encoder / decoder module 430 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other examples, memory external to the processing device (e.g., the processing device may be either the processor 410 or the encoder / decoder module 430) is used for one or more of these functions. The external memory may be the memory 420 and / or the storage device 440, e.g., dynamic volatile memory and / or non-volatile flash memory. In some examples, external non-volatile flash memory is used to store, for example, the television's operating system. In at least one example, light-speed external dynamic volatile memory, such as RAM, is used as working memory for video encoding and decoding operations.

[0095] Inputs to the elements of system 400 may be provided through various input devices, as shown in block 445. Such input devices include, but are not limited to, (i) a radio frequency (RF) section that receives RF signals transmitted over the air by, for example, a broadcaster, (ii) a component (COMP) input terminal (or set of COMP input terminals), (iii) a universal serial bus (USB) input terminal, and / or (iv) a high-definition multimedia interface (HDMI®) input terminal. Other examples not shown in FIG. 4 include composite video.

[0096] In various examples, the input devices of block 445 have associated respective input processing elements known in the art. For example, the RF section may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal or bandlimiting a signal to a band of frequencies), (ii) downconverting the selected signal, (iii) bandlimiting again to a narrower band of frequencies to select (for example) a signal frequency band, which in some examples may be referred to as a channel, (iv) demodulating the downconverted, bandlimited signal, (v) performing error correction, and / or (vi) demultiplexing to select a desired stream of data packets. The RF section in various examples includes one or more elements for performing these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a downconverter, a demodulator, an error corrector, and a demultiplexer. The RF section may include, for example, a tuner that performs various of these functions, including downconverting a received signal to a lower frequency (e.g., an intermediate frequency or a frequency near baseband) or to baseband. In one set-top box example, the RF section and its associated input processing elements perform frequency selection by receiving, filtering, downconverting, and re-filtering RF signals transmitted over a wired (e.g., cable) medium to a desired frequency band. Various examples rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions. Adding elements can include inserting elements between existing elements, such as inserting an amplifier and an analog-to-digital converter. In various examples, the RF section includes an antenna.

[0097] The USB and / or HDMI terminals may include respective interface processors for connecting system 400 to other electronic devices over USB and / or HDMI connections. It should be understood that various aspects of the input processing, e.g., Reed-Solomon error correction, may be implemented, for example, in a separate input processing IC or within processor 410, as desired. Similarly, aspects of the USB or HDMI interface processing may be implemented, for example, in a separate interface IC or within processor 410, as desired. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including, for example, processor 410 and encoder / decoder 430, which work in combination with memory and storage elements to process the data stream as desired for presentation on an output device.

[0098] The various elements of system 400 may be provided within an integrated housing in which the various elements may be interconnected and transmit data therebetween using suitable connection arrangements 425, such as internal buses known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards.

[0099] System 400 includes a communication interface 450 that enables communication with other devices over a communication channel 460. Communication interface 450 may include, but is not limited to, a transceiver configured to transmit and receive data over communication channel 460. Communication interface 450 may include, for example, but is not limited to, a modem or network card and communication channel 460, which may be implemented in a wired and / or wireless medium.

[0100] In various examples, data is streamed or provided to system 400 using a wireless network such as a Wi-Fi network, e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal in these examples is received via communication channel 460 and communication interface 450 adapted for Wi-Fi communication. Communication channel 460 in these examples is typically connected to an access point or router that provides access to external networks, including the Internet, to enable streaming applications and other over-the-top communications. Another example provides streamed data to system 400 using a set-top box that delivers data via an HDMI connection in input block 445. Yet another example provides streamed data to system 400 using an RF connection in input block 445. As noted above, various examples provide data in a non-streaming manner. Additionally, various examples use wireless networks other than Wi-Fi, e.g., a cellular network or a Bluetooth® network.

[0101] The system 400 can provide output signals to various output devices, including a display 475, speakers 485, and other peripheral devices 495. Various example displays 475 include, for example, one or more of a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display 475 may be for a television, a tablet, a laptop, a cell phone (mobile phone), or other device. The display 475 may also be integrated into other components (e.g., as in the case of a smartphone) or separate (e.g., an external monitor for a laptop). The other peripheral devices 495, in various examples, include one or more of a standalone digital video disc (or digital versatile disc) (DVD for both terms), a disc player, a stereo system, and / or a lighting system. Various examples use one or more peripheral devices 495 to provide functionality based on the output of the system 400. For example, a disc player performs the function of playing the output of the system 400.

[0102] In various examples, control signals are communicated between system 400 and display 475, speaker 485, or other peripheral device 495 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communication protocols that enable inter-device control with or without user intervention. Output devices may be communicatively coupled to system 400 via dedicated connections through respective interfaces 470, 480, and 490. Alternatively, output devices may be connected to system 400 using communication channel 460 via communication interface 450. Display 475 and speaker 485 may be integrated into a single unit with other components of system 400 in an electronic device such as a television. In various examples, display interface 470 includes a display driver, such as, for example, a timing controller (T Con) chip.

[0103] Display 475 and speakers 485 may alternatively be separate from one or more of the other components, for example, if the RF portion of input 445 is part of a separate set-top box. In various examples where display 475 and speakers 485 are external components, the output signal may be provided via a dedicated output connection including, for example, an HDMI port, a USB port, or a COMP output.

[0104] Examples may be executed by processor 410 or by computer software implemented by hardware, or by a combination of hardware and software. As a non-limiting example, examples may be implemented by one or more integrated circuits. Memory 420 may be of any type suitable for the technology environment and may be implemented using any suitable data storage technology, such as, but not limited to, optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory. Processor 410 may be of any type suitable for the technology environment and may include, but not limited to, one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.

[0105] Various implementations involve decoding. As used herein, "decoding" can encompass all or part of the processing performed on a received encoded sequence, for example, to generate a final output suitable for display. In various examples, such processing includes processing typically performed by a decoder, such as one or more of entropy decoding, inverse quantization, inverse transform, and differential decoding. In various examples, such processing also or alternatively includes processing performed by decoders of various implementations described herein, such as determining that a current block is coded in a unidirectional intra-prediction mode, deriving a directional intra-prediction mode corresponding to the unidirectional intra-prediction mode, where the derived directional intra-prediction mode indicates a derived intra-prediction direction, and decoding the current block based at least in part on the derived directional intra-prediction mode.

[0106] For further example, in one example, "decoding" refers only to entropy decoding, in another example, "decoding" refers only to differential decoding, and in another example, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" refers specifically to a subset of operations or generally to a broader decoding process will be clear based on the content of the particular description and will be well understood by one of ordinary skill in the art.

[0107] Various implementations involve encoding. In a manner similar to the above description of "decoding," "encoding" as used herein can encompass all or a portion of processing performed on, for example, an input video sequence to generate an encoded bitstream. In various examples, such processing includes one or more of processing typically performed by an encoder, such as partitioning, differential encoding, transform, quantization, and entropy coding. In various examples, such processing also or alternatively includes processing performed by encoders of various implementations described herein, such as identifying a unidirectional intra-prediction mode for encoding the current block, deriving a directional intra-prediction mode corresponding to the unidirectional intra-prediction mode, the derived directional intra-prediction mode comprising a derived intra-prediction direction, and encoding the current block based at least in part on the derived directional intra-prediction mode.

[0108] For further example, in one example, "encoding" refers only to entropy encoding, in another example, "encoding" refers only to differential encoding, and in another example, "encoding" refers to a combination of differential and entropy encoding. Whether the phrase "encoding process" refers specifically to a subset of operations or to a broader encoding process in general will be clear based on the content of the particular description and will be well understood by one of ordinary skill in the art.

[0109] It should be understood that when a figure is presented as a flow diagram, it also provides a block diagram of the corresponding apparatus. Similarly, when a figure is presented as a block diagram, it also provides a flow diagram of the corresponding method / process.

[0110] For example, implementations and aspects described herein may be implemented as a method or process, an apparatus, a software program, a data stream, or a signal. Even when discussed only in the context of a single form of implementation (e.g., discussed only as a method), the implementation of the discussed features may also be implemented in other forms (e.g., an apparatus or a program). An apparatus may be implemented, for example, in appropriate hardware, software, and firmware. A method may be implemented, for example, in a processor, which generally refers to a processing device including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include, for example, communication devices such as computers, cell phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end users.

[0111] Reference to "one example" or "one example" or "one implementation" or "one implementation," as well as other variations thereof, means that a particular feature, structure, characteristic, etc. described in connection with the example is included in at least one example. Thus, the appearances of "in one example" or "in one example" or "in one implementation," "in one implementation," as well as any other variations thereof, in various places throughout this application do not necessarily all refer to the same example.

[0112] Additionally, the application may refer to "determining" various pieces of information. Determining information may include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from memory. Obtaining may include receiving, retrieving, constructing, generating, and / or determining.

[0113] Additionally, the application may refer to "accessing" various pieces of information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0114] Additionally, the present application may refer to "receiving" various pieces of information. Receiving, as with "accessing," is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from memory). Furthermore, "receiving" generally involves operations such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information in some manner.

[0115] For example, it should be appreciated that the use of any of the following " / ," "and / or," and "at least one of" in the cases of "A / B," "A and / or B," and "at least one of A and B" is intended to encompass the selection of only the first enumerated option (A), or the selection of only the second enumerated option (B), or the selection of both options (A and B). Further, for example, in the cases of "A, B, and / or C" and "at least one of A, B, and C," such language is intended to encompass the selection of only the first enumerated option (A), or the selection of only the second enumerated option (B), or the selection of only the third enumerated option (C), or the selection of only the first and second enumerated options (A and B), or the selection of only the first and third enumerated options (A and C), or the selection of only the second and third enumerated options (B and C), or the selection of all three options (A, B, and C). This can be extended to as many items as listed, as would be apparent to one skilled in the art.

[0116] Also, as used herein, the term "signal" specifically refers to indicating something to a corresponding decoder. In this manner, in one example, the same parameters are used on both the encoder and decoder sides. Thus, for example, an encoder can transmit specific parameters to a decoder (explicit signaling), and the decoder can then use the same specific parameters. Conversely, if the decoder already has specific parameters as well as others, signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select the specific parameters. By avoiding the transmission of any actual functionality, bit savings are realized in various examples. It should be appreciated that signaling can be achieved in various ways. For example, one or more syntax elements, flags, etc. are used to signal information to a corresponding decoder in various examples. While the above relates to the verb form of the word "signal," the word "signal" may be used as a noun (e.g., may also be used as a noun) herein.

[0117] As will be apparent to those skilled in the art, implementations can generate a variety of signals formatted to carry information that can be stored or transmitted, for example. The information can include, for example, instructions for performing a method or data generated by one of the described implementations. For example, a signal can be formatted to carry a bit stream of the described examples. Such a signal can be formatted, for example, as an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or as a baseband signal. Formatting can include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal can be, for example, analog or digital information. The signal can be transmitted over a variety of wired or wireless links, as is known. The signal can be stored on, accessed from, or received from a processor-readable medium.

[0118] Many examples are described herein. Example features may be provided singly or in any combination across various claim categories and types. Furthermore, examples may include one or more of the features, devices, or aspects described herein singly or in any combination across various claim categories and types. For example, features described herein may be implemented in a bitstream or signal containing information generated as described herein. The information may enable a decoder to decode the bitstream, and an encoder, bitstream, and / or decoder according to any of the described embodiments. For example, features described herein may be implemented by creating, transmitting, receiving, and / or decoding a bitstream or signal. For example, features described herein may be implemented as a method, process, apparatus, medium storing instructions, medium storing data, or signal. For example, features described herein may be implemented by a TV, set-top box, cell phone, tablet, or other electronic device that performs decoding. The TV, set-top box, cell phone, tablet, or other electronic device may display (e.g., using a monitor, screen, or other type of display) a resulting image (e.g., an image from the residual reconstruction of the video bitstream). A TV, set-top box, cell phone, tablet, or other electronic device can receive the signal containing the encoded image and perform the decoding.

[0119] These examples may be implemented by a device having at least one processor. The device may be an encoder or a decoder. These examples may be implemented by a computer program product stored on a non-transitory computer-readable medium and including program code instructions. These examples may be implemented by a computer program comprising program code instructions. These examples may be implemented by a bitstream comprising information representing coding blocks.

[0120] Intra-sample prediction may involve predicting pixels of a target coding unit (CU) based on a set of reference samples. Prediction modes may include planar and DC prediction modes, which may be used to predict smooth and gradually changing regions. Angular prediction modes (e.g., angles defined from 45 degrees to −135 degrees clockwise) may be used to capture different directional structures. For square blocks, directional prediction modes (e.g., 33 directional modes for square blocks) may be used, which may be indexed (e.g., indexed from 2 to 34). Prediction modes may correspond to different prediction directions shown in FIG. 5A. Angular prediction modes may correspond to angular directions (e.g., 65 angular prediction modes may correspond to 33 angular directions), and angular directions (e.g., an additional 32 angular directions) may correspond to intermediate directions between adjacent pairs, as shown in FIG. 5B.

[0121] FIG. 5A shows exemplary intra-prediction directions. The numbers may indicate prediction mode indexes associated with the corresponding directions. Modes 2 through 17 may indicate horizontal prediction (H-26 to H+32), and modes 18 through 34 may indicate vertical prediction (V-32 to V+32). FIG. 5B shows intra-prediction for square blocks (e.g., for square blocks). Fewer than 34 modes may indicate horizontal prediction. More than 34 modes may indicate vertical prediction. FIG. 5C shows available (e.g., all available) intra-prediction directions. The dashed lines may indicate wide-angle intra-prediction modes (WAIP). The indices -1 through -14 shown in FIG. 5C may be remapped to proceed from 1 to -12 (e.g., so that the angular mode indices are consecutive). Modes -15 and 81 (e.g., remapped to -13) may not be present in Figure 5C because a block size (e.g., a disallowed block size) may not use modes -15 and 81 (e.g., remapped to -13). Modes -15 and 81 (e.g., remapped to -13) may be handled by a reference code.

[0122] Template-based intra mode derivation (TIMD) may be performed to derive a prediction mode for a coding block. Intra-prediction mode derivation via TIMD may be applied (e.g., similarly) to the encoder and decoder sides for a given luminance, such as CB 603 shown in FIG. 6(a). (E.g., each) intra-prediction mode in the most probable mode (MPM) list for luminance CB (e.g., supplemented with a default mode) may be used to calculate a prediction of the templates (600 and 601) for luminance CB from the decoded reference sample of the template (602). A sum of absolute transform differences (SATD) between the prediction and the templates for luminance CB may be calculated. The (e.g., two) intra-prediction modes with the smallest (e.g., smallest) SATD may be selected as the TIMD modes. The set of directional intra-prediction modes (e.g., for TIMD) may be expanded (e.g., from 65 to 129), for example, by inserting a direction between each solid arrow and the adjacent dashed arrow in FIG. 5B. The set of possible intra-prediction modes derived via TIMD may collect modes (e.g., 131 modes). One or more (e.g., two) intra-prediction modes may be retained from the first pass of testing involving the MPM list and may be supplemented with a default mode. For each retained intra-prediction mode that is neither PLANAR nor DC, the (e.g., two) closest extended directional intra-prediction modes may be tested. The SATD between the prediction calculated using the closest extended directional intra-prediction mode and a template of luminance CB may be calculated. The intra-prediction mode with the smallest (e.g., smallest) SATD may be selected as the TIMD mode.

[0123] 6 shows an example template of the current luminance CB used in TIMD and an example decoded reference sample of the template. In FIG. 6(a), the template of the luminance CB does not go beyond the boundary of the current frame. The current W×H luminance CB 603 is located at the left of it in 600. t×H part, and the upper part of it in 601 is W × h t During the TIMD derivation step, the tested intra prediction modes can be surrounded by the 1+2w of the template. t +2W+2h t A template for the current luminance CB may be predicted from a set of +2H decoded reference samples 602. For W≦8, w t can be equal to 2, otherwise, w t can be equal to 4. If H≦8, h t can be equal to 2, otherwise h t can be equal to 4.

[0124] 6(b) and 6(c) show examples where at least a portion (e.g., a portion) of the luminance CB template extends beyond the boundaries of the current frame. In FIG. 6(b), the current W×H luminance CB 603 extends beyond the W×h luminance CB template above it in 601. t During the TIMD derivation step, the intra prediction modes tested are 1+2W+2h in 602 of the template. t A template for the current luminance CB may be predicted from a set of +2H decoded reference samples. In FIG. 6(c), the current W×H luminance CB 603 is predicted from the W×H reference sample to its left in 600. t During the TIMD derivation step, the intra prediction modes tested are 1+2w in 602 of the template, with only the 1+2w part available. t A template for the current luminance CB may be predicted from a set of +2W+2H decoded reference samples.

[0125] The current luminance CB may be predicted via TIMD, for example, by fusing (e.g., two) predictions of luminance CB calculated based on (e.g., two) TIMD modes resulting from (e.g., two) passes of testing with weights (e.g., after applying position dependent prediction combination (PDPC)). The weights used may depend on the predicted SATD of the (e.g., two) TIMD modes.

[0126] Decoder-side intra mode derivation (DIMD) may be performed to derive an intra prediction mode for a coding block. For example, two intra modes may be derived from reconstructed neighbor samples. Two predictors may be combined with a planar mode predictor along with gradient-derived weights. The division operations in the weight derivation may be performed using the same look-up table (LUT)-based integerization scheme used by the cross-component linear model (CCLM). For example, the division operations in the orientation calculation may be performed using the same look-up table (LUT)-based integerization scheme used by the cross-component linear model (CCLM). Orientation=G y / G x can be calculated by the following LUT-based method: x=Floor(Log2(Gx)) normDiff=((Gx<<4)>>x)&15 x+=(3+(normDiff!=0)?1:0) Orientation = (Gy*(DivSigTable[normDiff]|8)+(1<<(x-1)))>>x, where: DivSigTable

[16] ={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0}.

[0127] The derived intra modes may be included in the primary list of the intra MPM list. DIMD processing may be performed before the MPM list is constructed. The primary derived intra modes of a DIMD block may be stored with the block and may be used for constructing the MPM lists of neighboring blocks.

[0128] Figure 7 shows neighboring reconstructed samples used for the DIMD chroma mode. The DIMD chroma mode may use DIMD derivation to derive a chroma intra prediction mode for a current block based on neighboring reconstructed Y, Cb, and Cr samples in a second neighboring row and column, as shown in Figure 7. Horizontal and vertical gradients may be calculated for the co-located reconstructed luma samples (e.g., each co-located reconstructed luma sample) and the reconstructed Cb and Cr samples of the current chroma block to construct a histogram of directional gradients (HoG). The intra prediction mode with the largest histogram amplitude value may be used to perform chroma intra prediction for the current chroma block.

[0129] When the intra prediction mode derived from the DIMD chroma mode is the same as the intra prediction mode derived from the direct mode (DM), the intra prediction mode with the second largest histogram amplitude value may be used as the DIMD chroma mode. A CU-level indication (e.g., a flag) may be signaled to indicate whether the DIMD chroma mode is applied.

[0130] 8 shows an example of matrix weighted intra prediction (MIP) processing. To predict samples of a rectangular block of width W and height H, MIP may take as input one line of H reconstructed adjacent boundary samples on the left side of the block and one line of W reconstructed adjacent boundary samples on the upper side of the block. If the reconstructed samples are not available, they may be generated in the same or similar manner as in other intra prediction examples (e.g., conventional intra prediction). The generation of the prediction signal may be based on at least three steps: averaging, matrix-vector multiplication, and linear interpolation (e.g., as shown in FIG. 8).

[0131] CCLM may be implemented to predict coding blocks. CCLM prediction modes may be used in video coding to, for example, reduce cross-component redundancy. Chroma samples may be predicted based on reconstructed luma samples (e.g., for the same CU) by using, for example, a linear model. The linear model may be constructed, for example, according to Equation 1. pred C (i,j)=α·rec L '(i,j)+β Equation 1 As shown by the example in Eq. C (ij) may represent the predicted chroma samples in the CU. As shown by the example in Equation 1, rec L '(i,j) may represent the downsampled reconstructed luma samples of (e.g., the same) CU.

[0132] The CCLM parameters (e.g., α and β) may be derived, for example, based on / using (e.g., at most four) neighboring chroma samples and corresponding downsampled luma samples. To illustrate an example, assume the dimensions of the current chroma block are W×H. In some examples, W″ and H′ may be set according to the following logic: For example, when the LM mode is applied, W'=W and H'=H, For example, when the LM-A mode is applied, W'=W+H, and / or For example, when the LM-L mode is applied, H'=H+W.

[0133] In further discussion of the example, the adjacent positions above may be denoted as S[0,-1]...S[W'-1,-1], and the adjacent positions to the left may be denoted as S[-1,0]...S[-1,H'1]. The four samples may be selected (e.g., according to the example logic) as follows: When LM mode is applied and both upper and left neighboring samples are available, S[W' / 4,-1], S[3*W' / 4,-1], S[-1,H' / 4], S[-1,3*H' / 4], S[W' / 8,-1], S[3*W' / 8,-1], S[5*W' / 8,-1], S[7*W' / 8,-1] if / when LM-A mode is applied and only upper adjacent samples are available, and / or If LM-L mode is applied and only the left neighbor is available, then S[-1,H' / 8], S[-1,3*H' / 8], S[-1,5*H' / 8], S[-1,7*H' / 8].

[0134] In the example, four adjacent luma samples at the selected position are downsampled (e.g., four times) and compared to obtain a result (e.g., x 0 A and x 1 A (e.g., two) larger values ​​and (e.g., x 0 B and x 1 B The corresponding chroma sample value is found by finding the smaller value (e.g., two values) of y 0 A , y 1 A , y 0 B and y 1 B In the example, x A , xB , y A and y B can be derived, for example, according to Equations 2a to 2d. X a =(x 0 A +x 1 A +1)>>1 formula 2a X b =(x 0 B +x 1 B +1)>>1 formula 2b Y a =(y 0 A +y 1 A +1)>>1 formula 2c Y b =(y 0 B +y 1 B +1)>>1 formula 2d The linear model parameters α and β may be determined, for example, according to Equations 3 and 4.

[0135]

number

[0136] Figure 9 shows an example of the locations of the left and top samples involved in CCLM mode and the samples of the current block. Figure 9 shows an example of the locations of the samples used for the derivation of the linear model parameters α and β.

[0137] CCLM may be extended by adding three multi-model LM (MMLM) modes. In each MMLM mode, reconstructed neighboring samples may be classified into two classes using a threshold. The threshold may be the average of the reconstructed neighboring samples of luma. A linear model for each class may be derived using the least mean squares (LMS) method. For the CCLM mode, the LMS method may be used to derive the linear model. A gradient adjustment may be applied to the CCLM and MMLM predictions. The adjustment may involve tilting a linear function (e.g., mapping luma values ​​to chroma values) about a center point determined by the average luma value of the reference samples.

[0138] A CCLM gradient adjustment may be implemented. CCLM may use a model with one or more (e.g., two) parameters to map luma values ​​to chroma values. A gradient parameter “a” and a bias parameter “b” may define the mapping according to, for example, Equation 5. chromaVal=a*lumaVal+b Equation 5

[0139] Adjustments to the gradient parameters "u" may be signaled to update the model according to Equation 6, for example. chromaVal=a'*lumaVal+b' Equation 6 The updated gradient parameters may be determined, for example, according to Equations 7a and 7b. a'=a+u Equation 7a b'=bu*y r formula 7b

[0140] The mapping function may be, for example, based on the selection of the luminance value y r The mean of the reference luma samples used to create the model can be adjusted, for example, by y to provide a (e.g., meaningful) correction to the model. r It can be used as:

[0141] 10A and 10B show examples of the effect of the gradient adjustment parameter "u." Fig. 10A shows a model created for CCLM without updated gradient parameters. Fig. 10B shows a model created for CCLM with updated gradient parameters.

[0142] Features related to convolutional cross-component mode (CCCM) are provided herein. Reconstructed luma samples to be used for chroma prediction may be filtered. A convolutional 7-tap filter may include a 5-tap plus sign shape spatial component, a nonlinear term, and a bias term, as shown in FIG. 11. Inputs to the spatial 5-tap component of the filter may include a center (C) luma sample (e.g., which may be collocated with the chroma sample to be predicted), a top / north (N) neighbor, a bottom / south (S) neighbor, a left / west (W) neighbor, and a right / east (E) neighbor, as shown.

[0143] The nonlinear term P represents the square of the central luma sample C and may be scaled to the sample value range of the content. P=(C*C+midVal)>>bitDepth Equation 8

[0144] For 10-bit content, P can be calculated as follows: P=(C*C+512)>>10 Formula 9

[0145] The bias term B may represent a scalar offset between the input and output (eg, similar to the offset term in CCLM) and may be set to an intermediate chroma value (eg, 512 for 10-bit content).

[0146] The output of the filter is the filter coefficient c i and the input value, and may be clipped to the range of valid chroma samples as shown in Equation 10. predChromaVal=c0C+c1N+c2S+c3E+c4W+c5P+c6B Equation 10

[0147] Intra block copy (IBC) may improve coding efficiency of screen content material. IBC mode may be a block-level coding mode. Block matching (BM) may be performed in the encoder to find the optimal block vector (or motion vector) for a CU (e.g., each CU). The block vector may be used to indicate the displacement from a current block to a reference block (e.g., already reconstructed in the current picture). The luma block vectors of an IBC-coded CU may be in integer precision. The chroma block vectors may be rounded to integer precision. When combined with AMVR, IBC mode can switch between 1-pel and 4-pel motion vector precision. IBC-coded CUs may be treated as a third prediction mode (e.g., other than intra- or inter-prediction modes). IBC mode may be applicable to CUs with both a width and a height of 64 luma samples or less.

[0148] The reference area for an IBC may be extended (e.g., to two CTU rows above). Figure 12 shows a reference area for coding a coding tree unit (CTU) (m,n). Figure 12 shows an example reference area for an IBC when CTU(m,n) is coded. The block labeled "m,n" indicates the current CTU, other shaded blocks indicate reference areas, and white blocks indicate invalid reference areas. For a CTU(m,n) to be coded, the reference area may include CTUs with indices (m-2,n-2)...(W,n-2), (0,n-1)...(W,n-1), (0,n)...(m,n), where W indicates the maximum horizontal index within the current tile, slice, or picture. When the CTU size is 256, the reference area may be limited to one CTU row above. This may ensure that the IBC does not use additional memory for CTU sizes of 128 or 256. The range of the sample-by-sample block vector search (sometimes called a local search) may be limited to [-(C<<1),C>>2] horizontally and [-C,C>>2] vertically to accommodate the reference area expansion, where C denotes the CTU size.

[0149] An example of intra-template matching prediction (IntraTMP) is provided herein. IntraTMP is an intra-prediction mode that can copy the best predicted block from the reconstructed portion of the current frame where an L-shaped template matches the current template. For a predefined search range, the encoder can search for a template that is most similar to the current template in the reconstructed portion of the current frame. For a predefined search range, the encoder can use the corresponding block as the predicted block. The encoder can signal the use of this mode, and the same prediction operation can be performed on the decoder side.

[0150] Figure 13 shows an example of an intra template matching search area. A prediction signal can be generated by matching the L-shaped causal neighbors of the current block with another block in the predefined search area of ​​Figure 13, including: R1: Current CTU R2: Upper left CTU R3: Upper CTU R4: CTU on the left

[0151] The sum of absolute differences (SAD) may be used as a cost function. Within a region (e.g., within each region), the decoder may search for the template with the minimum SAD relative to the current one and use its corresponding block as the predicted block. The region dimensions (SearchRange_w, SearchRange_h) may be set proportional to the block dimensions (BlkW, BlkH) to have a fixed number of SAD comparisons per pixel, i.e., SearchRange_w=a*BlkW Equation 11 SearchRange_h=a *BlkH Equation 12 where "α" is a constant that controls the gain / complexity tradeoff. For example, "α" can be equal to 5.

[0152] The intra template matching tool may allow CUs with width and height sizes of 64 or less. This maximum CU size for intra template matching may be configurable. The intra template matching prediction mode may be signaled at the CU level through a dedicated flag. The intra template matching prediction mode may be signaled at the CU level through a dedicated flag when DIMD is not enabled (e.g., DIMD=0). Although examples of intra template matching have been described herein, the examples herein may also apply to inter template matching.

[0153] Palette mode may be used to encode / decode coding blocks. In some examples, palette mode may be used for screen content coding in chroma formats supported by the 4:4:4 profile (i.e., 4:4:4, 4:2:0, 4:2:2, and monochrome). When palette mode is enabled, a flag may be sent at the CU level if the CU size is 64x64 or less, and the amount of samples in the CU is greater than 16 to indicate whether palette mode is used. Applying palette mode to small CUs may introduce insignificant coding gain and result in additional complexity on small blocks. Palette mode may be disabled for CUs with 16 samples or less. Palette-coded CUs may be treated as a prediction mode (e.g., separate from intra-prediction, inter-prediction, and IBC modes).

[0154] Figure 14 shows an example of palette mode coding (e.g., with a palette size of 4). When palette mode is utilized, sample values ​​in a CU may be represented by a set of representative color values. The set is sometimes referred to as a palette. For locations with sample values ​​close to the palette colors, a palette index may be signaled. Samples that are outside the palette may be specified (e.g., by signaling an escape symbol). For samples in a CU coded using escape symbols, their component values ​​may be signaled (e.g., directly) using quantized component values. The quantized escape symbols may be binarized (e.g., using a 5th-order Exponential-Golomb binarization process (EG5)).

[0155] A combined intra-inter prediction (CIIP) mode may be used to code a block. In the CIIP mode, a prediction sample may be generated by weighting an inter prediction signal predicted using a CIIP template matching (CIIP-TM) merge candidate and an intra prediction signal predicted using an intra prediction mode derived from TIMD. The CIIP mode may be applied to (e.g., only to) coding blocks with an area of ​​1024 or less.

[0156] The TIMD derivation method may be used to derive an intra-prediction mode during a CIIP. In particular, the intra-prediction mode with the smallest SATD value in the TIMD mode list may be selected and mapped to one of the 67 directional intra-prediction modes (e.g., a normal intra-prediction mode).

[0157] The weights for the two tests (w Intra ,w Inter ) may be modified if the derived intra-prediction mode is an angular mode. For near-horizontal modes (e.g., 2≦angular mode index<34), the current block may be split vertically. For near-vertical modes (e.g., 34≦angular mode index≦66), the current block may be split horizontally.

[0158] In some examples, a geometric partitioning mode (GPM) may be used with inter prediction and intra prediction. In a GPM using inter prediction and intra prediction, a final predicted sample may be generated by weighting inter predicted samples and intra predicted samples for each region separated by the GPM. The inter predicted samples may be derived by an inter GPM, while the intra predicted samples may be derived by an intra prediction mode (IPM) candidate list and / or an index signaled from the encoder. The IPM candidate list size may be predefined as 3. Available IPM candidates may be a parallel mode (parallel mode) relative to the GPM block boundary, a rectangular mode (rectangular mode) relative to the GPM block boundary, and a planar mode, as shown in Figures 15A to 15C, respectively. Figure 15D shows a GPM using inter prediction and intra prediction. A GPM using inter prediction and intra prediction may be limited (e.g., to reduce signaling overhead for the IPM and / or to avoid increasing the size of the intra prediction circuitry on a hardware decoder). Direct motion vector and IPM storage on the GPM blending area may be introduced (eg, to further improve coding performance).

[0159] In DIMD and adjacent mode-based IPM derivation, parallel modes may be registered (e.g., first). If the same IPM candidate is not in the list, up to two IPM candidates derived from the DIMD method and / or adjacent blocks may be registered. For adjacent mode derivation, there may be (e.g., at most) five positions for available adjacent blocks. The positions may be limited by the angle of the GPM block boundary (e.g., as shown in Figure 16), which may be used for GPM using template matching (GPM-TM). In Figure 16, A and L may indicate the upper and left sides of the prediction block, respectively.

[0160] In some examples, GPM Intra may be combined with GPM with motion vector differential merging (GPM-MMVD). TIMD may be used for IPM candidates of GPM Intra (e.g., to further improve coding performance). Parallel modes may be registered first. TIMD, DIMD, and IPM candidates of neighboring blocks may then be registered.

[0161] A low-frequency non-separable transform (LFNST) may be performed. The forward LFNST may be applied to the upper-left low-frequency region, sometimes called the region of interest (ROI). When the LFNST is applied, first-order transform coefficients that exist in regions outside the ROI may be zeroed out.

[0162] FIG. 17 shows the ROI for LFNST16. The ROI for LFNST16 includes six 4x4 sub-blocks (which may be consecutive in scan order, for example). The number of input samples may be 96. In this case, the transform matrix for forward LFNST16 may be Rx96. 32 coefficients (two 4x4 sub-blocks) may be generated from forward LFNST16 (for example, if the value of R is selected to be 32). The coefficients may be arranged according to the coefficient scan order.

[0163] Figure 18 shows the ROI for LFNST8. The forward LFNST8 matrix may be Rx64. The value of R may be 32. The generated coefficients may be located in the same manner as LFNST16. Figure 19 shows an example mapping from intra prediction mode to LFNST set index.

[0164] Multiple transform selection (MTS) can be used. For MTS, DST7 and DST8 (e.g., only DST7 and DCT8) transform kernels can be utilized. DST7 and DST8 transform kernels can be used for intra coding and inter coding.

[0165] Other linear transforms (including, for example, DCT5, DST4, DST1) and / or identity transforms (IDTs) may be employed. The MTS set may depend on the TU size and / or intra-mode information. 16 different TU sizes may be considered. For each TU size, five different classes may be considered depending on the intra-mode information. For each class, one, four, or six different transform pairs may be considered. The number of intra-MTS candidates may be adaptively selected (e.g., between one, four, and six MTS candidates). The number of intra-MTS candidates may depend on the sum of the absolute values ​​of the transform coefficients. The sum may be compared to one or more thresholds (e.g., two fixed thresholds) to determine the total number of enabled MTS candidates. For example, One candidate: sum ≦ th0 Equation 13 Four candidates: th0<sum≦th1 Equation 14 6 candidates: sum>th1 Equation 15

[0166] Intra mode propagation may be performed. For CUs not coded with intra prediction, the intra mode of the reference CU may be considered the same intra mode as the current CU. This mode may be used when constructing a most probable mode (MPM) list for other blocks. The MPM may be generated using a method. In this method, the first entry in the MPM list may be a planar mode. The remaining entries may include the intra modes of the left (L), top (A), bottom-left (BL), top-right (AR), and top-left (AL) neighboring blocks (e.g., as shown in FIG. 20), directional modes with an added offset from the first two available directional modes of the neighboring blocks, and / or a default mode.

[0167] If any of the neighboring blocks are inter-coded, the intra mode of the block may be obtained from the reference block (or its reference, if it is also inter-coded). An intra-mode buffer for the location (e.g., with a resolution of the minimum CU size (4x4)) may be generated. Upon coding the CU, the buffer may be filled with intra-mode or (e.g., if inter-coded) with reference intra-mode. This process is sometimes called intra-mode propagation. MIP, IntraTMP, and / or palette modes may be propagated as planar modes. A GPM mode using intra-inter modes may generate an MPM with three entries (e.g., similar to MPM list generation).

[0168] Intra modes may provide useful information about the statistics of the current block. Intra modes may provide information about the directionality of the block. This information may be used to design a transform (e.g., the best transform) in MTS and / or LFNST. LFNST may be a transform that is learned by clustering residual signals according to their intra modes. Intra modes may be used to build MPM lists. Intra modes may be used for GPM MPM.

[0169] In some examples, when coding a block in a non-directional intra-prediction mode (e.g., inter-prediction mode, IBC mode, IntraTMP mode, MIP, palette mode, cross-component prediction mode, etc.), tools that depend on the intra mode may be deactivated. For example, LFNST may be deactivated based on a block being coded in a non-directional intra-prediction mode (e.g., because LFNST depends on the directional mode). When a planar mode is considered, MIP may be used with LFNST. In some examples, intra-dependent tools may use equivalent mode. Equivalent mode (e.g., using DIMD processing) may be used for LFNST kernel selection, which provides coding gain.

[0170] An equivalent mode (e.g., a directional intra prediction mode) for a block employing a non-directional intra prediction mode (e.g., a CU not employing normal intra coding) may be derived. For example, the directional intra prediction mode may be derived using TIMD and / or DIMD processing. The equivalent mode may be used to select an MTS / LFNST kernel and / or an intra mode propagation process.

[0171] In some examples, a video decoding device may determine that a current block is coded in a non-directional intra-prediction mode. A directional intra-prediction mode that corresponds to the non-directional intra-prediction mode (e.g., indicates a derived intra-prediction direction) may be derived. The video decoding device may decode the current block based at least in part on the derived directional intra-prediction mode.

[0172] A prediction block of the current block may be obtained using a non-directional intra-prediction mode. In some examples, a directional intra-prediction mode corresponding to the non-directional intra-prediction mode may be derived based on the prediction block. In some examples, reconstructed samples (e.g., multiple reconstructed samples) in the prediction block may be obtained. The directional intra-prediction mode may be derived based on the reconstructed samples in the prediction block and reconstructed neighboring samples (e.g., multiple reconstructed neighboring samples) of the current block.

[0173] The directional intra-prediction mode may be derived based on a histogram of gradients associated with reconstructed pixels neighboring the current block (e.g., the directional intra-prediction mode may be derived by applying a DIMD process to a reconstructed template of the current block, e.g., a template, a predictive block of the current block obtained using a non-directional intra-prediction mode, or a reconstructed template within the predictive block). For example, multiple samples in the predictive block may be obtained. The directionality of the predictive block may be determined.

[0174] FIG. 21 shows a process for deriving an equivalent mode. For example, a DIMD process may be used to derive an equivalent mode (e.g., a directional intra-prediction mode corresponding to a non-directional intra-prediction mode). An equivalent directional intra-prediction mode for MIP may be generated during the MIP prediction process (e.g., as shown in FIG. 21). In one example, DIMD may be applied to a reconstructed template around the current block. In some examples, the DIMD process may be applied to a prediction block (e.g., a prediction signal). For example, the DIMD process may be used to find the directionality of a prediction block generated by the MIP process. For example, the directionality of the prediction block may be determined based on multiple samples in the prediction block. The intra-prediction mode may be derived based on the determined directionality of the prediction block.

[0175] Figure 22A shows an example DIMD process in which a template around the current block to be coded is used, and Figure 22B shows a process for deriving a MIP-equivalent mode in which the template is a portion of the predicted block (e.g., before upsampling).

[0176] In some examples, DIMD processing may be used to analyze prediction signals generated from inter prediction, IBC, CCLM / MMLM / CCCM, and / or IntraTMP. In some examples, a prediction unit (e.g., the entire prediction unit) may be analyzed to derive an equivalent directional intra-prediction mode (e.g., instead of using a template within the prediction unit). In some examples, a default DIMD process may be used as the equivalent directional intra-prediction mode. This may be used for palette mode (e.g., because the prediction signal may not be generated using palette mode).

[0177] In some examples, the directional intra-prediction mode may be derived by testing multiple candidate directional intra-prediction modes on reconstructed pixels neighboring the current block and selecting a directional intra-prediction mode from the multiple candidate directional intra-prediction modes based on the testing. For example, in a template-based intra-mode derivation (TIMD) process, the intra-prediction mode may be applied to at least one of a reconstructed template of the current block, a predictive block of the current block obtained using a non-directional intra-prediction mode, or a reconstructed template within the predictive block.

[0178] For example, TIMD processing may be used to derive an equivalent directional intra-prediction mode (e.g., a directional intra-prediction mode corresponding to a non-directional intra-prediction mode). TIMD may be applied using a template that surrounds the current block (e.g., in the same or similar manner as for DIMD). For example, TIMD may be applied using a template that surrounds the current block using a template within the predictive block. For example, TIMD may be applied using a template that surrounds the current block using the entire predictive block.

[0179] For example, a prediction block of the current block may be obtained using a non-directional intra-prediction mode. In some examples, reconstructed samples (e.g., multiple reconstructed samples) in the prediction block may be obtained. In some examples, a likely prediction mode (e.g., multiple likely prediction modes) may be obtained. A prediction (e.g., multiple predictions) of the reconstructed samples in the prediction block may be calculated. For example, a prediction of the reconstructed samples in the prediction block may be calculated based on the likely prediction mode. A prediction error (e.g., multiple prediction errors) may be calculated. For example, the prediction error may be calculated based on the reconstructed samples in the prediction block and the corresponding prediction. The prediction error may correspond to the likely prediction mode. A directional intra-prediction mode may be selected based on the prediction error (e.g., from the likely prediction modes). In some examples, the directional intra-prediction mode may be selected based on a determination that the prediction error corresponding to the directional intra-prediction mode is the smallest of the prediction errors.

[0180] In some examples, Planar or DC modes may be used as equivalent directional intra-prediction modes. For example, MIP and IntraTMP may be considered as planar modes in LFNST kernel selection. In some examples, LFNST may be activated for directional inter-prediction modes and IBC modes.

[0181] In some examples, a history-based intra-prediction mode (HIPM) may be used as an equivalent directional intra-prediction mode. The history-based intra-prediction mode may be used as an equivalent directional intra-prediction mode for a CU that employs a non-directional intra-prediction mode (e.g., a CU that does not employ conventional intra-coding). In examples, the derivation process may be similar to history-based MVP (HMVP) merging candidates. The derived directional intra-prediction mode (e.g., of a block previously intra-coded conventionally) may be stored in a table. The derived directional intra-prediction mode may be used to generate an MPM list for neighboring predicted blocks. A table with multiple HIPM candidates may be used as an equivalent directional intra-prediction mode for the current CU. A table with multiple HIPM candidates may be maintained during the encoding and / or decoding process. The table may be reset (e.g., emptied) when a new CTU row is encountered. If there is a CU coded using a directional intra-prediction mode (e.g., a normally intra-coded CU), the associated directional intra-prediction mode may be added to the last entry in the table (e.g., as a new HIPM candidate).

[0182] The size S of the HIPM table may be set to a value M (e.g., indicating that up to M-1 HIPM candidates may be added to the table). Two options may be considered when inserting a new directional intra-prediction mode candidate into the table. For example, in the first option, the new HIPM may be moved to the last entry in the table. In this example, the HIPM candidate may then be moved forward (e.g., all HIPM candidates may then be moved forward). In this example, the HIPM candidate in the last entry of the table may be considered to be "closest" and may be used as the equivalent directional intra-prediction mode.

[0183] For example, in the second option, the occurrences of existing HIPMs in the table may be counted. It may be determined whether the same HIPM exists in the table. If found, the count of the same HIPM may be added. In this case, the current HIPM table may be reordered. For example, if the number of occurrences of a HIPM candidate is higher than the last entry in the current HIPM table, the HIPM candidate may be moved to the last entry in the table. In this case, the HIPM candidate in the last entry in the table may be used as an equivalent directional intra-prediction mode (e.g., because it is frequently used).

[0184] LFNST may be performed based on an equivalent directional intra-prediction mode. For example, an LFNST transform set may be determined / selected based on the derived directional intra-prediction mode. The equivalent directional intra-prediction mode may be derived as described herein. The current block may be encoded and / or decoded based on the LFNST transform set. For example, a transform or inverse transform may be performed on the residual of the current block based on the LFNST transform set.

[0185] LFNST and IBC modes for inter-coded CUs may be activated. Equivalent directional intra-prediction mode derivation may be used for LFNST kernel selection. LFNST for cross-component prediction / IntraTMP may be activated (e.g., using equivalent mode derivation for LFNST kernel selection instead of assuming planar mode).

[0186] In some examples, MTS may be performed using an equivalent directional intra-prediction mode. For example, an MTS transform set may be determined based on the derived directional intra-prediction mode. The current block may be encoded and / or decoded based on the MTS transform set. For example, a transform or an inverse transform may be performed on the residual of the current block based on the MTS transform set. MTS IBC and IntraTMP modes may be activated (e.g., using equivalent mode derivation for LFNST kernel selection). In some examples, MTS for the chroma portion may be activated (e.g., using cross-component prediction with equivalent mode derivation for LFNST kernel selection instead of assuming planar mode). MTS kernel selection may be used for inter-CUs (e.g., using equivalent directional intra-prediction mode derivation for kernel selection).

[0187] In some examples (e.g., for inter CUs), the MTS index may be coded independently of the directional intra-prediction mode. In some examples, a table mapping the MTS index to kernels may be defined (in advance).

[0188] Specific considerations for TU partitioning may be provided. In some examples, TU partitioning may be enabled. A CU may be partitioned into multiple TUs. For example, a CU may be partitioned into multiple TUs using a residual quad tree (RQT). The RQT may be removed in some examples.

[0189] Sub-block transforms (SBTs) may be similar to RQTs. SBTs may be used on inter-coded CUs. Using SBTs, a CU may be split into two parts (e.g., as shown in Figure 23). One of the parts may be zeroed out. The other part may be transformed using a (pre-)defined transform set.

[0190] When a TU is smaller than a CU (e.g., as in SBT), an equivalent directional intra-prediction mode derivation can be performed for every TU. This can result in N equivalent modes for N sub-partitions. This can enable appropriate selection of MTS / LFNST kernels and / or provide better propagation of equivalent directional intra-prediction modes. In particular, in SBT, since a (e.g., one) partition is zeroed out, an equivalent directional intra-prediction mode for that partition may not be determined.

[0191] In some examples, an equivalent directional intra-prediction mode may be propagated. When intra-mode propagation is used, an equivalent directional intra-prediction mode may be derived (e.g., as described herein). For example, when a non-directional intra-prediction mode (e.g., IBC, inter, cross-component prediction, IntraTMP, palette mode) is used, an equivalent directional intra-prediction mode may be used to fill the intra-mode buffer.

[0192] Specific considerations for CIIP and / or GPM modes may be provided. For example, CIIP may be used to derive a directional intra-prediction mode for the intra portion when CIIP is used. For example, a directional intra-prediction mode may be derived when GPM intra-inter is used. An equivalent directional intra-prediction mode may not be derived for CIIP and / or GPM modes. The intra-mode of the intra portion of CIIP and / or GPM modes may be used for LFNST / MTS kernel selection and intra-mode propagation.

[0193] A video encoding device (e.g., an encoder) may perform the same or similar acts as described above. For example, the encoder may identify a non-directional intra-prediction mode for encoding the current block. The encoder may derive a directional intra-prediction mode corresponding to the non-directional intra-prediction mode (e.g., comprising a derived intra-prediction direction). The encoder may encode the current block based at least in part on the derived directional intra-prediction mode.

[0194] 24 shows an example flowchart 2400 for decoding a current block. At 2410, it may be determined that the current block is coded in a unidirectional intra-prediction mode. At 2420, a directional intra-prediction mode corresponding to the unidirectional intra-prediction mode may be derived. At 2430, the current block may be decoded based at least in part on the derived directional intra-prediction mode.

[0195] 25 shows an example flowchart 2500 for encoding a current block. At 2510, a non-directional intra-prediction mode for encoding the current block may be identified. At 2520, a directional intra-prediction mode corresponding to the non-directional intra-prediction mode may be derived. At 2530, the current block may be encoded based at least in part on the derived directional intra-prediction mode.

[0196] Although features and elements are described above in particular combinations, those skilled in the art will appreciate that each feature or element may be used alone or in any combination with the other features and elements. Furthermore, the methods described herein may be implemented in a computer program, software, or firmware embodied in a computer-readable medium for execution by a computer or processor. Examples of computer-readable media include electronic signals (transmitted via wired or wireless connections) and computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, ROM, RAM, registers, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks and digital versatile disks (DVDs). A processor in association with software may be used to implement a radio frequency transceiver for use in a WTRU, UE, terminal, base station, RNC, or any host computer.

Claims

1. determining that the current block is coded in a non-directional intra-prediction mode; deriving a directional intra-prediction mode corresponding to the non-directional intra-prediction mode, the derived directional intra-prediction mode indicating a derived intra-prediction direction; decoding the current block based at least in part on the derived directional intra-prediction mode; and 1. A video decoding device comprising: a processor configured to perform

2. The processor: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block, wherein the directional intra-prediction mode is derived based on the plurality of reconstructed samples of the prediction block and a plurality of reconstructed neighboring samples of the current block; The device of claim 1 , further configured to perform:

3. The processor: storing the derived directional intra-prediction mode; and generating a most probable mode (MPM) list for neighboring prediction blocks using the derived directional intra-prediction modes; and The device of claim 1 or claim 2, further configured to:

4. 4. The device of claim 1, wherein the processor is further configured to determine a low frequency non-separable transform (LFNST) transform set based on the derived directional intra-prediction mode, and the current block is decoded based on the LFNST transform set.

5. 4. The device of claim 1, wherein the processor is further configured to determine a multi-transform selection (MTS) transform set based on the derived directional intra-prediction mode, and the current block is decoded based on the MTS transform set.

6. 6. The device of claim 1, wherein the processor being configured to derive the directional intra-prediction mode comprises the processor being configured to derive the directional intra-prediction mode based on a histogram of gradients associated with reconstructed pixels neighboring the current block.

7. The processor being configured to derive the directional intra-prediction mode means that the processor: testing a plurality of candidate directional intra-prediction modes on reconstructed pixels neighboring the current block; selecting the directional intra-prediction mode from the plurality of candidate directional intra-prediction modes based on the test; and 6. A device according to claim 1, further comprising:

8. The processor: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block; obtaining a plurality of likely prediction modes; calculating predictions of reconstructed samples of the predictive block based on the likely prediction modes; calculating a plurality of prediction errors corresponding to the plurality of likely prediction modes based on a plurality of reconstructed samples of the predictive block and corresponding plurality of predictions; selecting the directional intra-prediction mode from the plurality of likely prediction modes based on the plurality of prediction errors; 6. The device of claim 1, further configured to:

9. 9. The device of claim 1, wherein the non-directional intra-prediction modes include an inter-prediction mode, a cross-component prediction mode, a palette mode, an intra-block copy (IBC) mode, or an intra-template matching prediction (IntraTMP) mode.

10. The processor: selecting a low frequency non-separable transform (LFNST) transform set based on the directional intra-prediction mode; performing an inverse transform on the residual of the current block based on an LFNST transform set; 10. The device of any one of claims 1 to 3 and claims 6 to 9, further configured to:

11. The processor: selecting a multi-transform selection (MTS) transform set based on the directional intra-prediction mode; performing an inverse transform on the residual of the current block based on an MTS transform set; 10. The device of any one of claims 1 to 3 and claims 6 to 9, further configured to:

12. 1. A method of video decoding, comprising: determining that the current block is coded in a non-directional intra-prediction mode; deriving a directional intra-prediction mode corresponding to the non-directional intra-prediction mode, the derived directional intra-prediction mode indicating a derived intra-prediction direction; decoding the current block based at least in part on the derived directional intra-prediction mode; and A method comprising:

13. The method comprises: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block, wherein the directional intra-prediction mode is derived based on the plurality of reconstructed samples of the prediction block and a plurality of reconstructed neighboring samples of the current block; The method of claim 12 further comprising:

14. The method comprises: storing the derived directional intra-prediction mode; and generating a most probable mode (MPM) list for neighboring prediction blocks using the derived directional intra-prediction modes; and 14. The method of claim 12 or claim 13, further comprising:

15. The method comprises:

15. The method of claim 12, further comprising determining a low frequency non-separable transform (LFNST) transform set based on the derived directional intra-prediction mode, wherein the current block is decoded based on the LFNST transform set.

16. The method comprises:

15. The method of claim 12, further comprising determining a multi-transform selection (MTS) transform set based on the derived directional intra-prediction mode, wherein the current block is decoded based on the MTS transform set.

17. 17. The method of claim 12, wherein deriving the directional intra-prediction mode comprises deriving the directional intra-prediction mode based on a histogram of gradients associated with reconstructed pixels neighboring the current block.

18. Deriving the directional intra-prediction mode includes: testing a plurality of candidate directional intra-prediction modes on reconstructed pixels neighboring the current block; selecting the directional intra-prediction mode from the plurality of candidate directional intra-prediction modes based on the test; and 17. The method of any one of claims 12 to 16, comprising:

19. The method comprises: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block; obtaining a plurality of likely prediction modes; calculating predictions of reconstructed samples of the predictive block based on the likely prediction modes; calculating a plurality of prediction errors corresponding to the plurality of likely prediction modes based on a plurality of reconstructed samples of the predictive block and corresponding plurality of predictions; selecting the directional intra-prediction mode from the plurality of likely prediction modes based on the plurality of prediction errors; 17. The method of any one of claims 12 to 16, further comprising:

20. 20. The method of claim 12, wherein the non-directional intra prediction mode comprises an inter prediction mode, a cross-component prediction mode, a palette mode, an intra block copy (IBC) mode, or an intra template matching prediction (IntraTMP) mode.

21. The method comprises: selecting a low frequency non-separable transform (LFNST) transform set based on the directional intra-prediction mode; performing an inverse transform on the residual of the current block based on an LFNST transform set; 21. The method of any one of claims 12 to 14 and claims 17 to 20, further comprising:

22. The method comprises: selecting a multi-transform selection (MTS) transform set based on the directional intra-prediction mode; performing an inverse transform on the residual of the current block based on an MTS transform set; 21. The method of any one of claims 12 to 14 and claims 17 to 20, further comprising:

23. Identifying a non-directional intra-prediction mode for encoding a current block; deriving a directional intra-prediction mode corresponding to a non-directional intra-prediction mode, the derived directional intra-prediction mode including a derived intra-prediction direction; encoding the current block based at least in part on the derived directional intra-prediction mode; and 1. A video encoding device comprising: a processor configured to perform

24. The processor: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block, wherein the directional intra-prediction mode is derived based on the plurality of reconstructed samples of the prediction block and the plurality of reconstructed neighboring samples; 24. The device of claim 23, further configured to:

25. The processor: storing the derived directional intra-prediction mode; and generating a most probable mode (MPM) list for neighboring prediction blocks using the derived directional intra-prediction modes; and 25. The device of claim 23 or claim 24, further configured to:

26. The processor:

26. The device of claim 23, further configured to determine a low frequency non-separable transform (LFNST) transform set based on the derived directional intra-prediction mode, and wherein the current block is encoded based on the LFNST transform set.

27. The processor:

26. The device of claim 23, further configured to determine a multi-transform selection (MTS) transform set based on the derived directional intra-prediction mode, and wherein the current block is coded based on the MTS transform set.

28. 28. The device of claim 23, wherein the processor being configured to derive the directional intra-prediction mode comprises the processor being configured to derive the directional intra-prediction mode based on a histogram of gradients associated with reconstructed pixels neighboring the current block.

29. The processor being configured to derive the directional intra-prediction mode means that the processor: testing a plurality of candidate directional intra-prediction modes on reconstructed pixels neighboring the current block; selecting the directional intra-prediction mode from the plurality of candidate directional intra-prediction modes based on the test; and 28. A device according to any one of claims 23 to 27, comprising being configured to perform:

30. The processor: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block; obtaining a plurality of likely prediction modes; calculating predictions of reconstructed samples of the predictive block based on the likely prediction modes; calculating a plurality of prediction errors corresponding to the plurality of likely prediction modes based on a plurality of reconstructed samples of the predictive block and corresponding plurality of predictions; selecting the directional intra-prediction mode from the plurality of likely prediction modes based on the plurality of prediction errors; 28. The device of any one of claims 23 to 27, further configured to:

31. 31. The device of claim 23, wherein the non-directional intra-prediction modes include an inter-prediction mode, a cross-component prediction mode, a palette mode, an intra-block copy (IBC) mode, or an intra-template matching prediction (IntraTMP) mode.

32. The processor: selecting a low frequency non-separable transform (LFNST) transform set based on the directional intra-prediction mode; performing a transform on the residual of the current block based on an LFNST transform set; 32. A device according to any one of claims 23 to 25 and claims 28 to 31, further configured to:

33. The processor: selecting a multi-transform selection (MTS) transform set based on the directional intra-prediction mode; performing a transform on the residual of the current block based on an MTS transform set; 32. The device of any one of claims 23 to 25 and claims 28 to 31, further configured to:

34. 1. A method of video encoding, comprising: Identifying a non-directional intra-prediction mode for encoding a current block; deriving a directional intra-prediction mode corresponding to a non-directional intra-prediction mode, the derived directional intra-prediction mode including a derived intra-prediction direction; encoding the current block based at least in part on the derived directional intra-prediction mode; and A method comprising:

35. The method comprises: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block, wherein the directional intra-prediction mode is derived based on the plurality of reconstructed samples of the prediction block and the plurality of reconstructed neighboring samples; 35. The method of claim 34, further comprising:

36. The method comprises: storing the derived directional intra-prediction mode; and generating a most probable mode (MPM) list for neighboring prediction blocks using the derived directional intra-prediction modes; and 36. The method of claim 34 or claim 35, further comprising:

37. 37. The method of claim 34, further comprising determining a low frequency non-separable transform (LFNST) transform set based on the derived directional intra-prediction mode, wherein the current block is coded based on the LFNST transform set.

38. 37. The method of claim 34, further comprising determining a multi-transform selection (MTS) transform set based on the derived directional intra-prediction mode, and wherein the current block is coded based on the MTS transform set.

39. 39. The method of any one of claims 34 to 38, wherein deriving the directional intra-prediction mode is based on a histogram of gradients associated with reconstructed pixels neighboring the current block.

40. Deriving the directional intra-prediction mode includes: testing a plurality of candidate directional intra-prediction modes on reconstructed pixels neighboring the current block; selecting the directional intra-prediction mode from the plurality of candidate directional intra-prediction modes based on the test; and 39. The method of any one of claims 34 to 38, comprising:

41. The method comprises: obtaining a prediction block of the current block using the non-directional intra prediction mode; obtaining a plurality of reconstructed samples of the prediction block; obtaining a plurality of likely prediction modes; calculating predictions of reconstructed samples of the predictive block based on the likely prediction modes; calculating a plurality of prediction errors corresponding to the plurality of likely prediction modes based on a plurality of reconstructed samples of the predictive block and corresponding plurality of predictions; selecting the directional intra-prediction mode from the plurality of likely prediction modes based on the plurality of prediction errors; 39. The method of any one of claims 34 to 38, further comprising:

42. 42. The method of claim 34, wherein the non-directional intra prediction mode comprises an inter prediction mode, a cross-component prediction mode, a palette mode, an intra block copy (IBC) mode, or an intra template matching prediction (IntraTMP) mode.

43. The method comprises: selecting a low frequency non-separable transform (LFNST) transform set based on the directional intra-prediction mode; performing a transform on the residual of the current block based on an LFNST transform set; 43. The method of any one of claims 34 to 36 and claims 39 to 42, further comprising:

44. The method comprises: selecting a multi-transform selection (MTS) transform set based on the directional intra-prediction mode; performing a transform on the residual of the current block based on an MTS transform set; 43. The method of any one of claims 34 to 36 and claims 39 to 42, further comprising:

45. A computer readable medium comprising instructions for causing one or more processors to perform the method of any one of claims 12-22 and 34-44.

46. Video data comprising information representative of an encoded current block generated according to a method according to any one of claims 34 to 44.