Intra template matching prediction based on multiple metrics

By employing a method based on sparse IntraTMP search with multiple starting positions and template matching cost function in the video coding system, the problem of low efficiency in intra-frame template matching prediction is solved, and more efficient and accurate video block decoding is achieved.

CN123036845APending Publication Date: 2026-11-03INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202580025153.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-27
Filing Date
2025-03-11
Publication Date
2026-11-03

AI Technical Summary

Technical Problem

Existing video coding systems are inefficient in intra-frame template matching prediction and struggle to effectively utilize various metrics and search strategies for video block decoding.

Method used

A method based on first and second sparse IntraTMP search is adopted, which combines different starting positions and template matching cost functions. The predicted blocks are refined by subsampling distance and cross-shaped sample subsets, and a merged candidate block vector list is constructed for video block decoding.

Benefits of technology

It improves the efficiency and quality of video encoding, enhances the accuracy and flexibility of intra-frame template matching prediction, and optimizes the video block decoding process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123036845A_ABST
    Figure CN123036845A_ABST
Patent Text Reader

Abstract

Systems, methods, and instrumentalities described herein relate to intra template matching prediction (IntraTMP). A video decoding device described herein can receive an indication to perform one or more IntraTMP searches associated with a current video block based on at least a first metric and a second metric. The video decoding device can perform a first IntraTMP search for the current video block based on the first metric and a second IntraTMP search for the current video block based on the second metric, where the first IntraTMP search can be performed based on a first starting position and the second IntraTMP search is performed based on a second starting position that is different from the first starting position. The video decoding device can decode the current video block based on at least the first IntraTMP search and the second IntraTMP search.
Need to check novelty before this filing date? Find Prior Art

Description

Cross-references to related applications

[0001] This application claims the benefit of European Patent Application No. 24305460.8, filed on 27 March 2024, the contents of which are incorporated herein by reference in their entirety. Background Technology

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

[0003] This document describes systems, methods, and means associated with Intra-Template Matching Prediction (IntraTMP). The video decoding apparatus described herein can receive instructions to perform one or more IntraTMP searches associated with a current video block based at least on a first metric and a second metric. The video decoding apparatus can perform a first IntraTMP search on the current video block based on the first metric and a second IntraTMP search on the current video block based on the second metric, wherein the first IntraTMP search can be performed based on a first start position, and the second IntraTMP search can be performed based on a second start position different from the first start position. The video decoding apparatus can decode the current video block based at least on the first IntraTMP search and the second IntraTMP search.

[0004] The first IntraTMP search described herein can be performed based on subsampling of the current video block by a subsampling distance, and the difference between the first starting position and the second starting position can be equal to a fraction of the subsampling distance (e.g., half). The first IntraTMP search described herein can be a first sparse IntraTMP search, the second IntraTMP search described herein can be a second sparse IntraTMP search, and the video decoding device described herein can refine the results of the first sparse IntraTMP search based on a first subset of samples surrounding the current samples of the first prediction block, which is derived based on the first sparse IntraTMP search. The first subset of samples and the current samples of the first prediction block can together form a cross shape. For the refinement of the results of the first sparse IntraTMP search, other samples surrounding the current samples of the first prediction block can be skipped.

[0005] In some examples, the video decoding apparatus described herein can further refine the results of the second sparse IntraTMP search based on a second subset of samples surrounding the current samples of the second prediction block, which is derived based on the second sparse IntraTMP search. The second subset of samples and the current samples of the second prediction block can also form a cross shape together, and for the refinement of the results of the second sparse IntraTMP search, other samples surrounding the current samples of the second prediction block can be skipped.

[0006] The first metric described herein can be associated with a first template matching cost function, and the second metric described herein can be associated with a second template matching cost function. The first template matching cost function can be based on the SAD between the template associated with the current video block and the template associated with the first candidate prediction block. The second template matching cost function is based on MRSAD or SATD between the template associated with the current video block and the template associated with the second candidate prediction block.

[0007] In the examples, the video decoding device described herein may construct a list of merge candidate block vectors associated with a first metric based on one or more neighboring video blocks of the current video block. In these examples, the video decoding device may not construct a list of merge candidate block vectors associated with a second metric.

[0008] In the examples, the video decoding device described herein can construct a first list of merge candidate block vectors associated with a first metric based on a first plurality of neighboring video blocks of the current video block, wherein the first plurality of neighboring video blocks can be encoded using IntraTMP and the first metric. In these examples, the video decoding device can also construct a second list of merge candidate block vectors associated with a second metric based on a second plurality of neighboring video blocks of the current video block, wherein the second plurality of neighboring video blocks are encoded using IntraTMP and the second metric. Attached Figure Description

[0009] Figure 1A This is a system diagram illustrating an example communication system in which one or more of the disclosed embodiments may be implemented.

[0010] Figure 1B This is a system diagram illustrating an example wireless transmit / receive unit (WTRU) according to an embodiment, which can be used for Figure 1A The communication system shown.

[0011] Figure 1C This is a system diagram illustrating an example radio access network (RAN) and an example core network (CN) according to an embodiment, which can be used for Figure 1A The communication system shown.

[0012] Figure 1D This is a system diagram illustrating another example RAN and another example CN according to an embodiment, which can be used for Figure 1A The communication system shown.

[0013] Figure 2 This is a diagram showing an example video encoder.

[0014] Figure 3 This is a diagram illustrating an example video decoder.

[0015] Figure 4 This is a diagram illustrating an example system that can implement various aspects and examples.

[0016] Figure 5 This is a diagram showing an example of a search area associated with an IntraTMP search.

[0017] Figure 6 This is a diagram illustrating an example of predictor selection for IntraTMP.

[0018] Figure 7 This is a diagram showing an example of a template associated with IntraTMP.

[0019] Figure 8 This is a graph showing examples of search ranges associated with different IntraTMP metrics.

[0020] Figure 9 This is a diagram illustrating an example of IntraTMP refinement.

[0021] Figure 10 This is a diagram illustrating an example of IntraTMP refinement. Detailed Implementation

[0022] A more detailed understanding can be obtained by referring to the following description, which is given by way of example in conjunction with the accompanying drawings.

[0023] Figure 1AThis diagram illustrates an example communication system 100, in which one or more of the disclosed embodiments may be implemented. Communication system 100 may be a multiple access system that provides content, such as voice, data, video, messaging, broadcasting, etc., to multiple wireless users. Communication system 100 enables multiple wireless users to access such content by sharing system resources, including wireless bandwidth. For example, 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-Tail Unique Word DFT Extended OFDM (ZT UW DTS-s OFDM), Unique Word OFDM (UW-OFDM), Resource Block Filtered OFDM, Filter Bank Multicarrier (FBMC), etc.

[0024] like Figure 1A As shown, the communication system 100 may include wireless transmit / receive units (WTRUs) 102a, 102b, 102c, 102d, RAN 104 / 113, CN 106 / 115, Public Switched Telephone Network (PSTN) 108, Internet 110, and other networks 112. However, it should be understood that the disclosed embodiments contemplate any number of WTRUs, base stations, networks, and / or network elements. Each of the WTRUs 102a, 102b, 102c, 102d can be any type of device configured to operate and / or communicate in a wireless environment. As an example, WTRUs 102a, 102b, 102c, and 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), mobile stations, fixed or mobile subscriber units, subscription-based units, pagers, cellular phones, personal digital assistants (PDAs), smartphones, laptops, netbooks, personal computers, wireless sensors, hotspots or Mi-Fi devices, Internet of Things (IoT) devices, watches or other wearable devices, head-mounted displays (HMDs), vehicles, drones, medical devices and applications (e.g., remote surgery), industrial devices and applications (e.g., robots and / or other wireless devices operating in industrial and / or automated processing chain environments), consumer electronics devices, devices operating on commercial and / or industrial wireless networks, etc. Any of WTRUs 102a, 102b, 102c, and 102d may be interchangeably referred to as a UE.

[0025] The communication system 100 may also include base station 114a and / or base station 114b. Each of base stations 114a and 114b may be any type of device configured to wirelessly interface with at least one of WTRUs 102a, 102b, 102c, and 102d to facilitate access to one or more communication networks, such as CN 106 / 115, Internet 110, and / or other networks 112. As an example, base stations 114a and 114b may be base transceiver stations (BTS), Node-B, eNode B, home Node B, home eNode B, gNB, NR Node B, site controllers, access points (APs), wireless routers, etc. Although base stations 114a and 114b are each depicted as a single element, it should be understood that base stations 114a and 114b may include any number of interconnected base stations and / or network elements.

