Intra template matching with flipping
By enabling template-based prediction in a video device and using template matching search to select the optimal prediction block and template orientation, the problem of low video encoding and decoding efficiency in the prior art is solved, and more efficient video data processing is achieved.
Patent Information
- Application Number
- CN202380055979.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-01
- Filing Date
- 2023-06-26
- Publication Date
- 2025-03-18
AI Technical Summary
In the video encoding and decoding process, it is difficult for existing video decoding systems to effectively utilize template matching prediction, which affects encoding efficiency and decoding quality.
Efficient video encoding and decoding by determining to enable template-based prediction in a video device and based on template matching search, selecting the optimal prediction block and template orientation, adjusting the prediction block to adapt to different template orientations.
Improve the efficiency of video encoding and decoding, enhance the encoding quality and decoding quality, and reduce the storage and transmission bandwidth requirements.
Smart Images

Figure CN119654868A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of European patent application 22305985.8 filed on July 1, 2022, which is incorporated herein by reference in its entirety. Background Art
[0003] Video coding systems may be used to compress digital video signals, for example to reduce the storage and / or transmission bandwidth required for such signals. Video coding systems may include, for example, block-based systems, wavelet-based systems, and / or object-based systems. Summary of the invention
[0004] Systems, methods and tools for the field of video encoding and decoding are disclosed herein.
[0005] In an example, a video device such as a video decoder or a video encoder may determine to enable template-based prediction for a current block. A prediction block and a template orientation for the current block may be determined based on template matching. The video decoder may decode the current block based on the prediction block and the template orientation. The video encoder may encode the current block based on the prediction block and the template orientation. The prediction block may be adjusted (e.g., horizontally flipped, vertically flipped, diagonally flipped, or rotated) based on the determined template orientation, and the current block may be decoded and / or encoded based on the adjusted (e.g., reoriented) prediction block.
[0006] For example, a plurality of template orientations may be obtained, and a template orientation may be selected from the plurality of template orientations. A template matching search may be performed based on different template orientations, and template difference values corresponding to different orientations may be compared. The template orientation may be selected based on the comparison result. In an example, a video device may perform a template matching search for a first template orientation and a second template orientation. The video device may calculate a template difference value between a template of a current block and a template of a first prediction block in the first template orientation, and a template difference value between a template of a current block and a template of a second prediction block in the second template orientation. A prediction block and a template orientation for the current block may be determined based on a smaller template difference value in the template difference values.
[0007] The video device may perform a refinement search of multiple template orientations. In an example, the video device may determine a matching block based on a first template matching search associated with a vertical template orientation. A refined search region may be determined based on a matching block used to perform a second template matching search (e.g., a refinement search of multiple template orientations). A prediction block and a template orientation for a current block may be determined based on a second template matching search performed within the refined search region.
[0008] The examples may be performed by a video processing device with a processor. The device may be an encoder or a decoder. The examples may be performed by a computer program product stored on a non-transitory computer-readable medium and including program code instructions. The examples may be performed by a computer program including program code instructions. The examples may be performed by a bitstream including information representing a template matching prediction mode.
[0009] The systems, methods, and tools described herein may relate to decoders. In some examples, the systems, methods, and tools described herein may relate to encoders. In some examples, the systems, methods, and tools described herein may relate to signals (e.g., signals from encoders and / or received by decoders). A computer-readable medium may include instructions for causing one or more processors to perform the methods described herein. A computer program product may include instructions that, when executed by one or more processors, cause one or more processors to perform the methods described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1A is a system diagram illustrating an example communication system in which one or more of the presently disclosed embodiments may be implemented.
[0011] Figure 1B is an example of a method that can be used according to one embodiment Figure 1A A system diagram of an example wireless transmit / receive unit (WTRU) for use within an illustrated communication system.
[0012] Figure 1C is an example of a method that can be used according to one embodiment Figure 1A System diagram of an example Radio Access Network (RAN) and an example Core Network (CN) for use within an illustrated communication system.
[0013] Figure 1D is an example of a method that can be used according to one embodiment Figure 1A System diagram of a further example RAN and a further example CN for use within the illustrated communication system.
[0014] Figure 2 An example video encoder is illustrated.
[0015] Figure 3 An example video decoder is illustrated.
[0016] Figure 4 Examples of systems in which various aspects and examples may be implemented are illustrated.
[0017] Figure 5 An example of an intra-frame template matching search area is illustrated.
[0018] Figure 6 An example of symmetry of a screen content picture is illustrated.
[0019] Figure 7 An example of template matching with flipped orientation is illustrated.
[0020] Figure 8 An example of searching for template sharing is illustrated.
[0021] Fig. 9 An example decoding process for template matching searches at different template orientations is illustrated.
[0022] Fig.10 An example encoding process of template matching searches at different template orientations is illustrated. DETAILED DESCRIPTION
[0023] A more detailed understanding may be obtained from the following description given by way of example in conjunction with the accompanying drawings.
[0024] Figure 1A 1 is a diagram illustrating an example communication system 100 in which one or more disclosed embodiments of the present invention may be implemented. The communication system 100 may be a multiple access system that provides content such as voice, data, video, messaging, broadcast, etc. to multiple wireless users. The communication system 100 may enable multiple wireless users to access such content by sharing system resources including wireless bandwidth. For example, the communication system 100 may employ one or more channel access methods such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal FDMA (OFDMA), single carrier FDMA (SC-FDMA), zero tail unique word DFT spread OFDM (ZT UW DTS-s OFDM), unique word OFDM (UW-OFDM), resource block filtered OFDM, filter bank multi-carrier (FBMC), etc.
[0025] like Figure 1AAs 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, but it should be understood that the embodiments disclosed herein contemplate any number of WTRUs, base stations, networks and / or network elements. Each of the WTRUs 102a, 102b, 102c, 102d may be any type of device configured to operate and / or communicate in a wireless environment. By way of example, the WTRUs 102a, 102b, 102c, 102d (any of which may be referred to as a “station” and / or “STA”) may be configured to send and / or receive wireless signals and may include user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a subscription-based unit, a pager, a cellular phone, a personal digital assistant (PDA), a smart phone, a laptop, a netbook, a personal computer, a wireless sensor, a hotspot or Mi-Fi device, an Internet of Things (IoT) device, a watch or other wearable device, a head-mounted display (HMD), a vehicle, a drone, medical devices and applications (e.g., remote surgery), industrial devices and applications (e.g., robots and / or other wireless devices operating in an industrial and / or automated process chain environment), a consumer electronic device, a device operating on a commercial and / or industrial wireless network, etc. Any of the WTRUs 102a, 102b, 102c, and 102d may be interchangeably referred to as a UE.
[0026] The communication system 100 may also include a base station 114a and / or a base station 114b. Each of the base stations 114a, 114b may be any type of device that is configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, 102d to facilitate access to one or more communication networks such as the CN 106 / 115, the Internet 110, and / or other networks 112. By way of example, the base stations 114a, 114b may be a base transceiver station (BTS), a Node B, an eNode B, a Home Node B, a Home eNode B, a gNB, an NR Node B, a site controller, an access point (AP), a wireless router, and the like. Although the base stations 114a, 114b are each depicted as a single element, it should be appreciated that the base stations 114a, 114b may include any number of interconnected base stations and / or network elements.
[0027] The base station 114a may be part of the RAN 104 / 113, which may also include other base stations and / or network elements (not shown), such as a base station controller (BSC), a radio network controller (RNC), a relay node, etc. The base station 114a and / or the base station 114b may be configured to send and / or receive wireless signals on one or more carrier frequencies, which may be referred to as cells (not shown). These frequencies may be in a licensed spectrum, an unlicensed spectrum, or a combination of a licensed spectrum and an unlicensed spectrum. A cell may provide coverage of wireless services to a specific geographic area, which may be relatively fixed or may change over time. A cell may be further divided into cell sectors. For example, a cell associated with the base station 114a may be divided into three sectors. Therefore, in one embodiment, the base station 114a may include three transceivers, i.e., one transceiver for each sector of the cell. In an embodiment, the 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 send and / or receive signals in a desired spatial direction.
[0028] The base stations 114a, 114b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 116, which may be any suitable wireless communication link (e.g., radio frequency (RF), microwave, centimeter wave, micrometer wave, infrared (IR), ultraviolet (UV), visible light, etc.). The air interface 116 may be established using any suitable radio access technology (RAT).
[0029] More specifically, as noted above, the communication system 100 may be a multiple access system and may employ one or more channel access schemes such as CDMA, TDMA, FDMA, OFDMA, and SC-FDMA. For example, the base station 114a in the RAN 104 / 113 and the WTRUs 102a, 102b, 102c may implement a radio technology such as Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA), which may use Wideband CDMA (WCDMA) to establish the air interface 115 / 116 / 117. WCDMA may include communication protocols such as High Speed Packet Access (HSPA) and / or Evolved HSPA (HSPA+). HSPA may include High Speed Downlink (DL) Packet Access (HSDPA) and / or High Speed UL Packet Access (HSUPA).
[0030] In an embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as Evolved UMTS Terrestrial Radio Access (E-UTRA), which may establish the air interface 116 using Long Term Evolution (LTE) and / or Advanced LTE (LTE-A) and / or Advanced LTE Pro (LTE-A Pro).
[0031] In an embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as NR radio access, which may establish the air interface 116 using New Radio (NR).
[0032] In an embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement multiple radio access technologies. For example, the base station 114a and the WTRUs 102a, 102b, 102c may implement LTE radio access and NR radio access together, for example using dual connectivity (DC) principles. Thus, the air interface utilized by the WTRUs 102a, 102b, 102c may be characterized by multiple types of radio access technologies and / or transmissions to / from multiple types of base stations (e.g., eNBs and gNBs).
[0033] In other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement radio technologies such as IEEE 802.11 (i.e., Wireless Fidelity (WiFi)), IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, Interim Standard 2000 (IS-2000), Interim Standard 95 (IS-95), Interim Standard 856 (IS-856), Global System for Mobile Communications (GSM), GSM Enhanced Data Rates for Evolution (EDGE), GSM EDGE (GERAN), etc.
[0034] Figure 1AThe base station 114b in the may be, for example, a wireless router, a Home NodeB, a Home eNodeB, or an access point, and may utilize any suitable RAT to facilitate wireless connectivity in local areas such as commercial locations, homes, vehicles, campuses, industrial facilities, sky corridors (e.g., for use by drones), roads, and the like. In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.11 to establish a wireless local area network (WLAN). In an embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.15 to establish a wireless personal area network (WPAN). In another embodiment, the base station 114b and the WTRUs 102c, 102d may utilize a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) to establish a picocell or a femtocell. As Figure 1A As shown, base station 114b may have a direct connection to Internet 110. Therefore, base station 114b may not need to access Internet 110 via CN 106 / 115.
[0035] The RAN 104 / 113 may be in communication with the CN 106 / 115, which may be any type of network configured to provide voice, data, applications and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. The data may have different quality of service (QoS) requirements, such as different throughput requirements, latency requirements, error tolerance requirements, reliability requirements, data throughput requirements, mobility requirements, etc. The CN 106 / 115 may provide call control, billing services, mobile location-based services, prepaid calling, Internet connectivity, video distribution, etc., and / or perform advanced security functions such as user authentication. Although not described in detail in the text, the CN 106 / 115 may be configured to provide voice, data, applications and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. The data may have different quality of service (QoS) requirements, such as different throughput requirements, latency requirements, error tolerance requirements, reliability requirements, data throughput requirements, mobility requirements, etc. The CN 106 / 115 may provide call control, billing services, mobile location-based services, prepaid calling, Internet connectivity, video distribution, etc., and / or perform advanced security functions such as user authentication. Figure 1A Although not shown in the figure, it will be appreciated that the RAN 104 / 113 and / or the CN 106 / 115 may be in direct or indirect communication with other RANs that employ the same RAT as the RAN 104 / 113 or a different RAT. For example, in addition to being connected to the RAN 104 / 113, which may utilize NR radio technology, the CN 106 / 115 may also be in communication with another RAN (not shown) that employs GSM, UMTS, CDMA 2000, WiMAX, E-UTRA, or WiFi radio technology.
[0036] The CN 106 / 115 may also act as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 110, and / or other networks 112. The PSTN 108 may include a circuit-switched telephone network that provides plain old telephone service (POTS). The Internet 110 may include a global system of interconnected computer networks and devices that use common communication protocols such as the Transmission Control Protocol (TCP), the User Datagram Protocol (UDP), and / or the Internet Protocol (IP) in the TCP / IP Internet protocol suite. The networks 112 may include wired communication networks and / or wireless communication networks owned and / or operated by other service providers. For example, the networks 112 may include another CN connected to one or more RANs, which may employ the same RAT as the RAN 104 / 113 or a different RAT.
[0037] Some or all of the WTRUs 102a, 102b, 102c, 102d in the communication system 100 may include multi-mode capabilities (e.g., the WTRUs 102a, 102b, 102c, 102d may include multiple transceivers for communicating with different wireless networks via different wireless links). Figure 1A The illustrated WTRU 102c may be configured to communicate with the base station 114a, which may employ a cellular-based radio technology, and with the base station 114b, which may employ an IEEE 802 radio technology.
[0038] Figure 1B is a system diagram illustrating an example WTRU 102. Figure 1B As shown, the WTRU 102 may include, among other things, a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a keypad 126, a display / touchpad 128, non-removable memory 130, removable memory 132, a power source 134, a global positioning system (GPS) chipset 136, and / or other peripherals 138. It will be appreciated that the WTRU 102 may include any sub-combination of the foregoing elements while remaining consistent with an embodiment.
[0039] The processor 118 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of 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) and state machine, etc. As suggested above, the processor 118 may include a plurality of processors. The processor 118 may perform signal decoding, data processing, power control, input / output processing, and / or any other functionality that enables the WTRU 102 to operate in a wireless environment. The processor 118 may be coupled to the transceiver 120, which may be coupled to the transmit / receive element 122. Although Figure 1B The processor 118 and the transceiver 120 are depicted as separate components, but it is understood that the processor 118 and the transceiver 120 may be integrated together in an electronic package or chip.
[0040] The send / receive element 122 may be configured to send a signal to a base station (e.g., base station 114a) or receive a signal from the base station via an air interface 116. For example, in one embodiment, the send / receive element 122 may be an antenna configured to send and / or receive an RF signal. In an embodiment, the send / receive element 122 may be, for example, an emitter / detector configured to send and / or receive an IR, UV or visible light signal. In another embodiment, the send / receive element 122 may be configured to send and / or receive both an RF signal and an optical signal. It should be understood that the send / receive element 122 may be configured to send and / or receive any combination of wireless signals.
[0041] Although the transmit / receive element 122 Figure 1B Although depicted as a single element in the diagram, the WTRU 102 may include any number of transmit / receive elements 122. More specifically, the WTRU 102 may employ MIMO technology. Thus, in one embodiment, the WTRU 102 may include two or more transmit / receive elements 122 (e.g., multiple antennas) for transmitting and receiving wireless signals over the air interface 116.
[0042] The transceiver 120 may be configured to modulate signals to be transmitted by the transmit / receive element 122 and to demodulate signals received by the transmit / receive element 122. As noted above, the WTRU 102 may have multi-mode capabilities. For example, the transceiver 120 may include multiple transceivers to enable the WTRU 102 to communicate via multiple RATs, such as NR and IEEE 802.11.
[0043] The processor 118 of the WTRU 102 may be coupled to and may receive user input data from a speaker / microphone 124, a keypad 126, and / or a display / touchpad 128 (e.g., a liquid crystal display (LCD) display unit or an organic light emitting diode (OLED) display unit). The processor 118 may also output user data to the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128. In addition, the processor 118 may access information from and store data in any type of suitable memory, such as a non-removable memory 130 and / or a removable memory 132. The non-removable memory 130 may include a random access memory (RAM), a read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 132 may include a subscriber identity module (SIM) card, a memory stick, and a secure digital (SD) memory card, among others. In another embodiment, the processor 118 may access information from and store data in a memory that is not physically located on the WTRU 102, such as on a server or a home computer (not shown).
[0044] The processor 118 may receive power from the power source 134 and may be configured to distribute and / or control power to the other components in the WTRU 102. The power source 134 may be any suitable device for powering the WTRU 102. For example, the power source 134 may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel-metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, etc.
[0045] The processor 118 may also be coupled to the GPS chipset 136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 102. In addition to or in lieu of the information from the GPS chipset 136, the WTRU 102 may receive location information from a base station (e.g., base stations 114a, 114b) over the air interface 116 and / or determine its location based on the timing of signals received from two or more nearby base stations. It will be appreciated that the WTRU 102 may acquire location information by any suitable location-determination method while remaining consistent with an embodiment.
[0046] The processor 118 may be further coupled to other peripherals 138, which may include one or more software modules and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, the peripherals 138 may include an accelerometer, an electronic compass, a satellite transceiver, a digital camera (for photos and / or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands-free headset, module, FM radio unit, digital music player, media player, video game player module, Internet browser, virtual reality and / or augmented reality (VR / AR) device and activity tracker, etc. Peripheral device 138 may include one or more sensors, which may be one or more of the following: gyroscope, accelerometer, Hall effect sensor, magnetometer, orientation sensor, proximity sensor, temperature sensor, time sensor; geolocation sensor; altimeter, light sensor, touch sensor, magnetometer, barometer, gesture sensor, biometric sensor and / or humidity sensor.
[0047] The WTRU 102 may include a full-duplex radio for which transmission and reception of some or all of the signals (e.g., associated with specific subframes for UL (e.g., for transmission) and downlink (e.g., for reception)) may occur in parallel and / or simultaneously. The full-duplex radio may include an interference management unit for reducing and / or substantially eliminating self-interference via signal processing performed via hardware (e.g., a choke) or via a processor (e.g., a separate processor (not shown) or via processor 118). In an embodiment, the WRTU 102 may include a half-duplex radio for which transmission and reception of some or all of the signals (e.g., associated with specific subframes for UL (e.g., for transmission) or downlink (e.g., for reception)) may occur in parallel and / or simultaneously.
[0048] Figure 1C 1 is a system diagram illustrating the RAN 104 and the CN 106 in accordance with an embodiment. As noted above, the RAN 104 may employ an E-UTRA radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 104 may also be in communication with the CN 106.
[0049] The RAN 104 may include evolved Node-Bs 160a, 160b, 160c, though it will be appreciated that the RAN 104 may include any number of evolved Node-Bs while remaining consistent with an embodiment. The evolved Node-Bs 160a, 160b, 160c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the evolved Node-Bs 160a, 160b, 160c may implement MIMO technology. Thus, the evolved Node-B 160a, for example, may use multiple antennas to transmit wireless signals to and / or receive wireless signals from the WTRU 102a.
[0050] Each of the evolved Node Bs 160a, 160b, 160c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, and scheduling of users in the UL and / or DL, among other things. Figure 1C As shown, the eNode-Bs 160a, 160b, 160c may communicate with one another via an X2 interface.
[0051] Figure 1C The illustrated CN 106 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 being 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.
[0052] The MME 162 may be connected to each of the evolved Node-Bs 162a, 162b, 162c in the RAN 104 via an S1 interface and may serve as a control node. For example, the MME 162 may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, bearer activation / deactivation, and selecting a particular serving gateway during an initial attach of the WTRUs 102a, 102b, 102c. The MME 162 may provide a control plane function for switching between the RAN 104 and other RANs (not shown) that employ other radio technologies, such as GSM and / or WCDMA.
[0053] The SGW 164 may be connected to each of the evolved Node-Bs 160a, 160b, 160c in the RAN 104 via an S1 interface. The SGW 164 may generally route and forward user data packets to / from the WTRUs 102a, 102b, 102c. The SGW 164 may perform other functions, such as anchoring the user plane during an inter-evolved Node-B handover, triggering paging when DL data is available for the WTRUs 102a, 102b, 102c, and managing and storing the context of the WTRUs 102a, 102b, 102c.
[0054] The SGW 164 may be connected to the PGW 166, which may enable the WTRUs 102a, 102b, 102c to access packet-switched networks, such as the Internet 110, to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices.
[0055] The CN 106 may facilitate communications with other networks. For example, the CN 106 may enable the WTRUs 102a, 102b, 102c to access circuit-switched networks, such as the PSTN 108, to facilitate communications between the WTRUs 102a, 102b, 102c and traditional land-line communications devices. For example, the CN 106 may include or may be in communication with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between the CN 106 and the PSTN 108. In addition, the CN 106 may enable the WTRUs 102a, 102b, 102c to access other networks 112, which may include other wired networks and / or wireless networks owned and / or operated by other service providers.
[0056] Although the WTRU Figures 1A to 1D Although described as wireless terminals, it is contemplated that in certain representative embodiments, such terminals may (eg, temporarily or permanently) use a wired communications interface with a communications network.
[0057] In a representative embodiment, the other network 112 may be a WLAN.
[0058] A WLAN in infrastructure basic service set (BSS) mode may have an access point (AP) for a BSS and one or more stations (STAs) associated with the AP. The AP may have access or an interface to a distribution system (DS) or another type of wired network / wireless network that carries traffic to and / or out of the BSS. Traffic originating from outside the BSS to a STA may be reached by the AP and may be delivered to the STA. Traffic originating from a STA to a destination outside the BSS may be transmitted to the AP to be delivered to the corresponding destination. Traffic between STAs within the BSS may be transmitted by the AP, for example, wherein the source STA may transmit traffic to the AP, and the AP may deliver traffic to the destination STA. Traffic between STAs within the BSS may be considered and / or referred to as point-to-point traffic. Direct link establishment (DLS) may be used to transmit point-to-point traffic between a source STA and a target STA (e.g., directly between them). In certain representative embodiments, the DLS may use 802.11e DLS or 802.11z tunnel DLS (TDLS). A WLAN using an independent BSS (IBSS) mode may not have an AP, and STAs within or using the IBSS (eg, all STAs in the STA) may communicate directly with each other. The IBSS communication mode may sometimes be referred to herein as an "ad hoc" communication mode.
[0059] When using the 802.11ac infrastructure operating mode or a similar operating mode, the AP may send beacons on a fixed channel (such as a primary channel). The primary channel may be a fixed width (e.g., a 20 MHz wide bandwidth) or a width dynamically set via signaling. The primary channel may be a working channel of the BSS and may be used by the STA to establish a connection with the AP. In certain representative embodiments, carrier sense multiple access / collision avoidance (CSMA / CA) may be implemented, for example, in an 802.11 system. For CSMA / CA, a STA (e.g., each STA) (including the AP) may sense the primary channel. If the primary channel is sensed / detected and / or determined to be busy by a particular STA, the particular STA may back off. One STA (e.g., only one station) may transmit at any given time in a given BSS.
[0060] High throughput (HT) STAs may communicate using a 40 MHz wide channel, for example, via a combination of a primary 20 MHz channel and adjacent or non-adjacent 20 MHz channels to form a 40 MHz wide channel.
[0061] Very high throughput (VHT) STA can support 20MHz, 40MHz, 80MHz and / or 160MHz wide channels. 40MHz channels and / or 80MHz channels can be formed by combining continuous 20MHz channels. 160MHz channels can be formed by combining 8 continuous 20MHz channels, or by combining two non-continuous 80MHz channels (this can be called 80+80 configuration). For 80+80 configuration, after channel coding, the data can pass through a segment parser that can divide the data into two streams. Each stream can be processed by inverse fast Fourier transform (IFFT) and time domain processing separately. These streams can be mapped to two 80MHz channels, and data can be sent by the transmitter STA. At the receiver of the receiver STA, the above-mentioned operation for the 80+80 configuration can be reversed, and the combined data can be transmitted to the medium access control (MAC).
[0062] 802.11af and 802.11ah support operating modes below 1GHz. Channel operating bandwidths and carriers are reduced in 802.11af and 802.11ah relative to those used in 802.11n and 802.11ac. 802.11af supports 5MHz, 10MHz, and 20MHz bandwidths in the TV White Space (TVWS) spectrum, and 802.11ah supports 1MHz, 2MHz, 4MHz, 8MHz, and 16MHz bandwidths using non-TVWS spectrum. According to a representative embodiment, 802.11ah may support instrument type control / machine type communications, 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 for) certain bandwidths and / or limited bandwidths. MTC devices may include batteries with battery life above a threshold (e.g., to maintain very long battery life).
[0063] 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 primary channels. The bandwidth of the primary channel may be equal to the maximum common operating bandwidth supported by all STAs in the BSS. The bandwidth of the primary channel may be set and / or limited by a STA (which supports the minimum bandwidth operating mode) from all STAs operating in the BSS. In the example of 802.11ah, for STAs (e.g., MTC-type devices) that support (e.g., only support) a 1MHz mode, the primary channel may be 1MHz wide, even if the AP and other STAs in the BSS support 2MHz, 4MHz, 8MHz, 16MHz, and / or other channel bandwidth operating modes. Carrier sensing and / or network allocation vector (NAV) settings may depend on the state of the primary channel. If the primary channel is busy, for example, because a STA (supporting only a 1MHz operating mode) is sending to the AP, the entire available band may be considered busy even if most of the band remains idle and may be available.
[0064] In the United States, the available frequency band for 802.11ah is 902MHz to 928MHz. In South Korea, the available frequency band is 917.5MHz to 923.5MHz. In Japan, the available frequency band is 916.5MHz to 927.5MHz. The total bandwidth available for 802.11ah is 6MHz to 26MHz, depending on the country code.
[0065] Figure 1D 1 is a system diagram illustrating the RAN 113 and the CN 115 in accordance with an embodiment. As noted above, the RAN 113 may employ NR radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 113 may also be in communication with the CN 115.
[0066] The RAN 113 may include gNBs 180a, 180b, 180c, though it will be appreciated that the RAN 113 may include any number of gNBs while remaining consistent with an embodiment. The gNBs 180a, 180b, 180c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the gNBs 180a, 180b, 180c may implement MIMO technology. For example, the gNBs 180a, 180b may utilize beamforming to send signals to and / or receive signals from the gNBs 180a, 180b, 180c. Thus, the gNB 180a may, for example, use multiple antennas to send wireless signals to and / or receive wireless signals from the WTRU 102a. In an embodiment, the gNBs 180a, 180b, 180c may implement carrier aggregation technology. For example, gNB 180a may send multiple component carriers to WTRU 102a (not shown). A subset of these component carriers may be on unlicensed spectrum, while the remaining component carriers may be on licensed spectrum. In an embodiment, gNBs 180a, 180b, 180c may implement coordinated multi-point (CoMP) technology. For example, WTRU 102a may receive coordinated transmissions from gNB 180a and gNB 180b (and / or gNB 180c).
[0067] The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using transmissions associated with parameter sets that may be scalable. For example, OFDM symbol spacing and / or OFDM subcarrier spacing may vary for different transmissions, different cells, and / or different portions of the wireless transmission spectrum. The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using subframes or transmission time intervals (TTIs) of varying or scalable lengths (e.g., containing different numbers of OFDM symbols and / or continuously varying absolute time lengths).
[0068] The gNBs 180a, 180b, 180c may be configured to communicate with the WTRUs 102a, 102b, 102c in a standalone configuration and / or a non-standalone configuration. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c while not accessing other RANs (e.g., such as the eNodeBs 160a, 160b, 160c). In a standalone configuration, the WTRUs 102a, 102b, 102c may use one or more of the gNBs 180a, 180b, 180c as mobility anchors. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using signals in an unlicensed band. In a non-standalone configuration, the WTRUs 102a, 102b, 102c may communicate / connect with the gNB 180a, 180b, 180c while also communicating / connecting with another RAN, such as the eNode-B 160a, 160b, 160c. For example, the WTRUs 102a, 102b, 102c may implement the DC principle to communicate with one or more gNBs 180a, 180b, 180c and one or more eNode-Bs 160a, 160b, 160c substantially simultaneously. In a non-standalone configuration, the eNode-B 160a, 160b, 160c may act as a mobility anchor for the WTRUs 102a, 102b, 102c, and the gNB 180a, 180b, 180c may provide additional coverage and / or throughput for serving the WTRUs 102a, 102b, 102c.
[0069] Each of the gNBs 180a, 180b, 180c may be associated with a specific cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in UL and / or DL, support of network slicing, dual connectivity, interworking between NR and E-UTRA, routing of user plane data towards a user plane function (UPF) 184a, 184b and routing of control plane information towards an access and mobility management function (AMF) 182a, 182b, etc. Figure 1D As shown, gNBs 180a, 180b, and 180c may communicate with each other via an Xn interface.
[0070] Figure 1DThe illustrated CN 115 may include at least one AMF 182a, 182b, at least one UPF 184a, 184b, at least one session management function (SMF) 183a, 183b, and possible data networks (DNs) 185a, 185b. Although 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.
[0071] The AMF 182a, 182b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via the N2 interface and may act as a control node. For example, the AMF 182a, 182b may be responsible for authenticating users of the WTRU 102a, 102b, 102c, support of network slicing (e.g., handling of different PDU sessions with different requirements), selecting a specific SMF 183a, 183b, management of registration areas, termination of NAS signaling, mobility management, etc. The AMF 182a, 182b may use network slicing in order to customize CN support for the WTRU 102a, 102b, 102c based on the type of services used by the WTRU 102a, 102b, 102c. For example, different network slices may 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 / or services for machine type communication (MTC) access, etc. The AMF 162 may provide a control plane function for switching between the RAN 113 and other RANs (not shown) that employ other radio technologies, such as LTE, LTE-A, LTE-A Pro, and / or non-3GPP access technologies, such as WiFi.
[0072] The SMF 183a, 183b may be connected to the AMF 182a, 182b in the CN 115 via the N11 interface. The SMF 183a, 183b may also be connected to the UPF 184a, 184b in the CN 115 via the N4 interface. The SMF 183a, 183b may select and control the UPF 184a, 184b, and configure the service routing performed by the UPF 184a, 184b. The SMF 183a, 183b may perform other functions, such as managing and allocating UE IP addresses, managing PDU sessions, controlling policy implementation and QoS, and providing downlink data notifications. The PDU session type may be IP-based, non-IP-based, Ethernet-based, etc.
[0073] The UPF 184a, 184b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via the N3 interface, which may enable the WTRUs 102a, 102b, 102c to access packet-switched networks (such as the Internet 110) to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices. The UPF 184, 184b may perform other functions, such as routing and forwarding packets, enforcing user plane policies, supporting multi-homed PDU sessions, handling user plane QoS, buffering downlink packets, and providing mobility anchoring.
[0074] The CN 115 may facilitate communications with other networks. For example, the CN 115 may include or may communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that serves as an interface between the CN 115 and the PSTN 108. In addition, the CN 115 may enable the WTRUs 102a, 102b, 102c to access other networks 112, which may include other wired networks and / or wireless networks owned and / or operated by other service providers. In one embodiment, the WTRUs 102a, 102b, 102c may be connected to local data networks (DNs) 185a, 185b through the UPF 184a, 184b via an N3 interface to the UPF 184a, 184b and an N6 interface between the UPF 184a, 184b and the DN 185a, 185b.
[0075] Given that Figures 1A to 1D as well as Figures 1A to 1D Corresponding to the description of the present invention, one or more or all of the functions described herein for one or more of the following may be performed by one or more simulation devices (not shown): WTRU102a-102d, base station 114a-114b, evolved Node B 160a-160c, MME 162, SGW 164, PGW 166, gNB 180a-180c, AMF 182a-182b, UPF 184a-184b, SMF 183a-183b, DN 185a-185b and / or any other device described herein. The simulation device may be one or more devices configured to mimic one or more or all of the functions described herein. For example, the simulation device may be used to test other devices and / or simulate network and / or WTRU functions.
[0076] The simulation device may be designed to implement one or more tests of other devices in a laboratory environment and / or in an operator network environment. For example, one or more simulation devices may perform one or more functions or all functions while being fully or partially implemented and / or deployed as part of a wired communication network and / or a wireless communication network in order to test other devices within the communication network. One or more simulation devices may perform one or more functions or all functions while being temporarily implemented / deployed as part of a wired communication network and / or a wireless communication network. The simulation device may be directly coupled to another device for testing purposes and / or may use over-the-air wireless communications to perform testing.
[0077] One or more simulation devices can perform one or more (including all) functions without being implemented / deployed as part of a wired communication network and / or a wireless communication network. For example, the simulation device can be used in a test scenario in a test laboratory and / or a non-deployed (e.g., testing) wired communication network and / or wireless communication network to implement testing of one or more components. One or more simulation devices can be test equipment. Direct RF coupling and / or wireless communication via RF circuits (e.g., which may include one or more antennas) can be used by the simulation device to send and / or receive data.
[0078] The present application describes various aspects, including tools, features, examples, models, methods, etc. Many aspects in these aspects are specifically described, and at least in order to illustrate individual characteristics, these many aspects are usually described in a limited manner that may sound. However, this is to describe clearly and does not limit the application or scope of these aspects. In fact, all different aspects can be combined and interchanged to provide further aspects. In addition, these aspects can also be combined and interchanged with the aspects described in the previous submission.
[0079] The aspects described and contemplated in this application can be implemented in many different forms. Figures 5 to 10 Some examples may be provided, but others are also contemplated. Figures 5 to 10 The discussion of the present invention does not limit the breadth of specific implementations. At least one of these aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to sending a generated or encoded bitstream. These and other aspects can be implemented as methods, apparatus, a computer-readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the methods, and / or a computer-readable storage medium having stored thereon a bitstream generated according to any of the methods.
[0080] 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.
[0081] Various methods are described herein, and each method in the method includes one or more steps or actions for implementing the method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or purposes of specific steps and / or actions may be modified or combined. In addition, terms such as "first", "second" and the like may be used to modify elements, parts, steps, operations, etc., such as "first decoding" and "second decoding" in various examples. Unless specifically required, the use of such terms does not imply the ordering of the modification operation. Therefore, in this example, the first decoding does not need to be performed before the second decoding, and may occur, for example, before, during, or in overlapping time periods of the second decoding.
[0082] Various methods and other aspects described in this application may be used to modify modules (eg, decoding modules) of the video encoder 200 and the decoder 300, such as Figure 2 and Figure 3 In addition, the subject matter described herein can be applied to, for example, any type, format, or version of video coding (whether described in a standard or described in a recommendation), whether pre-existing or developed in the future, as well as extensions of any such standards and recommendations. Unless otherwise specified or technically excluded, the aspects described in this application can be used alone or in combination.
[0083] Various values are used in describing examples of the present application, such as bits, bit depth, etc. These and other specific values are used for the purpose of describing the examples, and the described aspects are not limited to these specific values.
[0084] Figure 2 2 is a schematic diagram illustrating an example video encoder. Variations of the example encoder 200 are contemplated, but the following describes encoder 200 for clarity without describing all contemplated variations.
[0085] Before being encoded, the video sequence may undergo pre-encoding processing (201), such as applying a color transform to an input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of input picture components to obtain a signal distribution that is more resilient to compression (e.g., using histogram equalization of one of the color components). Metadata may be associated with the pre-processing and attached to the bitstream.
[0086] In encoder 200, a picture is encoded by encoder elements as described below. The picture to be encoded is partitioned (202) and processed in units such as coding units (CUs). Each unit is encoded, for example, using intra mode or inter mode. When a unit is encoded in intra mode, the unit performs intra prediction (260). In inter mode, motion estimation (275) and compensation (270) are performed. The encoder decides (205) which of intra mode or inter mode to use to encode the unit, and indicates the intra / inter decision by, for example, a prediction mode flag. The prediction residual is calculated, for example, by subtracting (210) the predicted block from the original image block.
[0087] The prediction residual is then transformed (225) and quantized (230). The quantized transform coefficients, along with motion vectors and other syntax elements, are entropy coded (245) to output a bitstream. The encoder may skip the transform and apply quantization directly to the untransformed residual signal. The encoder may bypass both the transform and quantization, i.e., directly code the residual without applying the transform or quantization process.
[0088] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residual. The image block is reconstructed by combining the decoded prediction residual and the predicted block (255). An in-loop filter (265) is applied to the reconstructed picture to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored at a reference picture buffer (280).
[0089] Figure 3 is a schematic diagram illustrating an example of a video decoder. In the example decoder 300, a bitstream is decoded by decoder elements as described below. The video decoder 300 generally performs the same Figure 2 The decoding process is the reverse of the encoding process described in . The encoder 200 also typically performs video decoding as part of encoding the video data.
[0090] Specifically, the input of the decoder includes a video bitstream, which may be generated by the video encoder 200. First, the bitstream is entropy decoded (330) to obtain transform coefficients, motion vectors, and other decoded information. The picture partition information indicates how the picture is partitioned. Therefore, the decoder can divide the picture according to the decoded picture partition information (335). The transform coefficients are dequantized (340) and inverse transformed (350) to decode the prediction residual. The image block is reconstructed by combining the decoded prediction residual and the predicted block (355). The predicted block can be obtained (370) from intra-frame prediction (360) or motion compensated prediction (i.e., inter-frame prediction) (375). An in-loop filter (365) is applied to the reconstructed image. The filtered image is stored at a reference picture buffer (380).
[0091] The decoded picture may also undergo post-decoding processing (385), such as an inverse color transform (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or performing an inverse remapping that is the inverse of the remapping process performed in the pre-encoding process (201). The post-decoding processing may use metadata derived in the pre-encoding process and signaled in the bitstream. In an example, the decoded image (e.g., after applying the in-loop filter (365) and / or after the post-decoding processing (385), if post-decoding processing is used) may be transmitted to a display device for presentation to a user.
[0092] Figure 4 4 is a schematic diagram showing an example of a system in which various aspects and examples described herein can be implemented. System 400 may be embodied as a device including various components described below, and is configured to perform one or more aspects of the aspects described in this document. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. The elements of system 400 may be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components, either individually or in combination. For example, in at least one example, the processing and encoder / decoder elements of system 400 are distributed over multiple ICs and / or discrete components. In various 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 ports and / or output ports. In various examples, system 400 is configured to implement one or more aspects of the aspects described in this document.
[0093] The system 400 includes at least one processor 410 configured to execute instructions loaded therein for implementing, for example, various aspects described in this document. The processor 410 may include embedded memory, input-output interfaces, and various other circuits as known in the art. The system 400 includes at least one memory 420 (e.g., a volatile memory device and / or a non-volatile memory device). The system 400 includes a storage device 440, which may include a non-volatile memory and / or a volatile memory, including but not limited to an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), a programmable read-only memory (PROM), a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), a flash memory, a magnetic disk drive, and / or an optical disk drive. As non-limiting examples, the storage device 440 may include an internal storage device, an attached storage device (including a removable and non-removable storage device), and / or a network-accessible storage device.
[0094] The system 400 includes an encoder / decoder module 430, which is configured to process data, for example, to provide encoded video or decoded video, and the encoder / decoder module 430 may include its own processor and memory. The encoder / decoder module 430 represents one or more modules that may be included in a device to perform encoding and / or decoding functions. As is well known, a device may include one or both of an encoding module and a decoding module. Additionally, the encoder / decoder module 430 may be implemented as an independent element of the system 400, or may be combined in the processor 410 as a combination of hardware and software known to those skilled in the art.
[0095] Program code to be loaded onto the processor 410 or the encoder / decoder 430 to perform various aspects described in this document may be stored in the storage device 440 and subsequently loaded onto the memory 420 for execution by the processor 410. According to various examples, one or more of the processor 410, the memory 420, the storage device 440, and the encoder / decoder module 430 may store one or more of various items during the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded video or partially decoded video, bitstreams, matrices, variables, and intermediate or final results of processing equations, formulas, operations, and operation logic.
[0096] In some examples, memory inside the processor 410 and / or the encoder / decoder module 430 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other examples, memory external to the processing device (e.g., the processing device may be the processor 410 or the encoder / decoder module 430) is used for one or more of these functions. The external memory may be a memory 420 and / or a storage device 440, such as a dynamic volatile memory and / or a non-volatile flash memory. In several examples, the external non-volatile flash memory is used to store, for example, an operating system for a television. In at least one example, a fast external dynamic volatile memory (such as RAM) is used as working memory for video encoding and decoding operations.
[0097] Input to the elements of system 400 may be provided through various input devices as indicated in block 445. Such input devices include, but are not limited to: (i) a radio frequency (RF) section that receives an RF signal, such as sent over the air by a broadcaster; (ii) a component (COMP) input terminal (or a set of COMP input terminals); (iii) a universal serial bus (USB) input terminal; and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Other examples ( Figure 4 ) includes composite video.
[0098] In various examples, the input device of frame 445 has the corresponding input processing element associated as known in the art.For example, the RF part can be associated with the element suitable for the following: (i) select the required frequency (also referred to as selecting signal, or limiting the signal band to a band), (ii) down-convert the selected signal, (iii) again band-limit to narrower band to select the signal band that (for example) can be called channel in some examples, (iv) demodulate the signal through down-conversion and band-limited, (v) perform error correction, and / or (vi) demultiplex to select the required data packet stream. The RF part of various examples includes one or more elements for performing these functions, such as frequency selector, signal selector, band limiter, channel selector, filter, down-converter, demodulator, error corrector and demultiplexer. The RF part can include a tuner that performs various functions in these functions, including, for example, down-converting the received signal to a lower frequency (for example, intermediate frequency or near baseband frequency) or to baseband. In a set-top box example, the RF part and its associated input processing element receive the RF signal sent by wired (for example, cable) medium, and filter to the desired frequency band by filtering, down-conversion and again to perform frequency selection.Various examples rearrange the order of above-mentioned (and other) elements, remove some elements in these elements, and / or add other elements that perform similar or different functions.Adding element can include inserting element between existing elements, for example, inserting amplifier and analog-to-digital converter.In various examples, the RF part includes antenna.
[0099] The USB and / or HDMI terminals may include corresponding interface processors for connecting the system 400 to other electronic devices across the 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, in a separate input processing IC or in the processor 410, if necessary. Similarly, USB or HDMI interface processing aspects may be implemented, if necessary, in a separate interface IC or in the processor 410. The demodulated, error-corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 410 and the encoder / decoder 430, which work in conjunction with the memory and storage elements to process the data streams as needed for presentation on the output device.
[0100] The various components of system 400 may be disposed within an integrated housing. Within the integrated housing, the various components may be interconnected and transmit data between the components using a suitable connection arrangement 425 (e.g., an internal bus known in the art, including an inter-chip (I2C) bus, wiring, and a printed circuit board).
[0101] System 400 includes a communication interface 450 that enables communication with other devices via a communication channel 460. Communication interface 450 may include, but is not limited to, a transceiver configured to send and receive data through communication channel 460. Communication interface 450 may include, but is not limited to, a modem or a network card, and communication channel 460 may be implemented, for example, within a wired medium and / or a wireless medium.
[0102] In various examples, data is streamed or otherwise provided to the system 400 using a wireless network, such as a Wi-Fi network, e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signals of these examples are received via a communication channel 460 and a communication interface 450 suitable for Wi-Fi communications. The communication channel 460 of these examples is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other cross-top communications. Other examples provide streaming data to the system 400 using a set-top box that delivers data via an HDMI connection of an input box 445. Still other examples use an RF connection of an input box 445 to provide streaming data to the system 400. As described above, various examples provide data in a non-streaming manner. Additionally, various examples use wireless networks other than Wi-Fi, such as cellular networks or network.
[0103] The system 400 may provide output signals to various output devices, including a display 475, a speaker 485, and other peripherals 495. The display 475 of various examples includes, for example, one or more of a touch screen display, an organic light emitting diode (OLED) display, a curved display, and / or a foldable display. The display 475 may be used for a television, a tablet computer, a laptop, a cellular phone (mobile phone), or other devices. The display 475 may also be integrated with other components (e.g., as in a smart phone), or may be independent (e.g., an external monitor for a laptop). In various examples, other peripherals 495 include one or more of an independent digital video disc (or digital versatile disc) (DVD, for both terms), a disc player, a stereo system, and / or a lighting system. Various examples use one or more peripherals 495 that provide functions based on the output of the system 400. For example, a disc player performs the function of playing the output of the system 400.
[0104] In various examples, control signals are communicated between the system 400 and the display 475, speaker 485, or other peripheral device 495 using signaling such as AV.Link, consumer electronics control (CEC), or other communication protocols that enable device-to-device control with or without user intervention. Output devices may be communicatively coupled to the system 400 via dedicated connections through respective interfaces 470, 480, and 490. Alternatively, output devices may be connected to the system 400 via a communication interface 450 using a communication channel 460. The display 475 and speaker 485 may be integrated into a single unit with other components of the system 400 in an electronic device such as, for example, a television. In various examples, the display interface 470 includes a display driver, such as, for example, a timing controller (T Con) chip.
[0105] For example, if the RF portion of input 445 is part of a separate set-top box, the display 475 and speaker 485 may alternatively be separate from one or more of the other components. In various examples where the display 475 and speaker 485 are external components, the output signals may be provided via dedicated output connections including, for example, an HDMI port, a USB port, or a COMP output.
[0106] These examples may be performed by computer software implemented by processor 410 or by hardware or by a combination of hardware and software. As a non-limiting example, these examples may be implemented by one or more integrated circuits. As a non-limiting example, memory 420 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology (such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory). As a non-limiting example, processor 410 may be of any type suitable for the technical environment and may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.
[0107] Various implementations involve decoding. As used in this application, "decoding" may encompass, for example, all or part of a process performed on a received coded sequence to produce a final output suitable for display. In various examples, such processes include one or more of the processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various examples, such processes also include or alternatively include processes performed by decoders of various implementations described in this application, such as determining to enable template-based prediction for a current block; determining a prediction block and template orientation for the current block based on template matching; and decoding the current block based on the prediction block and template orientation, etc.
[0108] As another example, in one example, "decoding" refers only to entropy decoding, in another example, "decoding" refers only to differential decoding, and in another example, "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to refer specifically to a subset of operations or broadly to a broader decoding process will be clear based on the context of the specific description and is considered to be well understood by those skilled in the art.
[0109] Various implementations involve encoding. In a manner similar to the discussion above about "decoding", "encoding" as used in this application may cover, for example, all or part of the processes performed on an input video sequence to produce an encoded bitstream. In various examples, such processes include one or more of the processes typically performed by an encoder, such as partitioning, differential encoding, transforms, quantization, and entropy encoding. In various examples, such processes also include or alternatively include processes performed by encoders of various implementations described in this application, such as determining to enable template-based prediction for the current block; determining a prediction block and template orientation for the current block based on template matching; and encoding the current block based on the prediction block and template orientation, etc.
[0110] As another example, in one example, "encoding" refers only to entropy encoding, in another example, "encoding" refers only to differential encoding, and in another example, "encoding" refers to a combination of differential decoding and entropy encoding. Whether the phrase "encoding process" specifically refers to a subset of operations or broadly refers to a broader encoding process will be clear based on the context of the specific description and is believed to be well understood by those skilled in the art.
[0111] When the figures are presented as flow charts, it should be understood that they also provide block diagrams of corresponding devices. Similarly, when the figures are presented as block diagrams, it should be understood that they also provide flow charts of corresponding methods / processes.
[0112] The specific implementations and aspects described herein may be implemented in, for example, a method or process, a device, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of specific implementation (e.g., discussed only as a method), the specific implementation of the features discussed may also be implemented in other forms (e.g., a device or program). The device may be implemented in, for example, appropriate hardware, software, and firmware. The method may be implemented in, for example, a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes a communication device, such as, for example, a computer, a mobile phone, a portable / personal digital assistant ("PDA"), and other devices that facilitate information communication between end users.
[0113] References to "one example" or "an example" or "one implementation" or "an implementation" and other variations thereof mean that a particular feature, structure, characteristic, etc. described in connection with the example is included in at least one example. Thus, the phrases "in one example" or "in an example" or "in one implementation" or "in an implementation" and any other variations appearing in various places throughout this application are not necessarily all referring to the same example.
[0114] Additionally, the present application may involve "determining" various information. Determining information may include, for example, estimating information, calculating information, predicting information, or retrieving information from a memory. Obtaining may include receiving, retrieving, constructing, generating, and / or determining.
[0115] Furthermore, the present application may refer to "accessing" various information. Accessing information may include, for example, one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0116] Additionally, the present application may refer to "receiving" various information. Like "accessing," receiving is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). Furthermore, "receiving" generally involves, in one way or another, during operations such as, for example, storing information, processing information, sending information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0117] It should be understood that, for example, in the case of "A / B," "A and / or B," and "at least one of A and B," the use of any of the following " / ," "and / or," and "at least one of" is intended to encompass selecting only the first listed option (A), or only the second listed option (B), or both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C," such phrases are intended to encompass selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first listed option and the second listed option (A and B), or only the first listed option and the third listed option (A and C), or only the second listed option and the third listed option (B and C), or all three options (A and B and C). This can be extended to as many items as listed, as will be apparent to one of ordinary skill in this and related arts.
[0118] Moreover, as used herein, the word "signaling" refers in particular to indicating something to a corresponding decoder. Thus, in the example, the same parameters are used at both the encoder and decoder ends. Thus, for example, the encoder may send (explicit signaling) specific parameters to the decoder so that the decoder may use the same specific parameters. On the contrary, if the decoder already has specific parameters and other parameters, signaling may be used without sending (implicit signaling) to simply allow the decoder to know and select specific parameters. Bit savings are achieved in various examples by avoiding sending any actual function. It should be understood that signaling can be implemented in various ways. For example, in various examples, one or more syntax elements, flags, etc. are used to signal information to the corresponding decoder. Although the verb form (signaling) of the word "signal" is mentioned above, the word "signal" may (for example, also) be used as a noun (signal) herein.
[0119] It will be apparent to one of ordinary skill in the art that a specific implementation may generate various signals formatted to carry, for example, storable or transmittable information. The information may include, for example, instructions for executing a method or data generated by one of the described specific implementations. For example, a signal may be formatted to carry a bit stream of the described example. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is well known, the signal may be sent over a variety of different wired or wireless links. The signal may be stored on, or accessed or received from, a processor-readable medium.
[0120] Many examples are described herein. The features of the examples may be provided individually or in any combination across various claim categories and types. In addition, the examples may include one or more of the features, devices or aspects described herein individually or in any combination across various claim categories and types. For example, the features described herein may include a bitstream or signal of information generated as described herein to be implemented. This information may allow a decoder to decode a bitstream, an encoder, a bitstream and / or a decoder according to any of the embodiments described in the embodiments. For example, the features described herein may be implemented by creating and / or sending and / or receiving and / or decoding a bitstream or a signal. For example, the features described herein may be implemented by a method, a process, a device, a medium storing instructions, a medium storing data or a signal. For example, the features described herein may be implemented by a TV, a set-top box, a mobile phone, a tablet computer or other electronic devices that perform decoding. A TV, a set-top box, a mobile phone, a tablet computer or other electronic devices may display (e.g., using a monitor, a screen or other type of display) a result image (e.g., an image reconstructed from the residual of a video bitstream). A TV, a set-top box, a mobile phone, a tablet computer or other electronic devices may receive a signal including an encoded image and perform decoding.
[0121] Syntax element values may be predicted from previously coded blocks whose pixels surrounding the blocks (eg, L-shaped pixels) match the current block template.Examples described herein may increase coding gain and / or reduce signaling of syntax elements.
[0122] For example, the encoder may determine whether to use a template-based coding mode for the current block. Based on determining to use the template-based coding mode for the current block, the encoder may bypass signaling of at least one syntax element for the current block. The current block may be encoded according to the template-based coding mode. Based on determining not to use the template-based coding mode for the current block, at least one syntax element for the current block may be included in the bitstream.
[0123] These examples may be performed by a device having at least one processor. The device may be an encoder or a decoder. These examples may be performed by a computer program product stored on a non-transitory computer-readable medium and including program code instructions. These examples may be performed by a computer program including program code instructions. These examples may be performed by a bitstream including information representing a template matching prediction mode.
[0124] This article provides an example of intra template matching prediction (intra TMP). Intra TMP is an intra prediction mode that can copy the best prediction block from the reconstructed part of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder can search for the template that is most similar to the current template in the reconstructed part of the current frame, and can use the corresponding block as the prediction block. The encoder can signal the use of this mode, and the same prediction operation can be performed on the decoder side.
[0125] Figure 5 An example of intra-frame template matching search area is shown. Figure 5 The prediction signal is generated by matching another block in a predetermined search area in the block to generate a prediction signal, the predetermined search area including:
[0126] R1: Current CTU
[0127] R2: Top left CTU
[0128] R3: Upper CTU
[0129] R4: Left CTU
[0130] The sum of absolute differences (SAD) may be used as a cost function. Within a region (e.g., within each region), the decoder may search for a template with the minimum SAD relative to the current template and may use the corresponding block of that template as the prediction block. The size of the region (SearchRange_w, SearchRange_h) may be set proportional to the block size (BlkW, BlkH) to have a fixed number of SAD comparisons per pixel. That is:
[0131] SearchRange_w=a*BlkW
[0132] SearchRange_h=a*BlkH
[0133] Wherein, 'a' may be a constant that controls the gain / complexity tradeoff. For example, 'a' may be equal to 5.
[0134] The intra template matching tool for CUs with width and height sizes less than or equal to 64 may be enabled. This maximum CU size for intra template matching may be configurable. The intra template matching prediction mode may be signaled at the CU level by the intra template matching prediction indication. If decoder-side intra mode derivation (DIMD) is not enabled (e.g., DIMD=0), the intra template matching prediction mode may be enabled at the CU level by the template matching prediction indication. Although an intra template matching example is described herein, the examples herein may also be applied to intra template matching.
[0135] Figure 6An example of symmetry of a screen content picture is illustrated. In the example, the intra-block copy (IBC) mode can be extended with a flip operation. The encoder can choose to flip (e.g., horizontally, vertically, or diagonally) a prediction block obtained by IBC and signal a syntax element indicating the flip direction. This can allow some patterns to be repeated in reverse spatial order (e.g., as Figure 6 shown).
[0136] In an example, the intra-frame template matching process may allow for flipping (e.g., horizontal flipping, vertical flipping, and diagonal flipping), rotation, and / or other re-orientation. This may allow some patterns to repeat in reverse spatial order or other adjusted spatial order. This may involve less signaling because the intra-frame template matching search may generate the flipped direction.
[0137] Figure 7 An example of enhanced template matching using different template orientations (e.g., flipped orientations and / or rotations) is illustrated. To perform template matching using different template orientations, the following operations may be performed:
[0138]
[0139] In an example, a decoder or encoder may determine to enable template-based prediction for a current block. A prediction block and a template orientation for the current block may be determined for the current block based on template matching. The current block may be decoded or encoded based on the prediction block and the template orientation. Template matching prediction (TMP) may be performed by matching a template of a prediction block within a specific range within a reconstructed region. The template may be composed of L-shaped pixels (e.g., template sample values) surrounding the prediction block in an upper direction and a left direction (e.g., as shown in FIG. 1 ). Figure 7 In an example, the template may be adjusted (e.g., as Figure 7 ). The adjusted template may be flipped horizontally, flipped vertically, flipped diagonally, rotated, or adjusted in other ways.
[0140] To find a prediction block for a given orientation (e.g., no flipping, horizontally flipped, vertically flipped, diagonally flipped, rotated, or other orientation adjustment) of a current block, a decoder or encoder may obtain a plurality of template orientations and determine the template orientation of the current block from the plurality of template orientations. In an example, a TMP search may be repeated to find the best template orientation. To find the best prediction block with the best template orientation, a plurality of template differences may be calculated between the template of the current block and each of a plurality of templates of a prediction block at a given template orientation (e.g., no flipping, horizontally flipped, vertically flipped, diagonally flipped, rotated, or other orientation adjustment).
[0141] The best prediction block with the best template orientation may be the minimum template difference value among the calculated multiple template difference values. The calculated template difference value may indicate the sample value difference between each of the samples in the template of the current block and the samples in the template of the prediction block at a given template orientation. In an example, a first template difference value between the template of the current block and the template of the first prediction block at a first template orientation may be calculated. A second template difference value between the template of the current block and the template of the second prediction block at a second template orientation may be calculated. The best prediction with the best template orientation for the current block may be the smaller template difference value of the first template difference value and the second template difference value.
[0142] A prediction block (e.g., an optimal prediction block) may be obtained (e.g., copied) when its orientation changes (e.g., when it is flipped). The prediction block may be adjusted based on the determined template orientation (e.g., the optimal template orientation). The current block may be decoded or encoded based on the adjusted prediction block. In an example, the determined template orientation may be a horizontally flipped template orientation, a vertically flipped template orientation, a diagonally flipped template orientation, or a rotated template orientation. The prediction block may be reoriented based on the determined template orientation. The current block may be decoded or encoded based on the reoriented block.
[0143] An example of employing template matching with narrowing by refinement may be performed by a decoder and / or an encoder. In an example, the complexity of intra-frame template matching may be increased by a factor of the number of flip directions tested (e.g., because the number of search operations repeated may be as many as the number of flips allowed). Two template matching searches may be applied. In an example, a matching block may be found using a first template matching search (e.g., using a conventional TMP associated with a vertical template orientation). A refinement search region for performing a second template matching search may be determined based on the matching block. In an example, an optimal template orientation (e.g., optimal flip) may be found around the location of the matching block. The region around the location of the matching block may be a refinement search region. A prediction block and template orientation for a current block may be determined based on a second template matching search performed within the refinement search region. This may reduce the number of searches to find a template orientation (e.g., optimal flip) because it may be limited to a small range around the matching block. The current block may be decoded and / or encoded based on the template orientation and prediction block found within the refinement search region.
[0144] Figure 8An example of searching for template sharing is illustrated. Multiple (e.g., two) template matching searches may be performed. A matching block may be identified based on a first template matching search. A template difference value between a template of a current block and a template of a matching block may be calculated. A candidate template orientation for a second template matching search may be based on the calculated template difference value. The decoder and / or encoder may perform a second template matching search based on the determined candidate template orientation. The calculated template difference value may indicate a sample value difference between each of the samples in the template of the current block and the samples in the template of the matching block at a given template orientation.
[0145] In an example, the top template of the current block (e.g., Figure 8 A) and the top template of the matching block to calculate the first template difference, which can be based on the left template of the current block (for example, Figure 8 B) shown in the figure and the left template of the matching block to calculate the second template difference, and the third template difference can be calculated based on both the top template and the left template of the current block and the top template and the left template of the matching block.
[0146] Based on the first template difference being the minimum difference among the first template difference, the second template difference, and the third template difference, the vertically flipped template orientation may be determined as a candidate template orientation for the second template matching search (eg, as Figure 8 In the example, a diagonally flipped version of the top block (e.g., as shown in FIG. 1 ) may also be used. Figure 8 Based on the second template difference being the minimum difference among the first template difference, the second template difference and the third template difference, the horizontally flipped template orientation may be determined as a candidate template orientation for the second template matching search (e.g., Figure 8 In the example, a diagonally flipped version of the left block (e.g., as shown in FIG. 1 ) may also be used. Figure 8 Based on the third template difference being the minimum difference among the first template difference, the second template difference, and the third template difference, the vertical template orientation of the current block may be determined as a candidate template orientation for the second template matching search (e.g., Figure 8 A+B shown).
[0147] In an example using search template sharing, the flipped version of the top block and / or the left block may be checked only when necessary. In an example, if the template size is 1 (e.g., the template sizes of the matching block and the current block are equal), the search template sharing example may be used. In an example, the flipped version of the top block and / or the left block may be checked multiple times.
[0148] In an example, the candidate template orientation may be based on the minimum template difference value among two of the first template difference value, the second template difference value, and the third template difference value. In an example, the second template matching search may be performed based on using only the flipped (e.g., vertical or diagonal) version of the top block as the candidate orientation, using the flipped (e.g., horizontal or diagonal) version of the left block as the candidate orientation, or using the vertical version of the current block as the candidate orientation. This may require only one or two additional calculations to be added in addition to the TMP calculation.
[0149] The encoder may include an indication in the video data to indicate whether to perform a multi-template directional search (e.g., for a coding block). The encoder may determine whether to perform a template matching search on a plurality of template orientations, and may indicate the determination result in the video data. The decoder may receive an indication of whether to perform a multi-template directional search for a second coding block. Based on the multi-template directional search indication, the decoder may determine whether to perform a multi-template directional search. Based on an indication indicating that a multi-template directional search is enabled, the decoder may obtain a plurality of template orientations. The template orientation of the coding block may be determined from a plurality of template orientations (e.g., as described herein). Based on an indication indicating that a multi-template directional search for a coding block is disabled, the decoder may perform a template matching search based on a default template orientation (e.g., a vertical orientation).
[0150] A multi-template directional search indication (e.g., a flag) or an associated indication may be signaled at the CU level. In some examples, a higher level indication may be used to indicate whether flipping is allowed for the current slice (e.g., a slice indication), the current picture (e.g., a picture header indication), or the entire sequence (e.g., an SPS indication).
[0151] Fig. 9 An example decoding process for template matching searches performed at different template orientations is illustrated. Fig. 9 As shown, it may be determined that template-based prediction for the current block is enabled. A prediction block and template orientation for the current block may be determined based on template matching (e.g., based on determining that template-based prediction is enabled). The current block may be decoded based on the prediction block and template orientation.
[0152] Fig.10 An example encoding process of template matching search performed at different template orientations is illustrated. Fig.10 As shown, it may be determined that template-based prediction for the current block is enabled. A prediction block and template orientation of the current block may be determined based on template matching (e.g., based on determining to enable template-based prediction). The current block may be encoded based on the prediction block and template orientation.
[0153] Although features and elements are described above in specific combinations, it will be understood by those of ordinary skill in the art that each feature or element may be used alone or in any combination with other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable media include electronic signals (sent via a wired or wireless connection) and 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 memory devices, magnetic media (such as built-in hard disks and removable disks), magneto-optical media, and optical media (such as CD-ROM disks and digital versatile disks (DVDs)). A processor associated with software may be used to implement a radio frequency transceiver for a WTRU, UE, terminal, base station, RNC, or any host.
Claims
1. A method for video decoding, the method comprising: Determining to enable template-based prediction for the current block; Based on template matching, determining a prediction block and a template orientation for the current block; as well as The current block is decoded based on the prediction block and the template orientation.
2. The method according to claim 1, further comprising: Get multiple template orientations; as well as The template orientation is determined from among the plurality of template orientations.
3. The method according to claim 1, further comprising: Calculating a first template difference between the template of the current block and the template of the first prediction block in a first template orientation; Calculating a second template difference between the template of the current block and a template of a second prediction block in a second template orientation; as well as The prediction block and the template orientation for the current block are determined based on a smaller template difference value between the first template difference value and the second template difference value.
4. The method according to claim 1, wherein: The template matching is a second template matching search, and the method further comprises: determining a matching block based on a first template matching search associated with a vertical template orientation; and Based on the matching block, a refined search area for performing the second template matching search is determined, wherein the prediction block and the template orientation for the current block are determined based on the second template matching search performed within the refined search area.
5. The method according to claim 1, further comprising: Based on the determined template orientation, the prediction block is adjusted, wherein the current block is decoded based on the adjusted prediction block.
6. The method according to claim 1, wherein: The determined template orientation is a horizontally flipped template orientation, a vertically flipped template orientation, a diagonally flipped template orientation, or a rotated template orientation, and the method further comprises: Based on the determined template orientation, the prediction block is reoriented, wherein the current block is decoded based on the reoriented prediction block.
7. The method according to claim 1, further comprising: Determine a matching block based on the first template matching search; Calculating a first template difference based on a top template of the current block and a top template of the matching block, calculating a second template difference based on a left template of the current block and a left template of the matching block, and calculating a third template difference based on the top template and the left template of the current block and the top template and the left template of the matching block; as well as Based on the first template difference, the second template difference and the third template difference, a candidate template orientation for a second template matching search is determined, wherein: Based on the first template difference being the minimum difference among the first template difference, the second template difference and the third template difference, the vertically flipped template orientation is determined as the candidate template orientation for the second template matching search, and Based on the second template difference being the minimum difference among the first template difference, the second template difference and the third template difference, the horizontally flipped template orientation is determined as the candidate template orientation for the second template matching search; as well as Based on the determined candidate template orientation, the second template matching search is performed.
8. The method according to claim 1, further comprising: receiving an indication indicating whether to perform a multi-template directional search for a second decoding block; obtaining a plurality of template orientations based on the indication indicating to perform the multi-template orientation search, and determining the template orientation for the second decoding block from among the plurality of template orientations; as well as Based on the indication indicating disabling of the multi-template directional search for the second coding block, it is determined that the template orientation is vertical.
9. A device for video decoding, the device comprising: A processor, the processor being configured to: Determining to enable template-based prediction for the current block; Based on template matching, determining a prediction block and a template orientation for the current block; and The current block is decoded based on the prediction block and the template orientation.
10. The device according to claim 9, wherein: The processor is further configured to: obtaining multiple template orientations; and The template orientation is determined from among the plurality of template orientations.
11. The device according to claim 9, wherein: The processor is further configured to: Calculating a first template difference between the template of the current block and the template of the first prediction block in a first template orientation; Calculating a second template difference between the template of the current block and a template of a second prediction block in a second template orientation; as well as The prediction block and the template orientation for the current block are determined based on a smaller template difference value between the first template difference value and the second template difference value.
12. The device according to claim 9, wherein: The template matching is a second template matching search, and wherein the processor is further configured to: determining a matching block based on a first template matching search associated with a vertical template orientation; and Based on the matching block, a refined search area for performing the second template matching search is determined, wherein the prediction block and the template orientation for the current block are determined based on the second template matching search performed within the refined search area.
13. The apparatus according to claim 9, wherein: The processor is further configured to: Based on the determined template orientation, the prediction block is adjusted, wherein the current block is decoded based on the adjusted prediction block.
14. The apparatus according to claim 9, wherein: The determined template orientation is a horizontally flipped template orientation, a vertically flipped template orientation, a diagonally flipped template orientation, or a rotated template orientation, wherein the processor is further configured to: Based on the determined template orientation, the prediction block is reoriented, wherein the current block is decoded based on the reoriented prediction block.
15. The apparatus according to claim 9, wherein: The processor is further configured to: Determine a matching block based on the first template matching search; Calculating a first template difference value based on a top template of the current block and a top template of a matched block, calculating a second template difference value based on a left template of the current block and a left template of the matched block, and calculating a third template difference value based on the top template and the left template of the current block and the top template and the left template of the matched block; as well as Based on the first template difference, the second template difference and the third template difference, a candidate template orientation for a second template matching search is determined, wherein: Based on the first template difference being the minimum difference among the first template difference, the second template difference and the third template difference, the vertically flipped template orientation is determined as the candidate template orientation for the second template matching search, and Based on the second template difference being the minimum difference among the first template difference, the second template difference and the third template difference, a horizontally flipped template orientation is determined as the candidate template orientation for the second template matching search; and Based on the determined candidate template orientation, the second template matching search is performed.
16. The apparatus according to claim 9, wherein: The processor is further configured to: receiving an indication indicating whether to perform a multi-template directional search for a second decoding block; obtaining a plurality of template orientations based on the indication indicating to perform the multi-template orientation search, and determining the template orientation for the second decoding block from among the plurality of template orientations; as well as Based on the indication indicating disabling of the multi-template directional search for the second coding block, it is determined that the template orientation is vertical.
17. A method for video encoding, the method comprising: Determining to enable template-based prediction for the current block; Based on template matching, determining a prediction block and a template orientation for the current block; as well as The current block is encoded based on the prediction block and the template orientation.
18. The method according to claim 17, further comprising: Get multiple template orientations; as well as The template orientation is determined from among the plurality of template orientations.
19. The method according to claim 17, further comprising: Calculating a first template difference between the template of the current block and the template of the first prediction block in a first template orientation; Calculating a second template difference between the template of the current block and a template of a second prediction block in a second template orientation; as well as The prediction block and the template orientation for the current block are determined based on a smaller template difference value between the first template difference value and the second template difference value.
20. The method according to claim 17, wherein: The template matching is a second template matching search, and the method further comprises: determining a matching block based on a first template matching search associated with a vertical template orientation; and Based on the matching block, a refined search area for performing the second template matching search is determined, wherein the prediction block and the template orientation for the current block are determined based on the second template matching search performed within the refined search area.
21. The method according to claim 17, further comprising: Based on the determined template orientation, the prediction block is adjusted, wherein the current block is encoded based on the adjusted prediction block.
22. The method according to claim 17, wherein: The determined template orientation is a horizontally flipped template orientation, a vertically flipped template orientation, a diagonally flipped template orientation, or a rotated template orientation, and the method further comprises: Based on the determined template orientation, the prediction block is reoriented, wherein the current block is encoded based on the reoriented prediction block.
23. The method according to claim 17, further comprising: Determine a matching block based on the first template matching search; Calculating a first template difference value based on a top template of the current block and a top template of a matched block, calculating a second template difference value based on a left template of the current block and a left template of the matched block, and calculating a third template difference value based on the top template and the left template of the current block and the top template and the left template of the matched block; as well as Based on the first template difference, the second template difference and the third template difference, a candidate template orientation for a second template matching search is determined, wherein: Based on the first template difference being the minimum difference among the first template difference, the second template difference and the third template difference, the vertically flipped template orientation is determined as the candidate template orientation for the second template matching search, and Based on the second template difference being the minimum difference among the first template difference, the second template difference and the third template difference, the horizontally flipped template orientation is determined as the candidate template orientation for the second template matching search; as well as Based on the determined candidate template orientation, the second template matching search is performed.
24. The method according to claim 17, further comprising: signaling an indication of whether to perform a multi-template directional search for the second decoding block; obtaining a plurality of template orientations based on the indication indicating to perform the multi-template orientation search, and determining the template orientation for the second decoding block from among the plurality of template orientations; as well as Based on the indication indicating disabling of the multi-template directional search for the second coding block, it is determined that the template orientation is vertical.
25. A device for video encoding, the device comprising: A processor, the processor being configured to: Determining to enable template-based prediction for the current block; Based on template matching, determining a prediction block and a template orientation for the current block; and The current block is encoded based on the prediction block and the template orientation.
26. The apparatus of claim 25, wherein: The processor is further configured to: obtaining multiple template orientations; and The template orientation is determined from among the plurality of template orientations.
27. The apparatus of claim 25, wherein: The processor is further configured to: Calculating a first template difference between the template of the current block and the template of the first prediction block in a first template orientation; Calculating a second template difference between the template of the current block and a template of a second prediction block in a second template orientation; as well as The prediction block and the template orientation for the current block are determined based on a smaller template difference value between the first template difference value and the second template difference value.
28. The apparatus of claim 25, wherein: The template matching is a second template matching search, and wherein the processor is further configured to: determining a matching block based on a first template matching search associated with a vertical template orientation; and Based on the matching block, a refined search area for performing the second template matching search is determined, wherein the prediction block and the template orientation for the current block are determined based on the second template matching search performed within the refined search area.
29. The apparatus of claim 25, wherein: The processor is further configured to: Based on the determined template orientation, the prediction block is adjusted, wherein the current block is encoded based on the adjusted prediction block.
30. The apparatus of claim 25, wherein: The determined template orientation is a horizontally flipped template orientation, a vertically flipped template orientation, a diagonally flipped template orientation, or a rotated template orientation, wherein the processor is further configured to: Based on the determined template orientation, the prediction block is reoriented, wherein the current block is encoded based on the reoriented prediction block.
31. The apparatus of claim 25, wherein: The processor is further configured to: Determine a matching block based on the first template matching search; Calculating a first template difference value based on a top template of the current block and a top template of a matched block, calculating a second template difference value based on a left template of the current block and a left template of the matched block, and calculating a third template difference value based on the top template and the left template of the current block and the top template and the left template of the matched block; as well as Based on the first template difference, the second template difference and the third template difference, a candidate template orientation for a second template matching search is determined, wherein: Based on the first template difference being the minimum difference among the first template difference, the second template difference and the third template difference, the vertically flipped template orientation is determined as the candidate template orientation for the second template matching search, and Based on the second template difference being the minimum difference among the first template difference, the second template difference and the third template difference, a horizontally flipped template orientation is determined as the candidate template orientation for the second template matching search; and Based on the determined candidate template orientation, the second template matching search is performed.
32. The apparatus of claim 25, wherein: The processor is further configured to: signaling an indication of whether to perform a multi-template directional search for the second decoding block; obtaining a plurality of template orientations based on the indication indicating to perform the multi-template orientation search, and determining the template orientation for the second decoding block from among the plurality of template orientations; as well as Based on the indication indicating disabling of the multi-template directional search for the second coding block, it is determined that the template orientation is vertical.
33. A computer program product stored on a non-transitory computer readable medium and comprising program code instructions for implementing the steps of the method according to at least one of claims 1 to 8 and claims 17 to 24 when executed by at least one processor.
34. A computer readable medium comprising program code instructions for implementing the steps of the method according to at least one of claims 1 to 8 and claims 17 to 24 when executed by a processor.
35. Video data comprising information representing an encoded output generated by a method according to any one of claims 17 to 24.