[0026] Base station 114a may be part of RAN 104 / 113, which may also include other base stations and / or network elements (not shown), such as base station controllers (BSCs), radio network controllers (RNCs), relay nodes, etc. Base station 114a and / or base station 114b may be configured to transmit and / or receive radio signals on one or more carrier frequencies, which may be referred to as cells (not shown). These frequencies may be in licensed spectrum, unlicensed spectrum, or a combination of licensed and unlicensed spectrum. A cell may provide coverage for radio services for a specific geographic area, which may be relatively fixed or may vary over time. A cell may also be divided into cell sectors. For example, the cell associated with base station 114a may be divided into three sectors. Therefore, in one embodiment, base station 114a may include three transceivers, i.e., one transceiver for each sector of the cell. In embodiments, base station 114a may employ multiple-input multiple-output (MIMO) technology and may utilize multiple transceivers for each sector of the cell. For example, beamforming may be used to transmit and / or receive signals in a desired spatial direction.

[0027] Base stations 114a and 114b can communicate with one or more of WTRUs 102a, 102b, 102c, and 102d via air interface 116. Air interface 116 can be any suitable wireless communication link (e.g., radio frequency (RF), microwave, centimeter wave, micrometer wave, infrared (IR), ultraviolet (UV), visible light, etc.). Air interface 116 can be established using any suitable radio access technology (RAT).

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

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

[0030] In the embodiment, base station 114a and WTRUs 102a, 102b, 102c can implement radio technologies such as NR radio access, which can use New Radio (NR) to establish air interface 116.

[0031] In the embodiments, base station 114a and WTRUs 102a, 102b, and 102c can implement multiple radio access technologies. For example, base station 114a and WTRUs 102a, 102b, and 102c can, for instance, use a dual connectivity (DC) principle to jointly implement LTE radio access and NR radio access. Therefore, the air interface used by WTRUs 102a, 102b, and 102c can be characterized by multiple types of radio access technologies and / or transmissions sent to and / or received from multiple types of base stations (e.g., eNBs and gNBs).

[0032] In other embodiments, base station 114a and WTRUs 102a, 102b, 102c can implement radio technologies such as IEEE 802.11 (i.e., Wi-Fi), IEEE 802.16 (i.e., Global Microwave Access Interoperability (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, Provisional Standard 2000 (IS-2000), Provisional Standard 95 (IS-95), Provisional Standard 856 (IS-856), Global System for Mobile Communications (GSM), Enhanced Data Rate for GSM Evolution (EDGE), GSM EDGE (GERAN), etc.

[0033] Figure 1A Base station 114b can be, for example, a wireless router, a home Node B, a home eNode B, or an access point, and can utilize any suitable RAT to facilitate wireless connectivity in local areas such as business premises, homes, vehicles, campuses, industrial facilities, air corridors (e.g., for drone use), roads, etc. In one embodiment, base station 114b and WTRUs 102c, 102d can implement radio technologies such as IEEE 802.11 to establish a wireless local area network (WLAN). In another embodiment, base station 114b and WTRUs 102c, 102d can implement radio technologies such as IEEE 802.15 to establish a wireless personal area network (WPAN). In yet another embodiment, base station 114b and WTRUs 102c, 102d can utilize cellular-based RATs (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) to establish picocells or femtocells. Figure 1A As shown, base station 114b can have a direct connection to Internet 110. Therefore, base station 114b can access Internet 110 without needing to go through CN106 / 115.

[0034] RAN 104 / 113 can communicate with CN 106 / 115, which can be any type of network configured as one or more of WTRU 102a, 102b, 102c, and 102d to provide voice, data, application, and / or Voice over Internet Protocol (VoIP) services. Data can have different Quality of Service (QoS) requirements, such as different throughput requirements, latency requirements, fault tolerance requirements, reliability requirements, data throughput requirements, mobility requirements, etc. CN 106 / 115 can provide call control, billing services, mobile location services, prepaid calling, internet connectivity, video distribution, etc., and / or perform advanced security functions such as user authentication. Although Figure 1AAlthough not shown, it should be understood that RAN 104 / 113 and / or CN 106 / 115 can communicate directly or indirectly with other RANs that use the same RAT as or a different RAT than RAN 104 / 113. For example, in addition to being connected to RAN 104 / 113, which can use NR radio technology, CN 106 / 115 can also communicate with another RAN (not shown) that uses GSM, UMTS, CDMA2000, WiMAX, E-UTRA, or WiFi radio technology.

[0035] CN 106 / 115 can also act as a gateway for WTRU 102a, 102b, 102c, 102d to access PSTN 108, the Internet 110, and / or other networks 112. PSTN 108 may include a circuit-switched telephone network providing Common Old-Style Telephone Service (POTS). The Internet 110 may include a global system of interconnected computer networks and devices using common communication protocols such as Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and / or Internet Protocol (IP) from the TCP / IP Internet Protocol Suite. Network 112 may include wired and / or wireless communication networks owned and / or operated by other service providers. For example, network 112 may include another CN connected to one or more RANs using the same RAT as or a different RAT than RAN 104 / 113.

[0036] Some or all of the WTRUs 102a, 102b, 102c, and 102d in the communication system 100 may include multi-mode capability (e.g., WTRUs 102a, 102b, 102c, and 102d may include multiple transceivers for communicating with different wireless networks via different wireless links). For example, Figure 1A The WTRU 102c shown can be configured to communicate with base station 114a, which can use cellular-based radio technology, and with base station 114b, which can use IEEE 802 radio technology.

[0037] Figure 1B This is a system diagram illustrating example WTRU 102. (See diagram below.) Figure 1B As shown, WTRU 102 may include a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a keyboard 126, a display / touchpad 128, non-removable memory 130, removable memory 132, a power supply 134, a global positioning system (GPS) chipset 136, and / or other peripheral devices 138, etc. It should be understood that WTRU 102 may include any sub-combination of the foregoing elements while remaining consistent with the embodiments.

[0038] Processor 118 can 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, any other type of integrated circuit (IC), a state machine, etc. Processor 118 can perform signal encoding, data processing, power control, input / output processing, and / or any other functions that enable WTRU 102 to operate in a wireless environment. Processor 118 can be coupled to transceiver 120, and transceiver 120 can be coupled to transmitting / receiving element 122. Although Figure 1B The processor 118 and transceiver 120 are depicted as separate components, but it should be understood that the processor 118 and transceiver 120 may be integrated together in an electronic package or chip.

[0039] Transmitting / receiving element 122 can be configured to transmit signals to or receive signals from a base station (e.g., base station 114a) via air interface 116. For example, in one embodiment, transmitting / receiving element 122 can be an antenna configured to transmit and / or receive RF signals. In another embodiment, transmitting / receiving element 122 can be a transmitter / detector configured to, for example, transmit and / or receive IR, UV, or visible light signals. In yet another embodiment, transmitting / receiving element 122 can be configured to transmit and / or receive both RF and optical signals. It should be understood that transmitting / receiving element 122 can be configured to transmit and / or receive any combination of wireless signals.

[0040] Although the transmitting / receiving element 122 is in Figure 1B While depicted as a single element, WTRU 102 may include any number of transmitting / receiving elements 122. More specifically, WTRU 102 may employ MIMO technology. Thus, in one embodiment, WTRU 102 may include two or more transmitting / receiving elements 122 (e.g., multiple antennas) for transmitting and receiving wireless signals via air interface 116.

[0041] Transceiver 120 can be configured to modulate signals transmitted by transmitting / receiving element 122 and demodulate signals received by transmitting / receiving element 122. As described above, WTRU 102 can have multimode capability. Therefore, transceiver 120 can include multiple transceivers to enable WTRU 102 to communicate via various RATs (e.g., NR and IEEE 802.11).

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

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

[0044] 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) about the current location of the WTRU 102. As a supplement to or alternative to the information from the GPS chipset 136, the WTRU 102 may receive location information from base stations (e.g., base stations 114a, 114b) via air interface 116, and / or determine its location based on the timing of signals received from two or more nearby base stations. It should be understood that the WTRU 102 may acquire location information using any suitable location determination method while remaining consistent with the embodiments.

[0045] The processor 118 may also be coupled to other peripheral devices 138, which may include one or more software and / or hardware modules that provide additional features, functions, and / or wired or wireless connectivity. For example, peripheral devices 138 may include accelerometers, electronic compasses, satellite transceivers, digital cameras (for photos and / or video), Universal Serial Bus (USB) ports, vibration devices, television transceivers, hands-free headsets, Bluetooth® modules, FM radio units, digital music players, media players, video game player modules, internet browsers, virtual reality and / or augmented reality (VR / AR) devices, activity trackers, etc. Peripheral devices 138 may include one or more sensors, which may be one or more of the following: gyroscopes, accelerometers, Hall effect sensors, magnetometers, orientation sensors, proximity sensors, temperature sensors, time sensors, geolocation sensors, altimeters, light sensors, touch sensors, magnetometers, barometers, gesture sensors, biometric sensors, and / or humidity sensors.

[0046] WTRU 102 may include a full-duplex radio for which the transmission and reception of some or all signals (e.g., associated with specific subframes for both UL (e.g., for transmission) and downlink (e.g., for reception)) may be concurrent and / or simultaneous. The full-duplex radio may include an interference management unit to reduce and / or substantially eliminate self-interference via hardware (e.g., chokes) or via signal processing by a processor (e.g., a separate processor (not shown) or via processor 118). In embodiments, WTRU 102 may include a half-duplex radio for which the transmission and reception of some or all signals (e.g., associated with specific subframes for UL (e.g., for transmission) or downlink (e.g., for reception) may be concurrent and / or simultaneous.

[0047] Figure 1C This is a system diagram illustrating RAN 104 and CN 106 according to an embodiment. As described above, RAN 104 can communicate with WTRUs 102a, 102b, and 102c via air interface 116 using E-UTRA radio technology. RAN 104 can also communicate with CN 106.

[0048] RAN 104 may include eNode-Bs 160a, 160b, and 160c, but it should be understood that RAN 104 may include any number of eNode-Bs while remaining consistent with the embodiments. Each of eNode-Bs 160a, 160b, and 160c may include one or more transceivers for communicating with WTRUs 102a, 102b, and 102c via air interface 116. In one embodiment, eNode-Bs 160a, 160b, and 160c may implement MIMO technology. Therefore, for example, eNode-B 160a may use multiple antennas to transmit radio signals to and / or receive radio signals from WTRU 102a.

[0049] Each of the eNode-B 160a, 160b, and 160c can be associated with a specific cell (not shown) and can be configured to handle radio resource management decisions, handover decisions, and user scheduling in the UL and / or DL, etc. Figure 1C As shown, eNode-B 160a, 160b, and 160c can communicate with each other via the X2 interface.

[0050] Figure 1C The CN 106 shown 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 foregoing elements is depicted as part of the CN 106, it should be understood that any of these elements may be owned and / or operated by an entity other than the CN operator.

[0051] The MME 162 can connect to each of the eNode-Bs 162a, 162b, and 162c in RAN 104 via the S1 interface and can be used as a control node. For example, the MME 162 can be responsible for authenticating users of WTRUs 102a, 102b, and 102c, bearer activation / deactivation, and selecting a specific serving gateway during the initial attachment of WTRUs 102a, 102b, and 102c. The MME 162 can provide control plane functions for handover between RAN 104 and other RANs (not shown) employing other radio technologies such as GSM and / or WCDMA.

[0052] The SGW 164 can connect to each of the eNode Bs 160a, 160b, and 160c in RAN 104 via the S1 interface. The SGW 164 typically routes and forwards user data packets to / from WTRUs 102a, 102b, and 102c. The SGW 164 can perform other functions, such as anchoring the user plane during inter-eNode B handover, triggering paging when DL data is available for WTRUs 102a, 102b, and 102c, and managing and storing the context of WTRUs 102a, 102b, and 102c.

[0053] The SGW 164 can connect to the PGW 166, which can provide WTRU 102a, 102b, and 102c with access to packet-switched networks (such as the Internet 110) to facilitate communication between WTRU 102a, 102b, and 102c and IP-enabled devices.

[0054] CN 106 can facilitate communication with other networks. For example, CN 106 can provide WTRUs 102a, 102b, and 102c with access to circuit-switched networks (such as PSTN 108) to facilitate communication between WTRUs 102a, 102b, and 102c and traditional landline communication equipment. For example, CN 106 may include or be able to communicate with an IP gateway (such as an IP Multimedia Subsystem (IMS) server), which serves as an interface between CN 106 and PSTN 108. Furthermore, CN 106 can provide WTRUs 102a, 102b, and 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers.

[0055] Although WTRU is Figures 1A to 1D While described as a wireless terminal, it is envisioned that in some representative embodiments, such a terminal may use (e.g., temporarily or permanently) a wired communication interface with a communication network.

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

[0057] A WLAN in Infrastructure Basic Services Set (BSS) mode may have an access point (AP) for the BSS and one or more stations (STAs) associated with that AP. The AP may have access or an interface to a distribution system (DS) or another type of wired / wireless network that carries traffic entering and / or leaving the BSS. Traffic originating outside the BSS destined for a STA can be delivered to the AP via it. Traffic originating from a STA destined for a destination outside the BSS can be sent to the AP for delivery to its respective destination. Traffic between STAs within the BSS can be sent via the AP, for example, where a source STA can send traffic to the AP, and the AP can deliver that traffic to the destination STA. Traffic between STAs within the BSS may be considered and / or referred to as peer-to-peer traffic. Peer-to-peer traffic can be sent between a source STA and a destination STA (e.g., directly between them) using Direct Link Establishment (DLS). In some representative embodiments, the DLS may use 802.11e DLS or 802.11z Tunneled DLS (TDLS). WLANs using the Standalone BSS (IBSS) mode can function without an access point (AP), and STAs within the IBSS or using the IBSS (e.g., all STAs) can communicate directly with each other. The IBSS communication mode may sometimes be referred to as a "self-organizing" communication mode in this document.

[0058] When using 802.11ac infrastructure operating mode or a similar operating mode, the AP can transmit beacons on a fixed channel, such as the primary channel. The primary channel can have a fixed width (e.g., a 20 MHz wide bandwidth) or a width dynamically set via signaling. The primary channel can be the operating channel of the BSS and can be used by STAs to establish connections with the AP. In some representative embodiments, Carrier Sense Multiple Access (CSMA / CA) with collision avoidance can be implemented, for example, in an 802.11 system. For CSMA / CA, STAs including the AP (e.g., each STA) can listen on the primary channel. If the primary channel is listened to / detected by a particular STA and / or determined to be busy, that particular STA can back off. In a given BSS, one STA (e.g., only one station) can transmit at any given time.

[0059] High-throughput (HT) STAs can communicate using a 40 MHz wide channel, for example by combining a primary 20 MHz channel with adjacent or non-adjacent 20 MHz channels to form a 40 MHz wide channel.

[0060] Very High Throughput (VHT) STAs 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 consecutive 20 MHz channels. A 160 MHz channel can be formed by combining eight consecutive 20 MHz channels, or by combining two non-consecutive 80 MHz channels, which can be referred to as an 80+80 configuration. For the 80+80 configuration, after channel coding, the data is divided into two streams by a segmentation parser. Inverse Fast Fourier Transform (IFFT) processing and time-domain processing can be performed on each stream separately. The streams can be mapped onto the two 80 MHz channels, and the data can be transmitted by the transmitting STA. At the receiver of the receiving STA, the above operations for the 80+80 configuration can be reversed, and the combined data can be sent to the Media Access Control (MAC).

[0061] 802.11af and 802.11ah support sub-1 GHz operating modes. The channel operating bandwidth and carrier in 802.11af and 802.11ah are reduced compared to those used in 802.11n and 802.11ac. 802.11af supports 5 MHz, 10 MHz, and 20 MHz bandwidths in the TV whitespace (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 instrument-type control / machine-type communication, such as MTC devices in macro coverage areas. MTC devices may have certain capabilities, such as limited capabilities, including support for (e.g., only support) certain and / or limited bandwidths. MTC devices may include batteries with a battery life exceeding a threshold (e.g., to maintain a very long battery life).

[0062] WLAN systems that can support multiple channels and channel bandwidths (such as 802.11n, 802.11ac, 802.11af, and 802.11ah) include channels that can be designated as the primary channel. The bandwidth of the primary channel can be equal to the maximum common operating bandwidth supported by all STAs in the BSS. The bandwidth of the primary channel can be set and / or limited by the STAs operating in the BSS that support the minimum bandwidth operating mode. In the example of 802.11ah, for STAs that support (e.g., only support) the 1 MHz mode (e.g., MTC type devices), the primary channel can be 1 MHz wide, 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 Sense and / or Network Allocation Vector (NAV) settings can depend on the status of the primary channel. If the primary channel is busy, for example because an STA (which only supports the 1 MHz operating mode) is transmitting to the AP, the entire available band can be considered busy, even if most of the band is still idle and available.

[0063] In the United States, the available frequency band for 802.11ah is 902 MHz to 928 MHz. In South Korea, the available frequency band is 917.5 MHz to 923.5 MHz. In Japan, the available frequency band is 916.5 MHz to 927.5 MHz. Depending on the country code, the total available bandwidth for 802.11ah ranges from 6 MHz to 26 MHz.

[0064] Figure 1D This is a system diagram illustrating RAN 113 and CN 115 according to an embodiment. As described above, RAN 113 can communicate with WTRUs 102a, 102b, and 102c via air interface 116 using NR radio technology. RAN 113 can also communicate with CN 115.

[0065] RAN 113 may include gNBs 180a, 180b, and 180c, but it should be understood that RAN 113 may include any number of gNBs while remaining consistent with the embodiments. Each of gNBs 180a, 180b, and 180c may include one or more transceivers for communicating with WTRUs 102a, 102b, and 102c via air interface 116. In one embodiment, gNBs 180a, 180b, and 180c may implement MIMO technology. For example, gNBs 180a and 180b may utilize beamforming to transmit signals to and / or receive signals from gNBs 180a, 180b, and 180c. Therefore, for example, gNB 180a may use multiple antennas to transmit radio signals to and / or receive radio signals from WTRU 102a. In embodiments, gNBs 180a, 180b, and 180c can implement carrier aggregation technology. For example, gNB 180a can transmit multiple component carriers to WTRU 102a (not shown). A subset of these component carriers can be on unlicensed spectrum, while the remaining component carriers can be on licensed spectrum. In embodiments, gNBs 180a, 180b, and 180c can implement Coordinated Multipoint (CoMP) technology. For example, WTRU 102a can receive coordinated transmissions from gNBs 180a and 180b (and / or gNB 180c).

[0066] WTRUs 102a, 102b, and 102c can communicate with gNBs 180a, 180b, and 180c using transmissions associated with a scalable set of parameters. For example, OFDM symbol spacing and / or OFDM subcarrier spacing can vary for different transmissions, different cells, and / or different portions of the radio transmission spectrum. WTRUs 102a, 102b, and 102c can communicate with gNBs 180a, 180b, and 180c using multiple or scalable length subframes or transmission time intervals (TTIs) (e.g., containing different numbers of OFDM symbols and / or absolute times of varying durations).

[0067] gNBs 180a, 180b, and 180c can be configured to communicate with WTRUs 102a, 102b, and 102c in standalone and / or non-standalone configurations. In standalone configuration, WTRUs 102a, 102b, and 102c can communicate with gNBs 180a, 180b, and 180c without further access to other RANs (such as eNode-Bs 160a, 160b, and 160c). In standalone configuration, WTRUs 102a, 102b, and 102c can utilize one or more of gNBs 180a, 180b, and 180c as mobility anchors. In standalone configuration, WTRUs 102a, 102b, and 102c can communicate with gNBs 180a, 180b, and 180c using signals in unlicensed frequency bands. In a non-standalone configuration, WTRUs 102a, 102b, and 102c can communicate / connect with other RANs (such as eNode-Bs 160a, 160b, and 160c) while simultaneously communicating / connecting with gNBs 180a, 180b, and 180c. For example, WTRUs 102a, 102b, and 102c can implement DC principles to communicate substantially simultaneously with one or more gNBs 180a, 180b, and 180c, as well as one or more eNode-Bs 160a, 160b, and 160c. In a non-standalone configuration, eNode-Bs 160a, 160b, and 160c can act as mobility anchors for WTRUs 102a, 102b, and 102c, and gNBs 180a, 180b, and 180c can provide additional coverage and / or throughput to serve WTRUs 102a, 102b, and 102c.

[0068] Each of gNBs 180a, 180b, and 180c can be associated with a specific cell (not shown) and can be configured to handle radio resource management decisions, handover decisions, user scheduling in UL and / or DL, network slicing support, dual connectivity, interoperability between NR and E-UTRA, user plane data routing to User Plane Functions (UPF) 184a and 184b, and control plane information routing to Access and Mobility Management Functions (AMF) 182a and 182b, etc. Figure 1D As shown, gNB 180a, 180b, and 180c can communicate with each other via the Xn interface.

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

[0070] AMF 182a and 182b can connect to one or more of gNBs 180a, 180b, and 180c in RAN 113 via the N2 interface and can be used as control nodes. For example, AMF 182a and 182b can be responsible for authenticating users of WTRU 102a, 102b, and 102c, supporting network slicing (e.g., handling different PDU sessions with different requirements), selecting specific SMFs 183a and 183b, managing registration areas, terminating NAS signaling, mobility management, etc. Network slices can be used by AMF 182a and 182b to customize CN support for WTRU 102a, 102b, and 102c based on the service types used by WTRU 102a, 102b, and 102c. For example, different network slices can be established for different use cases, such as services relying on Ultra Reliable Low Latency (URLLC) access, services relying on Enhanced Mobile Broadband (eMBB) access, and services for Machine Type Communication (MTC) access. The AMF162 can provide control plane functions for switching between 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.

[0071] SMFs 183a and 183b can connect to AMFs 182a and 182b in CN 115 via the N11 interface. SMFs 183a and 183b can also connect to UPFs 184a and 184b in CN 115 via the N4 interface. SMFs 183a and 183b can select and control UPFs 184a and 184b, and configure service routes through UPFs 184a and 184b. SMFs 183a and 183b can perform other functions, such as managing and allocating UE IP addresses, managing PDU sessions, controlling policy enforcement and QoS, and providing downlink data notifications. PDU session types can be IP-based, non-IP-based, Ethernet-based, etc.

[0072] UPF 184a and 184b can be connected via the N3 interface to one or more of the gNBs 180a, 180b, and 180c in RAN 113. This N3 interface provides WTRU 102a, 102b, and 102c with access to packet-switched networks (such as the Internet 110) to facilitate communication between WTRU 102a, 102b, and 102c and IP-enabled devices. UPF 184 and 184b can 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, and providing mobility anchoring.

[0073] CN 115 can facilitate communication with other networks. For example, CN 115 may include or be able to communicate with an IP gateway (such as an IP Multimedia Subsystem (IMS) server), which serves as an interface between CN 115 and PSTN 108. Furthermore, CN 115 can provide WTRUs 102a, 102b, and 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, WTRUs 102a, 102b, and 102c can be connected to local data networks (DNs) 185a and 185b via the N3 interface with UPFs 184a and 184b and the N6 interface between UPFs 184a and 184b and DNs 185a and 185b.

[0074] Given Figures 1A to 1D as well as Figures 1A to 1D The functions described herein with respect to one or more of the following can be performed by one or more emulation devices (not shown): WTRU 102a to 102d, base stations 114a and 114b, eNode-B 160a to 160c, MME 162, SGW 164, PGW 166, gNB 180a to 180c, AMF 182a and 182b, UPF 184a and 184b, SMF 183a and 183b, DN 185a and 185b, and / or any other devices described herein. An emulation device can be one or more devices configured to emulate one or more of the functions described herein. For example, an emulation device can be used to test other devices and / or emulate network and / or WTRU functions.

[0075] Simulation devices can be designed to perform one or more tests on other devices in laboratory and / or carrier network environments. For example, one or more simulation devices can perform one or more functions, fully or partially implemented and / or deployed as part of a wired and / or wireless communication network, to test other devices within the communication network. One or more simulation devices can perform one or more functions, temporarily implemented / deployed as part of a wired and / or wireless communication network. Simulation devices can be directly coupled to another device for testing purposes and / or can perform tests using over-the-air wireless communication.

[0076] One or more simulation devices can perform one or more functions, including all of them, without being implemented / deployed as part of a wired and / or wireless communication network. For example, simulation devices can be used in test scenarios within a test laboratory and / or non-deployed (e.g., testing) wired and / or wireless communication networks to perform testing on one or more components. One or more simulation devices can be test equipment. Simulation devices can transmit and / or receive data using direct RF coupling and / or wireless communication via RF circuitry (which may include one or more antennas).

[0077] This application describes various aspects, including tools, features, examples, models, methods, etc. Many of these aspects are described in detail and, at least to demonstrate individual characteristics, are generally described in a manner that may sound restrictive. However, this is for clarity and does not limit the scope of this application or these aspects. In fact, all the different aspects can be combined and interchanged to provide other aspects. Furthermore, these aspects can be combined and interchanged with aspects described in earlier applications.

[0078] The aspects described and contemplated in this application can be implemented in many different forms. The accompanying drawings provided herein provide some examples, but other examples are contemplated. The discussion of the drawings does not limit the breadth of implementations. At least one aspect generally relates to video encoding and decoding, and at least another aspect generally relates to the transmission of a generated or encoded bitstream. These and other aspects can be implemented as methods, apparatus, computer-readable media (e.g., storage media) (including, for example, instructions stored thereon for encoding or decoding video data according to any of the described methods), and / or computer-readable storage media (on which a bitstream generated according to any of the described methods is stored). When referred to herein, a bitstream can mean transmitted data, but can also mean data stored, generated, and / or accessed without being transmitted (e.g., non-transitory data).

[0079] In this application, the terms “reconstruction” and “decoding” are used interchangeably, the terms “pixel” and “sample” are used interchangeably, and the terms “image”, “picture” and “frame” are used interchangeably.

[0080] This document describes various methods, each including one or more steps or actions for implementing the described method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions can be modified or combined. Furthermore, terms such as "first" and "second" can 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 an ordering of the modified operations unless specifically required. Therefore, in this example, the first decoding does not need to be performed before the second decoding and can occur, for example, before, during, or within a time period overlapping with the second decoding.

[0081] The various methods and other aspects described in this application can be used to modify the module, for example... Figure 2 and Figure 3 The decoding modules of the video encoder 200 and decoder 300 are shown. Furthermore, the subject matter disclosed herein can be applied, for example, to any type, format, or version of video coding, whether described in standards or recommendations, whether pre-existing or future-developed, and any extensions to such standards and recommendations. Unless otherwise indicated or technically excluded, the aspects described in this application may be used alone or in combination.

[0082] Various numerical values ​​are used in the examples described in this application. These and other specific values ​​are used for the purpose of describing the examples, and the aspects described are not limited to these specific values.

[0083] Figure 2 This is a diagram illustrating an example video encoder. Variations of the example encoder 200 are envisioned, but for clarity, encoder 200 is described below without describing all anticipated variations.

[0084] Before being encoded, the video sequence may undergo pre-coding, such as applying color transformations to the input color image (e.g., from RGB 4:4:4 to YCbCr 4:2:0), or performing remapping of the input image components to obtain a signal distribution that is more robust to compression (e.g., using histogram equalization on one of the color components). Metadata may be associated with the pre-processing and appended to the bitstream.

[0085] In encoder 200, the image is encoded by encoder elements as described below. The image to be encoded is divided 202 and processed in units, for example, coding units (CUs). Each unit is encoded using, for example, an intra-frame mode or an inter-frame mode. When a unit is encoded in intra-frame mode, it performs intra-frame prediction 260. In inter-frame mode, motion estimation 275 and compensation 270 are performed. The encoder determines 205 which of the intra-frame or inter-frame modes to use to encode the unit and indicates the intra-frame / inter-frame decision by, for example, a prediction mode flag. For example, the prediction residual is calculated by subtracting 210 prediction blocks from the original image block.

[0086] The predicted residual is then transformed (225) and quantized (230). The quantization transform coefficients, along with the motion vector and other syntax elements, are entropy-encoded (245) to output a bitstream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. Alternatively, the encoder can bypass both the transform and quantization, meaning the residual is directly encoded without applying either the transform or quantization process.

[0087] The encoder decodes the encoded block to provide a reference for further prediction. The quantization transform coefficients are dequantized 240 and inverse transformed 250 to decode the prediction residual. The decoded prediction residual and prediction block are combined 255 to reconstruct an image block. A loop filter 265 is applied to the reconstructed image to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored in a reference image buffer (280).

[0088] Figure 3 This is a diagram illustrating an example video decoder. In the example decoder 300, the bitstream is decoded by decoder elements as described below. The video decoder 300 typically performs the same operations as... Figure 2 The encoding process is the reverse of the decoding process. Encoder 200 typically also performs video decoding as part of the video data encoding.

[0089] Specifically, the decoder's input includes a video bitstream, which can be generated by the video encoder 200. The bitstream is first entropy decoded 330 to obtain transform coefficients, motion vectors, and other encoded information. Image segmentation information indicates how the image is segmented. Therefore, the decoder can segment 335 the image based on the decoded image segmentation information. The transform coefficients are dequantized 340 and inverse transformed 350 to decode the prediction residual. The decoded prediction residual and prediction block are combined 355 to reconstruct an image block. The prediction block can be obtained from intra-frame prediction 360 or motion-compensated prediction (i.e., inter-frame prediction) 375. A loop filter 365 is applied to reconstruct the image. The filtered image is stored in a reference image buffer 380.

[0090] The decoded image can be further processed by post-decoding 385, such as inverse color transformation (e.g., from YCbCr 4:2:0 to RGB 4:4:4) or remapping, which is the inverse of the remapping process performed in pre-encoding 201. Post-decoding can utilize metadata exported in the pre-encoding process and signaled in the bitstream. In the example, the decoded image (e.g., after applying the loop filter 365 and / or after post-decoding 385 (if post-decoding is used)) can be sent to a display device for rendering to the user.

[0091] Figure 4 This is a diagram illustrating examples of systems that can implement the various aspects and examples described herein. System 400 can be embodied as a device including the various components described below and configured to perform one or more aspects described in this document. 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 television receivers, personal video recording systems, networked home appliances, and servers. Elements of system 400 can be embodied individually or in combination in 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 many examples, system 400 is communicatively coupled to one or more other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In many examples, system 400 is configured to implement one or more aspects described in this document.

[0092] System 400 includes at least one processor 410 configured to execute instructions loaded thereon to implement various aspects, such as those described in this document. Processor 410 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 400 includes at least one memory 420 (e.g., volatile and / or non-volatile memory devices). System 400 includes a storage device 440, which may include non-volatile and / or volatile memory, including but not limited to electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, disk drives, and / or optical disk drives. As a non-limiting example, storage device 440 may include internal storage devices, attached storage devices (including removable and non-removable storage devices), and / or network-accessible storage devices.

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

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

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

[0096] Inputs to the components of system 400 can be provided by a variety of input devices as shown in box 445. Such input devices include, but are not limited to: (i) a radio frequency (RF) section that receives, for example, RF signals transmitted over the air by a broadcaster; (ii) component input terminals (or sets of COMP input terminals); (iii) universal serial bus (USB) input terminals; and / or (iv) high-definition multimedia interface (HDMI) input terminals. Figure 4 Other examples not shown include composite video.

[0097] In various examples, the input device of block 445 has associated corresponding 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 known as selecting a signal, or band-limiting a signal to a band); (ii) down-converting the selected signal; (iii) band-limiting it again to a narrower band to select, for example, a signal band, which may be referred to as a channel in some examples; (iv) demodulating the down-converted and band-limited signal; (v) performing error correction; and / or (vi) demultiplexing to select a desired data packet stream. The RF section of various examples includes one or more elements performing these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF section may include tuners performing a variety of these functions, including, for example, down-converting the received signal to a lower frequency (e.g., intermediate frequency or near-baseband frequency) or to baseband. In one set-top box example, the RF section and its associated input processing elements receive RF signals transmitted via a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and re-filtering to the desired frequency band. Various examples rearrange the order of the above (and other) components, remove some of these components, and / or add other components that perform similar or different functions. Adding components may include inserting components between existing components, such as, for example, inserting amplifiers and analog-to-digital converters. In many examples, the RF section includes an antenna.

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

[0099] Various components of system 400 can be housed within an integrated housing. Within the integrated housing, various components can be interconnected and transmit data therebetween using suitable connection means 425 (e.g., internal buses known in the art, including inter-IC (I2C) buses, wiring, and printed circuit boards).

[0100] System 400 includes a communication interface 450 that enables communication with other devices via a communication channel 460. The communication interface 450 may include, but is not limited to, a transceiver configured to transmit and receive data on the communication channel 460. The communication interface 450 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 460 may be implemented, for example, within a wired and / or wireless medium.

[0101] In several examples, data is provided to system 400 via streaming or otherwise using a wireless network, such as a Wi-Fi network (e.g., IEEE 802.11, where IEEE stands for Institute of Electrical and Electronics Engineers). In these examples, the Wi-Fi signal is received via a communication channel 460 and a communication interface 450 adapted for Wi-Fi communication. The communication channel 460 in these examples is typically connected to an access point or router, providing access to external networks, including the Internet, to allow streaming applications and other over-the-top services to communicate. Other examples use a set-top box to provide streaming data to system 400, delivering data via an HDMI connection in input box 445. Still other examples use an RF connection in input box 445 to provide streaming data to system 400. As mentioned above, several examples provide data in a non-streaming manner. Furthermore, several examples use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth® networks.

[0102] System 400 can provide output signals to a variety of output devices, including a display 475, a speaker 485, and other peripheral devices 495. Various examples of the display 475 include one or more of, for example, a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display 475 can be used in televisions, tablets, laptops, cellular phones (mobile phones), or other devices. The display 475 can also be integrated with other components (e.g., as in a smartphone) or separate (e.g., as an external monitor for a laptop computer). In various examples, other peripheral devices 495 include one or more of a standalone digital video disc (or digital multifunction disc) (DVD, used for both terms), an optical disc player, a stereo system, and / or a lighting system. Various examples utilize one or more peripheral devices 495 that provide functionality based on the output of system 400. For example, an optical disc player performs the function of playing the output of system 400.

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

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

[0105] The example can be executed by computer software implemented by processor 410, or by hardware, or a combination of hardware and software. As a non-limiting example, the example can be implemented by one or more integrated circuits. Memory 420 can be of any type suitable for the technical environment and can be implemented using any suitable data storage technology, such as optical storage devices, magnetic storage devices, semiconductor-based storage devices, fixed memory, and removable memory as non-limiting examples. Processor 410 can be of any type suitable for the technical environment and can encompass one or more of microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures as non-limiting examples.

[0106] Various implementations include decoding. As used in this application, "decoding" can encompass all or part of the process performed on a received encoded sequence to produce a final output suitable for display. In many examples, such processes include one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In many examples, such processes also or alternatively include processes performed by the decoder of the various implementations described in this application.

[0107] As other examples, in one example "decoding" refers only to entropy decoding, in another "decoding" refers only to differential decoding, and in yet another "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to specifically refer to a subset of operations or generally to a broader decoding process will be clear from the specific context of the description and is considered fully understandable by those skilled in the art.

[0108] Various implementations include encoding. Similar to the discussion of "decoding" above, the term "encoding" as used herein can encompass, for example, all or part of the process performed on an input video sequence to produce an encoded bitstream. In various examples, such processes include one or more processes typically performed by an encoder, such as partitioning, differential coding, transform, quantization, and entropy coding. In various examples, such processes also or alternatively include processes performed by encoders of the various implementations described in this application.

[0109] As other examples, in one example "encoding" refers only to entropy encoding, in another "encoding" refers only to differential encoding, and in yet another "encoding" refers to a combination of differential and entropy encoding. Whether the phrase "encoding process" is intended to specifically refer to a subset of operations or generally to a broader encoding process will be clear from the specific context of the description and is considered well understood by those skilled in the art.

[0110] Note that the grammatical elements used in this article are descriptive terms. Therefore, the use of other grammatical element names is not excluded.

[0111] When a diagram is presented as a flowchart, it should be understood that a block diagram of the corresponding apparatus is also provided. Similarly, when a diagram is presented as a block diagram, it should be understood that a flowchart of the corresponding method / process is also provided.

[0112] The implementations and aspects described herein can be implemented, for example, as methods or procedures, apparatus, software programs, data streams, or signals. Even if discussed only in the context of a single implementation (e.g., discussed only as a method), the implementation of the features in question can be implemented in other forms (e.g., apparatus or program). Apparatus can be implemented, for example, with appropriate hardware, software, and firmware. Methods can be implemented, for example, in a processor, where processor refers generally to a processing device, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices, such as, for example, computers, cellular phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate information communication between end users.

[0113] The reference to “an example” or “an example” or “an implementation” or “an implementation” and its variations means that the specific feature, structure, characteristic, etc., described in connection with the example is included in at least one example. Therefore, the appearance of the phrase “in an example” or “in an example” or “in an implementation” or “in an implementation” and any other variations in multiple places in this application does not necessarily refer to the same example.

[0114] Furthermore, this application may refer to "determining" various types of information. Determining information may include, for example, one or more of estimation information, calculation information, prediction information, or information retrieved from memory. Obtaining may include receiving, retrieving, constructing, generating, and / or determining.

[0115] Furthermore, this application may refer to "accessing" various types of information. Accessing information may include, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information, or one or more of these.

[0116] Furthermore, this application may refer to "receiving" various types of information. "Receiving," like "accessing," is a broad term. Receiving information may include, for example, accessing information or retrieving information (e.g., from memory) from one or more sources. Moreover, "receiving" generally refers in some way to operations such as, for example, storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.

[0117] It should be understood that the use of any of the following “ / ”, “and / or”, and “…at least one of…”, such as in the cases of “A / B”, “A and / or B”, and “at least one of A and B”, is intended to cover selecting only the first listed option (A), selecting only the second listed option (B), or selecting both options (A and B). As another example, in the cases of “A, B, and / or C” and “at least one of A, B, and C”, such wording is intended to cover selecting only the first listed option (A), selecting only the second listed option (B), selecting only the third listed option (C), selecting only the first and second listed options (A and B), selecting only the first and third listed options (A and C), selecting only the second and third listed options (B and C), or selecting all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to as many items as possible listed.

[0118] Furthermore, as used herein, the term "signal" specifically refers to instructing the corresponding decoder to do something. In this way, in the examples, the same parameters are used on both the encoder and decoder sides. Therefore, for example, the encoder can transmit (explicit signaling) a specific parameter to the decoder so that the decoder can use the same specific parameter. Conversely, if the decoder already has that specific parameter along with other parameters, signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select that specific parameter. Bit savings are achieved in various examples by avoiding the transmission of any actual functionality. It should be understood that signaling can be done in various ways. For example, in various examples, one or more syntax elements, flags, etc., are used to signal information to the corresponding decoder. While the foregoing refers to the verb form of the term "signal," the term "signal" can also be used as a noun in this document.

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

[0120] This document describes numerous examples. Features of the examples may be provided individually or in any combination across multiple claim classes and types. Furthermore, examples may include one or more of the features, devices, or aspects described herein, individually or in any combination across multiple claim classes and types. For example, the features described herein may be implemented in a bitstream or signal including information generated as described herein. This information may allow a decoder to decode a bitstream, encoder, bitstream, and / or decoder according to any of the embodiments described. For example, the features described herein may be implemented by creating and / or transmitting and / or receiving and / or decoding a bitstream or signal. For example, the features described herein may be implemented as a method, process, apparatus, medium storing instructions (e.g., a computer-readable medium), medium storing data, or signal. For example, the features described herein may be implemented by a TV, set-top box, cellular phone, tablet computer, or other electronic device performing decoding. The TV, set-top box, cellular phone, tablet computer, or other electronic device may display (e.g., using a monitor, screen, or other type of display) a resulting image (e.g., an image reconstructed from the residual of a video bitstream). The TV, set-top box, cellular phone, tablet computer, or other electronic device may receive a signal including an encoded image and perform decoding.

[0121] Intra-Template Matching Prediction (IntraTMP) can be used as a prediction tool or pattern (e.g., an intra-prediction tool or pattern). IntraTMP can copy a prediction block (e.g., the best prediction block) from the reconstructed portion of the current frame or image, whose template (e.g., an L-shaped template) matches the current template (e.g., the L-shaped template associated with the current frame or image). The encoder can use IntraTMP to search (e.g., based on a predefined search range) for the template most similar to the current template in the reconstructed portion of the current frame, and can use the corresponding block as a prediction block (e.g., for the current video block). The encoder can signal the use of IntraTMP (e.g., in the video bitstream) to the decoder, and the same operation can be performed on the decoder side.

[0122] Figure 5 An example of IntraTMP is shown. Figure 5 As shown, the encoder or decoder can generate a predicted signal by matching the L-shaped causal neighbors of the current block with another block in a predefined search area. Figure 5 In this diagram, R1 can represent the current CTU, R2 can represent the top-left CTU, R3 can represent the top CTU, and R4 can represent the left-side CTU. The sum of absolute differences (SAD) can be used as the cost function for IntraTMP. Figure 5Within each region shown (e.g., R1 to R4), the encoder or decoder can search for a template (e.g., a matching template) that has a smaller SAD relative to the current template (e.g., the template associated with the current block), and can use the block corresponding to the matching template as the prediction block for the current block.

[0123] The size of the search region (SearchRange_w, SearchRange_h) can be set to be proportional to the size of the current block (BlkW, BlkH), for example, to have a fixed number of SAD comparisons per pixel. For example, the following can be true: SearchRange_w = a BlkW SearchRange_h = a BlkH 'a' can be a constant that controls the gain / complexity tradeoff (for example, the value of 'a' can be 5).

[0124] In the example, IntraTMP can be enabled for (e.g., only for) CUs with a width and height less than or equal to 64 pixels. The maximum CU size for IntraTMP enabling can be configurable. In the example, IntraTMP enabling can be notified at the CU level with a signal (e.g., via a dedicated flag and / or if DIMD is not used for the current CU).

[0125] In the example, multiple candidates (e.g., multiple candidate block vectors) can be identified associated with IntraTMP. An index can be used to indicate the best candidate. The encoder can encode such an index into the bitstream (e.g., the index can be signaled to the decoder). In the example, fusion can be performed using IntraTMP (e.g., a weighted average based on multiple candidate blocks), where the weights used for fusion can be derived based on template cost or set to a fixed value. The number of fused blocks can be configurable or based on a threshold (e.g., up to 3 candidate blocks can be fused). If only one block is selected for fusion, the final predictor can be derived based on the fusion of the selected (e.g., matched) block with an intra-predictor derived using Planar mode. In the example, IntraTMP can support sub-pixel precision. Sub-pixel positions around integer pixel positions obtained based on template matching can be used with IntraTMP. Filters such as DCT-IF filters can be used for sub-pixel interpolation.

[0126] In the example, adaptive IntraTMP fusion can be performed (e.g., utilizing up to two prediction blocks corresponding to the best and second best TM costs). Figure 6 An example of adaptive IntraTMP fusion is shown. Figure 6In this context, P1 can represent the prediction data with the lowest TM cost, and P2 can represent the prediction data with the second lowest TM cost. One or more (e.g., two) conditions can be evaluated to determine whether fusion should be applied. The weights associated with fusion can be derived in a manner similar to template-based intra-frame mode derivation (TIMD). In the example, the fused prediction (e.g., the final fused prediction) can be defined as a weighted sum of P1 and P2.

[0127] IntraTMP can be executed in various modes or methods, including, for example, left-side template mode, top-side template mode, and / or L-shaped fusion mode. Left-side and top-side template modes can derive template matching candidates using the left side of the current CU or the top of the current CU, respectively. L-shaped fusion mode can fuse multiple (e.g., the best two) template matching candidates, for example, according to a cost-based linear combination formula. Figure 7 Examples of template shapes are shown, such as L-shaped templates, left-side templates, and top (or above) templates.

[0128] Local illumination compensation (LIC) can be applied during video encoding. LIC can use a linear model to determine the illumination changes between a reference template and the current template. Illumination can be represented as y = Ax + B, where Y can represent the modified (e.g., reconstructed) value of x, and A and B can represent linear models (e.g., model parameters) calculated based on the current and reference templates.

[0129] LIC can be used with IntraTMP (e.g., together with it), and its use can be indicated by flags (e.g., CU-level flags) (e.g., signaled in the bitstream). In the example, the LIC model determines whether encoding (e.g., for screen content) can be based on (e.g., based only on) the top template or the left template. In the example, if LIC is enabled, the top-left template (e.g., only the top-left template) can be used to encode camera-captured content. If LIC is enabled / used for a given CU, the IntraTMP search can use the MRSAD (e.g., instead of SAD) distortion function to search for block vectors.

[0130] In the example, an IntraTMP search can be performed based on multiple candidates (e.g., block vectors or blocks), including, for example, one or more neighboring blocks of the current block (e.g., neighboring blocks may be adjacent to or not adjacent to the current block), which can be encoded using IntraTMP or Intra-Block Copy (IBC). These candidates (e.g., candidate blocks or candidate block vectors) can be referred to as IntraTMP merge candidates. One or more operations (e.g., template matching operations) can be performed to rank the candidates (e.g., new candidates and already computed candidates, such as those derived through sparse search)). Multiple (e.g., up to 25) local (e.g., adjacent to the current block) and / or non-local (e.g., not adjacent and farther from the current block) blocks can be examined to select candidates (e.g., merge candidates). The processing order of these blocks can be similar to (e.g., the same) as the processing order used in IBC merge mode. After finding a block vector (or block) within a local or non-local block (e.g., the adjacent and / or non-adjacent neighbors of the current CU), the block vector can be added to the IntraTMP candidate list.

[0131] The template cost associated with a merge candidate can be obtained in a similar manner to other IntraTMP candidates (e.g., the same way). Merge candidates can be ranked alongside other candidates. A certain number of candidates (e.g., the top 30) can be selected for further refinement.

[0132] Multiple metrics can be used in IntraTMP. These metrics can correspond to corresponding cost functions that can be used for template matching, such as, for example, SAD, MRSAD, SATD, etc. A SAD-based metric can be the sum of the absolute differences between corresponding pixels of a candidate template (e.g., associated with a candidate block) and the current template (e.g., associated with the current block). SAD can also be called the L1 norm and can be represented as follows:

[0133] MRSAD-based metrics can be used to represent the difference between two templates or two blocks by subtracting the average of the absolute differences between corresponding pixels from the sum of those absolute differences. This can be represented as follows:

[0134]

[0135] SATD-based metrics or HAD-based metrics (such as Hadamard-based SATD) can be considered for application to block transformations. For example, such metrics can apply transformations such as the Hadamard transform to blocks and compute SAD based on the transformed blocks.

[0136] Metrics based on MR_SATD (or MR_HAD) can be considered for transformations that can be applied to blocks. For example, such metrics can be used to apply transformations such as the Hadamard transform to blocks and to compute MR_SAD based on the transformed blocks.

[0137] The SSE (sum of squared errors) metric can be expressed as follows:

[0138] Using different (e.g., multiple) metrics (such as those mentioned above) in IntraTMP searches can increase the diversity of IntraTMP candidate selection. Using one or more techniques described herein, additional candidates can be obtained based on these metrics with little or no redundancy. For example, redundancy can be reduced by modifying the IntraTMP search operations or procedures associated with different metrics, or by selecting different merge candidates for different metrics. For example, an encoder or decoder can be configured to perform an IntraTMP search using multiple metrics (e.g., based on different cost functions), such as a default metric and one or more additional metrics. The default metric may be based on a first cost function, such as a SAD-based cost function (e.g., used to compute template costs), and the additional metrics may be based on a second cost function, such as a MRSAD or SATD-based cost function. In this example scenario, two template searches can be performed, one using the default metric and the other using the additional metrics. Indicators (e.g., flags) can be used to indicate which metrics are or should be used in the search (e.g., from the encoder to the decoder). If the search (and / or subsequent merging operation) is performed in the same way between the two metrics, the same IntraTMP candidate set may be obtained, and redundancy may adversely affect the coding gain (e.g., because resources may have been used to determine and / or signal redundancy information).

[0139] Redundancy that may arise from using multiple metrics in IntraTMP can be removed / reduced using one or more of the following techniques. The first technique may involve modifying the search process. As mentioned above, when template matching is performed using multiple metrics, the process may produce the same block vectors if the matching is performed in the same way (except for different metrics used for cost estimation). To increase the chance of identifying additional / different block vectors, the template search range can be varied based on the metrics used. For example, when using different metrics, the starting position of the template search can be set differently (e.g., in the x and y directions). For example, a search based on the first metric may begin at a position determined by the subsampling factor (e.g., in the x and y directions), while a search based on the second metric may begin at a position deviating by a fraction (e.g., half) of the subsampling distance.

[0140] Figure 8Examples of using different starting positions for template searches performed based on different metrics are shown. As illustrated, the starting position of a default search (e.g., a search performed using a default metric such as SAD) can coincide with the subsampling position (e.g., marked with "X"), while the starting position of an additional search (e.g., a search performed using an additional metric such as MRSAD or SATD) can be offset from those positions of the default search by half the subsampling distance (e.g., in the x and y directions, such as...). Figure 8 (Marked with "O" in the text). This may cause template matching to be performed at different positions for the default and additional metrics (e.g., the X position of the default search and the O position of the additional search), thus increasing the chance of generating different block vectors for subsequent refinement.

[0141] Using the second technique, the IntraTMP merging process described herein can be modified to reduce or eliminate redundant merging candidates that may be identified based on multiple metrics (e.g., default and additional metrics). Without modification, the same merging process can be used for different metrics, potentially leading to the identification of the same candidates even when different metrics are applied. Therefore, in the example, merging candidates (e.g., a list of candidate block vectors) can be determined for a first metric (e.g., for a default metric such as SAD) but not for a second metric (e.g., an additional metric such as MRSAD) to reduce (e.g., eliminate) the chance of obtaining redundant candidates. A refinement process can then be performed (e.g., based on) the first metric to rank the candidates and / or select the best candidate for subsequent encoding operations. In the example, merging candidates can be identified for multiple metrics, but the candidate lists can be different for different metrics. For example, a first list of merging candidates (e.g., candidate block vectors) can be generated for the default metric based on neighboring blocks that can also be encoded with IntraTMP and use the default metric. A second list of merging candidates can be generated for the additional metric based on neighboring blocks that can also be encoded with IntraTMP and use the additional metric. This reduces (if not completely eliminates) redundant candidates for both metrics.

[0142] IntraTMP allows for a refinement process after identifying candidate blocks or sets of block vectors (e.g., via sparse search) to improve search results (e.g., by narrowing down suitable candidates). If multiple metrics are used with IntraTMP, and the refinement process is performed based on all samples surrounding the current sample (e.g., those used in the sparse search, but not used in the sparse search due to subsampling), this process may produce redundant candidates, such as… Figure 9 As shown. Figure 9As shown on the left, if the respective candidate blocks identified using the default metric and the additional metric (e.g., corresponding to the sample positions "x" and "o" in the figure, respectively) are close to each other (e.g., at least partially overlapping, which may be the case when the starting search position for the additional metric is offset relative to the starting search position for the default metric), then redundancy may occur during the refinement process if all samples in the candidate blocks are examined during the refinement process. If the candidate blocks are farther apart from each other (e.g., if the candidate blocks do not overlap), the problem may be mitigated (e.g., it may not exist).

[0143] A third technique can be used to reduce or eliminate the aforementioned redundancy during the refinement process. Instead of performing refinement based on all samples surrounding the current sample (e.g., based on a rectangular region formed by the current sample and surrounding samples), refinement can be performed based on a subset of samples surrounding the current sample, where the surrounding sample subset and the current sample can form a cross or plus sign shape (e.g., a "+" shape), such as... Figure 10 As shown, the remaining samples surrounding the current sample (e.g., samples surrounding the "+" shape) can be skipped for refinement purposes. In the example, the refinement region of the cross or plus shape can be used for one metric, while no refinement is performed on the other metric (e.g., completely skipped). This can remove (e.g., completely) redundancy (e.g., because there may be no overlap between the two metrics) and / or reduce the complexity of the refinement process (e.g., because less refinement and / or template search can be performed). In the example, the refinement region of the cross or plus shape can be used for two metrics (e.g., refinement can be performed on each candidate obtained using the two metrics), which can at least partially reduce redundancy.

[0144] The video encoding apparatus described herein can receive instructions to perform one or more IntraTMP searches associated with a current video block based at least on a first metric and a second metric. The video encoding apparatus can perform a first IntraTMP search on the current video block based on the first metric and a second IntraTMP search on the current video block based on the second metric, wherein the first IntraTMP search can be performed based on a first start position, and the second IntraTMP search can be performed based on a second start position different from the first start position. The video encoding apparatus can encode the current video block based at least on the first IntraTMP search and the second IntraTMP search.

[0145] The first IntraTMP search described herein can be performed based on subsampling of the current video block by a subsampling distance, and the difference between the first starting position and the second starting position can be equal to a fraction of the subsampling distance (e.g., half). The first IntraTMP search described herein can be a first sparse IntraTMP search, the second IntraTMP search described herein can be a second sparse IntraTMP search, and the video encoding device described herein can refine the results of the first sparse IntraTMP search based on a first subset of samples surrounding the current samples of the first prediction block, which is derived based on the first sparse IntraTMP search. The first subset of samples and the current samples of the first prediction block can together form a cross shape. For the refinement of the results of the first sparse IntraTMP search, other samples surrounding the current samples of the first prediction block can be skipped.

[0146] In some examples, the video coding apparatus described herein can further refine the results of a second sparse IntraTMP search based on a second subset of samples surrounding the current samples of the second prediction block, which is derived based on the second sparse IntraTMP search. The second subset of samples and the current samples of the second prediction block can also form a cross shape together, and for the refinement of the results of the second sparse IntraTMP search, other samples surrounding the current samples of the second prediction block can be skipped.

[0147] The first metric described herein can be associated with a first template matching cost function, and the second metric described herein can be associated with a second template matching cost function. The first template matching cost function can be based on the SAD between the template associated with the current video block and the template associated with the first candidate prediction block. The second template matching cost function is based on MRSAD or SATD between the template associated with the current video block and the template associated with the second candidate prediction block.

[0148] In the examples, the video coding apparatus described herein may construct a list of merge candidate block vectors associated with a first metric based on one or more neighboring video blocks of the current video block. In these examples, the video coding apparatus may not construct a list of merge candidate block vectors associated with a second metric.

[0149] In the examples, the video coding apparatus described herein can construct a first list of merge candidate block vectors associated with a first metric based on a first plurality of neighboring video blocks of the current video block, wherein the first plurality of neighboring video blocks may be encoded using IntraTMP and the first metric. In these examples, the video coding apparatus can also construct a second list of merge candidate block vectors associated with a second metric based on a second plurality of neighboring video blocks of the current video block, wherein the second plurality of neighboring video blocks are encoded using IntraTMP and the second metric.

[0150] While the features and elements described above are presented in specific combinations, each feature or element may be used alone without other features and elements of the preferred embodiment, or in multiple combinations with or without other features and elements. Although the implementations described herein may be considered for 3GPP-specific protocols, it should be understood that the implementations described herein are not limited to this scenario and can be applied to other wireless systems. For example, while the technical solutions described herein consider LTE, LTE-A, New Radio (NR), or 5G-specific protocols, it should be understood that the solutions described herein are not limited to this scenario and are also applicable to other wireless systems.

[0151] The above process can be implemented as a computer program, software, and / or firmware contained in a computer-readable medium for execution by a computer and / or processor. Examples of computer-readable media include, but are not limited to, electronic signals (transmitted via wired and / or wireless connections) and / or computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor storage devices, magnetic media (such as, but not limited to, internal hard disks and removable disks), magneto-optical media, and / or optical media (such as optical disc (CD)-ROM discs and / or digital versatile optical discs (DVDs)). The processor associated with the software can be used to implement a radio frequency transceiver for WTRUs, terminals, base stations, RNCs, and / or any host computer.

Claims

1. A video decoding device, comprising: The processor is configured as follows: Receive an instruction to perform one or more IntraTMP searches associated with the current video block based at least on a first metric and a second metric; A first IntraTMP search is performed on the current video block based on the first metric, wherein the first IntraTMP search is performed based on a first starting position; A second IntraTMP search is performed on the current video block based on the second metric, wherein the second IntraTMP search is performed based on a second starting position different from the first starting position; and The current video block is decoded based at least on the first IntraTMP search and the second IntraTMP search.

2. The video decoding apparatus of claim 1, wherein the first IntraTMP search is performed based on subsampling of the current video block at a subsampling distance, and wherein the difference between the first starting position and the second starting position is equal to a fraction of the subsampling distance.

3. The video decoding device as claimed in claim 2, wherein the difference between the first starting position and the second starting position is equal to half of the subsampling distance.

4. The video decoding apparatus of any one of claims 1-3, wherein the first IntraTMP search is a first sparse IntraTMP search, the second IntraTMP search is a second sparse IntraTMP search, and the processor is further configured to refine the result of the first sparse IntraTMP search based on a first subset of samples surrounding the current samples of the first prediction block, the first prediction block being derived based on the first sparse IntraTMP search, wherein the first subset of samples and the current samples of the first prediction block together form a cross shape, and wherein for the refinement of the result of the first sparse IntraTMP search, other samples surrounding the current samples of the first prediction block are skipped.

5. The video decoding apparatus of claim 4, wherein the processor is further configured to refine the results of the second sparse IntraTMP search based on a second subset of samples surrounding the current samples of the second prediction block, the second prediction block being derived based on the second sparse IntraTMP search, wherein the second subset of samples and the current samples of the second prediction block also form a cross shape together, and wherein for the refinement of the results of the second sparse IntraTMP search, other samples surrounding the current samples of the second prediction block are skipped.

6. The video decoding apparatus of any one of claims 1-5, wherein the first metric is associated with a first template matching cost function, and the second metric is associated with a second template matching cost function.

7. The video decoding apparatus of claim 6, wherein the first template matching cost function is based on the sum of absolute differences (SAD) between the template associated with the current video block and the template associated with the first candidate prediction block, wherein the second template matching cost function is based on the sum of absolute differences (MRSAD) or the sum of absolute transform differences (SATD) between the template associated with the current video block and the template associated with the second candidate prediction block.

8. The video decoding apparatus of any one of claims 1-7, wherein the processor is further configured to construct a list of merge candidate block vectors associated with the first metric based on one or more adjacent video blocks of the current video block, and the processor is further configured to skip constructing the list of merge candidate block vectors associated with the second metric.

9. The video decoding device according to any one of claims 1-7, wherein the processor is further configured to: Based on the first plurality of neighboring video blocks of the current video block, a first list of merged candidate block vectors associated with the first metric is constructed, wherein the first plurality of neighboring video blocks are encoded using IntraTMP and the first metric; and A second list of merged candidate block vectors associated with the second metric is constructed based on a second plurality of neighboring video blocks of the current video block, wherein the second plurality of neighboring video blocks are encoded using IntraTMP and the second metric.

10. A video decoding method, comprising: Receive an instruction to perform one or more IntraTMP searches associated with the current video block based at least on a first metric and a second metric; A first IntraTMP search is performed on the current video block based on the first metric, wherein the first IntraTMP search is performed based on a first starting position; A second IntraTMP search is performed on the current video block based on the second metric, wherein the second IntraTMP search is performed based on a second starting position different from the first starting position; and The current video block is decoded based at least on the first IntraTMP search and the second IntraTMP search.

11. The video decoding method of claim 10, wherein the first IntraTMP search is performed based on subsampling of the current video block by a subsampling distance, and wherein the difference between the first starting position and the second starting position is equal to a fraction of the subsampling distance.

12. The video decoding method of claim 10 or claim 11, wherein the first IntraTMP search is a first sparse IntraTMP search, the second IntraTMP search is a second sparse IntraTMP search, and the video decoding method further comprises refining the result of the first sparse IntraTMP search based on a first subset of samples surrounding the current samples of the first prediction block, the first prediction block being derived based on the first sparse IntraTMP search, wherein the first subset of samples and the current samples of the first prediction block together form a cross shape, and wherein for the refinement of the result of the first sparse IntraTMP search, other samples surrounding the current samples of the first prediction block are skipped.

13. The video decoding method of claim 12, further comprising refining the result of the second sparse IntraTMP search based on a second subset of samples surrounding the current samples of the second prediction block, the second prediction block being derived based on the second sparse IntraTMP search, wherein the second subset of samples and the current samples of the second prediction block also form a cross shape together, and wherein, for the refinement of the result of the second sparse IntraTMP search, other samples surrounding the current samples of the second prediction block are skipped.

14. The video decoding method of any one of claims 10-13, further comprising constructing a list of merged candidate block vectors associated with the first metric based on one or more neighboring video blocks of the current video block, wherein the list of merged candidate block vectors associated with the second metric is not constructed based on the video decoding method.

15. The video decoding method according to any one of claims 10-14, further comprising: A first list of merged candidate block vectors associated with the first metric is constructed based on a first plurality of neighboring video blocks of the current video block, wherein the first plurality of neighboring video blocks are encoded using IntraTMP and the first metric; as well as A second list of merged candidate block vectors associated with the second metric is constructed based on a second plurality of neighboring video blocks of the current video block, wherein the second plurality of neighboring video blocks are encoded using IntraTMP and the second metric.