Progressive decoding refresh padding

By identifying and utilizing dirty and clean areas of reference pictures in video encoding, and using sample value propagation and virtual boundary filling technology, the efficiency problem at the boundaries in video encoding is solved, and the encoding and decoding quality is improved.

CN120419166APending Publication Date: 2025-08-01INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380088625.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-23
Filing Date
2023-12-18
Publication Date
2025-08-01

Smart Images

  • Figure CN120419166A_ABST
    Figure CN120419166A_ABST
Patent Text Reader

Abstract

Systems, methods, and instrumentalities related to the field of video compression are disclosed herein. A video decoder or video encoder may identify a reference picture. The reference picture may include a first region (e.g., a soiled region) and a second region (e.g., a clean region) divided by a boundary (e.g., a virtual boundary). In an example, multiple sample values may be propagated (e.g., horizontally propagated) from a clean area to a soiled area (e.g., the entire soiled area). In an example, the plurality of sample values may be propagated (e.g., horizontally propagated) from a clean region to a subset of soiled regions. The video decoder may decode the current block based on the propagated plurality of sample values, or the video encoder may encode the current block based on the propagated plurality of sample values.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - reference to related applications

[0002] This application claims the benefit of European Patent Application No. 22307024.4, filed on Dec. 23, 2022, the disclosure of which is incorporated herein by reference in its entirety. Background Art

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

[0004] Systems, methods, and means related to the field of video compression are disclosed herein.

[0005] In an example, a video decoder or a video encoder can identify a reference picture. The reference picture can include a first region (e.g., a contaminated region) and a second region (e.g., a clean region) divided by a boundary (e.g., a virtual boundary). In an example, a plurality of sample values can be propagated (e.g., horizontally) from the clean region to the contaminated region (e.g., the entire contaminated region). In an example, the plurality of sample values can be propagated (e.g., horizontally) from the clean region to a subset of the contaminated region. The video decoder can decode a current block based on the propagated plurality of sample values, or the video encoder can encode a current block based on the propagated plurality of sample values.

[0006] In an example, a video decoder or a video encoder can obtain a reference block in the first region (e.g., the contaminated region) of a reference picture (e.g., a first reference picture). A motion - compensated block associated with the reference block can be identified. The video decoder or the video encoder can fill the reference block with the sample values of the motion - compensated block. A second reference picture can be identified. The second reference picture can include a first region (e.g., a contaminated region) and a second region (e.g., a clean region) divided by a boundary (e.g., a virtual boundary). The video decoder or the video encoder can determine that the sample values of the motion - compensated block are within the clean region of the second reference picture. Based on the sample values of the motion - compensated block being within the clean region, the sample values of the motion - compensated block can be used to fill the contaminated region of the first reference picture.

[0007] These examples can be executed by a device having a processor. The device can be an encoder or a decoder. These examples can be executed by a computer program product stored on a non-transitory computer-readable medium and including program code instructions. These examples can be executed by a computer program including program code instructions. These examples can be executed by a bitstream including information representing a template matching prediction pattern.

[0008] The systems, methods, and means described herein can relate to a decoder. In some examples, the systems, methods, and means described herein can relate to an encoder. In some examples, the systems, methods, and means described herein can relate to a signal (e.g., from an encoder and / or received by a decoder). A computer-readable medium can include instructions for causing one or more processors to execute the methods described herein. A computer program product can contain instructions that, when executed by one or more processors, can cause the one or more processors to execute the methods described herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Figure 1A is a system diagram showing an exemplary communication system in which one or more of the disclosed embodiments can be implemented.

[0010] Figure 1B is a system diagram showing an exemplary wireless transmit / receive unit (WTRU) that can be used in the Figure 1A shown communication system according to an embodiment.

[0011] Figure 1C is a system diagram showing an exemplary radio access network (RAN) and an exemplary core network (CN) that can be used in the Figure 1A shown communication system according to an embodiment.

[0012] Figure 1D is a system diagram showing another exemplary RAN and another exemplary CN that can be used in the Figure 1A shown communication system according to an embodiment.

[0013] Figure 2 shows an exemplary video encoder.

[0014] Figure 3 shows an exemplary video decoder.

[0015] Figure 4 shows an exemplary system in which various aspects and examples can be implemented.

[0016] Figure 5 shows an example representing the concept of an encoding tree for a compressed image.

[0017] Figure 6An example of dividing a coding tree unit into a coding unit, a prediction unit, and a transform unit is shown.

[0018] Figure 7 An example of the progressive decoding refresh (GDR) refresh concept is shown.

[0019] Figure 8 An example of a reference picture used by a contaminated area is shown.

[0020] Figure 9 An example of a reference picture used by a clean area is shown.

[0021] Figure 10 and Figure 11 An example of motion compensation boundary filling is shown.

[0022] Figure 12 and Figure 13 An example of motion compensation is shown.

[0023] Figure 14 An example of filling the entire contaminated area of a reference picture used by a clean area is shown.

[0024] Figure 15 An example of filling 32 pixels of the contaminated area of a reference picture by a clean area is shown.

[0025] Figure 16 An example of a reference picture used by a clean area using motion compensation boundary filling is shown.

[0026] Figure 17 An example of an out-of-bounds prediction process at a virtual boundary is shown. Detailed Description

[0027] A more detailed understanding can be obtained from the following description given by way of example in conjunction with the accompanying drawings.

[0028] Figure 1AFIG. is a schematic diagram illustrating an exemplary communication system 100 that may implement one or more of the disclosed embodiments. The communication system 100 may be a multi-access system that provides content, such as voice, data, video, messages, broadcasts, etc., to a plurality of wireless users. The communication system 100 may enable the plurality of 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 discrete Fourier transform spread OFDM (ZT UW DTS-s OFDM), unique word OFDM (UW-OFDM), resource block filtered OFDM, filter bank multicarrier (FBMC), etc.

[0029] As Figure 1A 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 disclosed embodiments 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 transmit and / or receive wireless signals and may include user equipment (UE), mobile stations, fixed or mobile subscriber units, subscription-based units, pagers, cellular telephones, personal digital assistants (PDA), smartphones, laptop computers, netbooks, personal computers, wireless sensors, hotspots or Mi-Fi devices, Internet of Things (IoT) devices, watches or other wearable devices, head-mounted displays (HMD), vehicles, drones, 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 processing chain environment), consumer electronic devices, devices operating on commercial and / or industrial wireless networks, etc. Any of the WTRUs 102a, 102b, 102c, and 102d may be interchangeably referred to as a UE.

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

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

[0032] Base stations 114a, 114b may communicate with one or more of WTRUs 102a, 102b, 102c, 102d via air interface 116, which may be any suitable wireless communication link (e.g., radio frequency (RF), microwave, centimeter wave, millimeter wave, infrared (IR), ultraviolet (UV), visible light, etc.). Any suitable radio access technology (RAT) may be used to establish air interface 116.

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

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

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

[0036] In an embodiment, the base stations 114a and the WTRUs 102a, 102b, 102c can implement multiple radio access technologies. For example, the base stations 114a and the WTRUs 102a, 102b, 102c can implement LTE radio access and NR radio access together, such as using the Dual Connectivity (DC) principle. Accordingly, the air interfaces used by the WTRUs 102a, 102b, 102c can be characterized by multiple types of radio access technologies and / or transmissions to / from multiple types of base stations (e.g., eNB and gNB).

[0037] 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 GSM Evolution (EDGE), GSM EDGE (GERAN), etc.

[0038] Figure 1A The base station 114b in

[0038] may be, for example, a wireless router, a Home Node B, a Home eNode B, or an access point, and may utilize any suitable RAT to facilitate wireless connectivity in a local area (such as a business premise, a home, a vehicle, a campus, an industrial facility, an air corridor (e.g., for drones), a road, etc.). In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.11 to establish a Wireless Local Area Network (WLAN). In 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 yet another embodiment, the base station 114b and the WTRUs 102c, 102d may utilize a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.) to establish a pico cell or a femto cell. As Figure 1A shown, the base station 114b may have a direct connection to the Internet 110. Thus, the base station 114b may not need to access the Internet 110 via the CN 106 / 115.

[0039] The RAN 104 / 113 may communicate with the CN 106 / 115, and the CN 106 / 115 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 services, prepaid calls, Internet connectivity, video distribution, etc., and / or perform advanced security functions, such as user authentication. Although not shown in Figure 1Ashown, it should be understood that RAN 104 / 113 and / or CN 106 / 115 can communicate directly or indirectly with other RANs using the same RAT as RAN 104 / 113 or a different RAT. For example, in addition to being connected to RAN 104 / 113 which may use NR radio technology, CN 106 / 115 can also communicate with another RAN (not shown) that uses GSM, UMTS, CDMA 2000, WiMAX, E-UTRA, or WiFi radio technology.

[0040] CN 106 / 115 can also be used as a gateway for WTRU 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 110, and / or other networks 112. The PSTN 108 can include a circuit-switched telephone network that provides plain old telephone service (POTS). The Internet 110 can include a global system of interconnected computer networks and devices that use common communication protocols (e.g., TCP, UDP, and / or IP in the Transmission Control Protocol (TCP) / Internet Protocol (IP) Internet protocol suite). The network 112 can include wired and / or wireless communication networks owned and / or operated by other service providers. For example, the network 112 can include another CN that is connected to one or more RANs that can use the same RAT as RAN 104 / 113 or a different RAT.

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

[0042] Figure 1B is a system diagram showing an exemplary WTRU 102. As Figure 1B shown, the WTRU 102 can include a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a keypad 126, a display / touchpad 128, a non-removable memory 130, a removable memory 132, a power supply 134, a Global Positioning System (GPS) chipset 136, and / or other peripheral devices 138, etc. It should be understood that the WTRU 102 can include any sub-combination of the foregoing elements while still remaining consistent with the embodiments.

[0043] The processor 118 can be a general-purpose processor, a dedicated processor, a conventional processor, a digital signal processor (DSP), multiple microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) circuit, any other type of integrated circuit (IC), a state machine, etc. As described above, the processor 118 can include multiple processors. The processor 118 can perform signal encoding, data processing, power control, input / output processing, and / or any other functions that enable the WTRU 102 to operate in a wireless environment. The processor 118 can be coupled to the transceiver 120, and the transceiver 120 can be coupled to the transmit / receive element 122. Although Figure 1B the processor 118 and the transceiver 120 are depicted as separate components, it should be understood that the processor 118 and the transceiver 120 can be integrated together in an electronic package or chip.

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

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

[0046] The transceiver 120 can be configured to modulate the signals to be sent by the transmit / receive element 122 and demodulate the signals received by the transmit / receive element 122. As described above, the WTRU 102 can have multi-mode capabilities. Thus, the transceiver 120 can include multiple transceivers to enable the WTRU 102 to communicate via multiple RATs (e.g., NR and IEEE 802.11).

[0047] The processor 118 of the WTRU 102 can be coupled to 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), and can receive user input data therefrom. The processor 118 can also output user data to the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128. In addition, the processor 118 can access information in any type of suitable memory (e.g., non-removable memory 130 and / or removable memory 132) and store data therein. The non-removable memory 130 can include random access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 132 can include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, etc. In other embodiments, the processor 118 can access information in a memory that is not physically located on the WTRU 102 (e.g., on a server or a home computer (not shown)) and store data therein.

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

[0049] The processor 118 can also be coupled to a GPS chipset 136, which can be configured to provide location information (e.g., longitude and latitude) about the current location of the WTRU 102. In addition to or instead of information from the GPS chipset 136, the WTRU 102 can receive location information from a base station (e.g., base stations 114a, 114b) via an air interface 116 and / or determine its location based on time information of signals received from two or more nearby base stations. It should be understood that the WTRU 102 can obtain location information by any suitable location determination method while still being consistent with the embodiments.

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

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

[0052] Figure 1C is a system diagram showing the RAN 104 and the CN 106 according to an embodiment. As described above, the RAN 104 may employ E-UTRA radio technology to communicate with the WTRU 102a, 102b, 102c via the air interface 116. The RAN 104 may also communicate with the CN 106.

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

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

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

[0056] The MME 162 may be connected to each of the eNode-Bs 162a, 162b, 162c in the RAN 104 via the 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, activating / deactivating bearers, selecting a specific serving gateway during the initial attachment of the WTRUs 102a, 102b, 102c, etc. The MME 162 may provide control plane functions for handovers between the RAN 104 and other RANs (not shown) employing other radio technologies such as GSM and / or WCDMA.

[0057] The SGW 164 can be connected via the S1 interface to each of the eNode-Bs 160a, 160b, 160c in the RAN 104. The SGW 164 can typically route and forward user data packets to / from the WTRUs 102a, 102b, 102c. The SGW 164 can perform other functions such as anchoring the user plane during handover between eNode-Bs, triggering paging when there is DL data for the WTRUs 102a, 102b, 102c, managing and storing the context of the WTRUs 102a, 102b, 102c, etc.

[0058] The SGW 164 can be connected to the PGW 166, and the PGW 166 can provide the WTRUs 102a, 102b, 102c with access to a packet switched network (such as the Internet 110) to facilitate communication between the WTRUs 102a, 102b, 102c and IP-enabled devices.

[0059] The CN 106 can facilitate communication with other networks. For example, the CN 106 can provide the WTRUs 102a, 102b, 102c with access to a circuit switched network (such as the PSTN 108) to facilitate communication between the WTRUs 102a, 102b, 102c and traditional landline communication devices. For example, the CN 106 can include an IP gateway (such as an IP Multimedia Subsystem (IMS) server) that serves as an interface between the CN 106 and the PSTN 108 or can communicate therewith. In addition, the CN 106 can provide the WTRUs 102a, 102b, 102c with access to other networks 112, which can include other wired and / or wireless networks owned and / or operated by other service providers.

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

[0061] In a representative embodiment, the other network 112 can be a WLAN.

[0062] A WLAN in infrastructure basic service set (BSS) mode can have an access point (AP) for the BSS and one or more stations (STAs) associated with the AP. The AP can have access or an interface to a distribution system (DS) or other type of wired / wireless network that carries traffic in and out of the BSS. Traffic from outside the BSS to an STA can reach the STA through the AP and can be delivered to the STA. Traffic from an STA to a destination outside the BSS can be sent to the AP for delivery to the corresponding destination. Traffic between STAs within the BSS can be sent through the AP. For example, a source STA can send traffic to the AP, and the AP can deliver the traffic to the destination STA. Traffic between STAs within the BSS can be considered and / or referred to as peer-to-peer traffic. The peer-to-peer traffic can be sent between the source and destination STAs (e.g., directly) through direct link setup (DLS). In some representative embodiments, the DLS can use 802.11e DLS or 802.11z tunneled DLS (TDLS). A WLAN using independent BSS (IBSS) mode can have no AP, and STAs within the IBSS or using the IBSS (e.g., all STAs) can communicate directly with each other. The IBSS communication mode can sometimes be referred to as an "ad-hoc" communication mode in this document.

[0063] When using 802.11ac infrastructure operation mode or a similar operation mode, the AP can send beacons on a fixed channel (e.g., the primary channel). The primary channel can be of a fixed width (e.g., 20 MHz bandwidth) or a width dynamically set by signaling. The primary channel can be the operation channel of the BSS and can be used by STAs to establish a connection with the AP. In some representative embodiments, carrier sense multiple access with collision avoidance (CSMA / CA) can be implemented, such as in 802.11 systems. For CSMA / CA, STAs (e.g., each STA) (including the AP) can sense the primary channel. If a particular STA senses / detects and / or determines that the primary channel is busy, the particular STA can back off. In a given BSS, one STA (e.g., only one station) can transmit at any given time.

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

[0065] A very high throughput (VHT) STA may support 20 MHz, 40 MHz, 80 MHz, and / or 160 MHz wide channels. The 40 MHz and / or 80 MHz channels may be formed by combining consecutive 20 MHz channels. The 160 MHz channel may be formed by combining eight consecutive 20 MHz channels, or by combining two non-consecutive 80 MHz channels (which may be referred to as an 80+80 configuration). For the 80+80 configuration, the data after channel coding may be passed through a segment parser that divides the data into two streams. The inverse fast Fourier transform (IFFT) processing and time domain processing may be performed separately on each stream. The streams may be mapped to two 80 MHz channels, and the data may be transmitted by the transmitting STA. At the receiver of the receiving STA, the operations for the 80+80 configuration described above may be reversed, and the combined data may be sent to the media access control (MAC).

[0066] 802.11af and 802.11ah support operation modes below 1 GHz. The channel operation bandwidths and carriers in 802.11af and 802.11ah are reduced compared to those used in 802.11n and 802.11ac. 802.11af supports 5 MHz, 10 MHz, and 20 MHz bandwidths in the TV white space (TVWS) spectrum, and 802.11ah uses the non-TVWS spectrum to support 1 MHz, 2 MHz, 4 MHz, 8 MHz, and 16 MHz bandwidths. According to a representative embodiment, 802.11ah may support meter type control / machine type communication, such as MTC devices in a macro coverage area. The MTC devices may have certain capabilities, for example, limited capabilities, including supporting (e.g., only supporting) certain and / or limited bandwidths. The MTC devices may include a battery with a battery life higher than a threshold (e.g., to maintain a very long battery life).

[0067] A WLAN system that supports multiple channels and channel bandwidths (e.g., 802.11n, 802.11ac, 802.11af, and 802.11ah) includes channels that can be designated as primary channels. The primary channel can have a bandwidth equal to the maximum common operating bandwidth supported by all STAs in the BSS. The bandwidth of the primary channel can be set and / or restricted by the STA that supports the minimum bandwidth operating mode among all STAs operating in the BSS. In the example of 802.11ah, for an STA that supports (e.g., only supports) the 1MHz mode (e.g., an MTC type device), the primary channel can 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 (e.g., due to an STA (only supporting the 1MHz operating mode) transmitting to the AP), the entire available frequency band may be considered busy, even if most of the band remains idle and may be available.

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

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

[0070] The RAN 113 may include gNBs 180a, 180b, 180c, but it should be understood that the RAN 113 may include any number of gNBs while still being consistent with the embodiments. Each of the gNBs 180a, 180b, 180c may 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 use beamforming to transmit signals to and / or receive signals from the gNBs 180a, 180b, 180c. Thus, for example, the gNB 180a may use multiple antennas to transmit 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, the gNB 180a may transmit multiple component carriers (not shown) to the WTRU 102a. A subset of these component carriers may be on unlicensed spectrum while the remaining component carriers may be on licensed spectrum. In an embodiment, the gNBs 180a, 180b, 180c may implement coordinated multi-point transmission (CoMP) technology. For example, the WTRU 102a may receive coordinated transmissions from the gNB 180a and the gNB 180b (and / or gNB 180c).

[0071] The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using transmissions associated with scalable parameter sets. For example, the OFDM symbol spacing and / or the OFDM subcarrier spacing may vary for different transmissions, different cells, and / or different portions of the radio transmission spectrum. The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using multiple or scalable length subframes or transmission time intervals (TTIs) (e.g., containing different numbers of OFDM symbols and / or having an absolute time length that varies continuously).

[0072] gNBs 180a, 180b, 180c can be configured to communicate with WTRUs 102a, 102b, 102c in stand-alone configuration and / or non-stand-alone configuration. In stand-alone configuration, WTRUs 102a, 102b, 102c can communicate with gNBs 180a, 180b, 180c without simultaneously accessing other RANs (e.g., such as eNode-Bs 160a, 160b, 160c). In stand-alone configuration, WTRUs 102a, 102b, 102c can use one or more of gNBs 180a, 180b, 180c as a mobility anchor. In stand-alone configuration, WTRUs 102a, 102b, 102c can communicate with gNBs 180a, 180b, 180c using signals in unlicensed bands. In non-stand-alone configuration, WTRUs 102a, 102b, 102c can communicate / connect with gNBs 180a, 180b, 180c while also communicating / connecting with another RAN (e.g., eNode-Bs 160a, 160b, 160c). For example, WTRUs 102a, 102b, 102c can 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 non-stand-alone configuration, eNode-Bs 160a, 160b, 160c can be used as the mobility anchor for WTRUs 102a, 102b, 102c, and gNBs 180a, 180b, 180c can provide additional coverage and / or throughput for serving WTRUs 102a, 102b, 102c.

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

[0074] Figure 1DThe CN 115 shown may include at least one AMF 182a, 182b, at least one UPF 184a, 184b, at least one session management function (SMF) 183a, 183b, and possibly data networks (DN) 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.

[0075] 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 WTRUs 102a, 102b, 102c, supporting network slicing (e.g., handling PDU sessions with different requirements), selecting a particular SMF 183a, 183b, managing the registration area, terminating NAS signaling, mobility management, etc. The AMF 182a, 182b may use network slicing to customize the CN support for the WTRUs 102a, 102b, 102c based on the type of service the WTRUs 102a, 102b, 102c are using. 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 massive mobile broadband (eMBB) access, services for machine type communication (MTC) access, and / or similar services. The AMF 162 may provide control plane functions for handovers between the RAN 113 and other RANs (not shown) employing other radio technologies (such as LTE, LTE-A, LTE-APro, and / or non-3GPP access technologies such as WiFi).

[0076] 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 traffic routing through 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 enforcement and QoS, providing downlink data notifications, etc. The PDU session type may be IP-based, non-IP-based, Ethernet-based, etc.

[0077] 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. This may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks, such as the Internet 110, to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices. The 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, providing mobility anchoring, etc.

[0078] 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. Furthermore, the CN 115 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers. In one embodiment, the WTRUs 102a, 102b, 102c may connect to a local data network (DN) 185a, 185b through the UPFs 184a, 184b via the N3 interface to the UPFs 184a, 184b and the N6 interface between the UPFs 184a, 184b and the DNs 185a, 185b.

[0079] Given that Figures 1A to 1D

[0015] As described herein, one or more or all of the functions described herein for one or more of the WTRUs 102a-d, base stations 114a-b, eNode-Bs 160a-c, MMEs 162, SGWs 164, PGWs 166, gNBs 180a-c, AMFs 182a-b, UPFs 184a-b, SMFs 183a-b, DNs 185a-b, and / or any other devices described herein may be performed by one or more emulation devices (not shown). The emulation devices may be one or more devices configured to emulate one or more or all of the functions described herein. For example, the emulation devices may be used to test other devices and / or emulate network and / or WTRU functions.

[0080] The simulation device(s) may be designed to implement one or more tests on other devices in a laboratory environment and / or an operator network environment. For example, the one or more simulation device(s) may perform one or more or all functions while being fully or partially implemented and / or deployed as part of a wired and / or wireless communication network to test other devices within the communication network. The one or more simulation device(s) may perform one or more or all functions while being temporarily implemented / deployed as part of a wired and / or wireless communication network. The simulation device may be directly coupled to another device for testing and / or may perform tests using over-the-air wireless communication.

[0081] The one or more simulation device(s) may perform the one or more (including all) functions without being implemented / deployed as part of a wired and / or wireless communication network. For example, the simulation device may be used to test test scenarios in a laboratory and / or an un-deployed (e.g., for testing) wired and / or wireless communication network to implement testing of one or more components. The one or more simulation device(s) may be test devices. The simulation device may send and / or receive data using direct RF coupling and / or wireless communication through an RF circuit (which may include one or more antennas).

[0082] This application describes various aspects, including tools, features, examples, models, schemes, etc. Many of these aspects are specifically described and are usually described in a way that may sound restrictive, at least to show individual features. However, this is for the sake of clarity of description and does not limit the application or scope of these aspects. In fact, all the different aspects can be combined and interchanged to provide further aspects. Additionally, these aspects can be combined and interchanged with aspects described in prior applications.

[0083] The aspects described and contemplated in this application may be implemented in many different forms. Examples Figures 5 to 17 may be provided herein, but other examples are also contemplated. The discussion of Figures 5 to 17 does not limit the breadth of the implementation. At least one aspect generally relates to video encoding and decoding, and at least another aspect generally relates to sending a generated or encoded bitstream. These and other aspects may be implemented as a method, an apparatus, a computer-readable storage medium storing instructions for encoding or decoding video data according to any of the methods, and / or a computer-readable storage medium storing a bitstream generated according to any of the methods.

[0084] In this application, the terms "reconstruction" and "decoding" may be used interchangeably, the terms "pixel" and "sample" may be used interchangeably, and the terms "image", "picture", and "frame" may be used interchangeably.

[0085] This document describes various methods, each method including one or more steps or actions for implementing the method. Unless the correct operation of the method requires steps or actions in a specific order, the order and / or use of the steps and / or actions can be modified or combined. Additionally, terms such as "first", "second", etc. can be used in various examples to modify elements, components, steps, operations, etc., for example, "first decoding" and "second decoding". The use of such terms does not imply an order for the modified operations, unless specifically required. Thus, in this example, the first decoding does not need to be performed before the second decoding, and can occur before, during, or in an overlapping time period with the second decoding.

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

[0087] A variety of numerical values are used in the examples describing this application, such as bits, bit depth, etc. These and other specific values are for the purpose of describing the examples, and the aspects described are not limited to these specific values.

[0088] Figure 2 is a diagram showing an exemplary video encoder. Variants of the exemplary encoder 200 are considered, but for clarity, encoder 200 is described below without describing all the expected variants.

[0089] Before encoding, the video sequence can be pre - encoded (201). For example, a color transformation (e.g., from RGB 4:4:4 to YCbCr 4:2:0) can be applied to the input color picture, or remapping of the input picture components can be performed to obtain a more compression - resistant signal distribution (e.g., using histogram equalization of one of the color components). Metadata can be associated with the pre - processing and appended to the bitstream.

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

[0091] The predicted residual is then transformed (225) and quantized (230). The quantized transform coefficients, motion vectors, and other syntax elements are entropy-encoded (245) to output a bitstream. The encoder may skip the transform and directly apply quantization to the untransformed residual signal. The encoder may bypass both the transform and quantization, i.e., directly encode the residual without applying the transform or quantization process.

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

[0093] Figure 3 is a diagram showing an example of a video decoder. In exemplary decoder 300, the bitstream is decoded by decoder elements as described below. Video decoder 300 generally performs a decoding process opposite to the Figure 2 encoding process described therein. Encoder 200 generally also performs video decoding as part of encoding video data.

[0094] Specifically, the input to the decoder includes a video bitstream, which may be generated by video encoder 200. First, the bitstream is entropy-decoded (330) to obtain transform coefficients, motion vectors, and other encoded information. The picture partitioning information indicates how the picture is partitioned. Thus, the decoder can split (335) the picture according to the decoded picture partitioning information. The transform coefficients are dequantized (340) and inverse-transformed (350) to decode the predicted residual. The decoded predicted residual and the predicted block are combined (355) to reconstruct the image block. The predicted block can be obtained (370) from intra-frame prediction (360) or motion-compensated prediction (i.e., inter-frame prediction) (375). A loop filter (365) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (380).

[0095] The decoded image can be further post - processed (385) after decoding, such as an inverse color transformation (e.g., from YCbCr 4:2:0 to RGB 4:4:4) or performing an inverse remapping opposite to the remapping process performed in the precoding process (201). The post - processing after decoding can use metadata derived in the precoding process and signaled in the bitstream. In one example, the decoded image (e.g., after applying the loop filter (365) and / or after post - processing after decoding (385) if post - processing after decoding is used) can be sent to a display device for presentation to a user.

[0096] Figure 4 FIG. is a schematic diagram of a system in which various aspects and examples described herein can be implemented. System 400 can be embodied as a device including various components described below and configured to perform one or more aspects described herein. Examples of such devices include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set - top boxes, digital television receivers, personal video recording systems, networked household appliances, and servers. The elements of system 400 can 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 among 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 dedicated input and / or output ports. In various examples, system 400 is configured to implement one or more aspects described herein.

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

[0098] System 400 includes an encoder / decoder module 430, which is configured, for example, to process data 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 a module that may be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of an encoding and a decoding module. Additionally, the encoder / decoder module 430 may be implemented as a separate element of system 400 or may be incorporated into the processor 410 in a combination of hardware and software known to those skilled in the art.

[0099] Program code to be loaded onto the processor 410 or encoder / decoder 430 to perform the various aspects described herein may be stored in the storage device 440 and subsequently loaded into 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 the various items during the execution of the processes described herein. Such stored items may include, but are not limited to, input video, decoded video or a portion of decoded video, bitstreams, matrices, variables, and intermediate or final results from equations, formulas, operations, and operational logic processing.

[0100] In some examples, the memory internal to the processor 410 and / or the encoder / decoder module 430 is used to store instructions and provide working memory for the processing required during encoding or decoding. However, in other examples, 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 the memory 420 and / or the storage device 440, for example, dynamic volatile memory and / or non-volatile flash memory. In several examples, the external non-volatile flash memory is used to store, for example, the operating system of a television. In at least one example, fast external dynamic volatile memory such as RAM is used as the working memory for video encoding and decoding operations.

[0101] Inputs to the elements of system 400 may be provided by a variety of input devices indicated in block 445. Such input devices include, but are not limited to: (i) a radio frequency (RF) section that receives an RF signal wirelessly transmitted, for example, by a broadcaster; (ii) component (COMP) input terminals (or a set of COMP input terminals); (iii) universal serial bus (USB) input terminals; and / or (iv) high-definition multimedia interface (HDMI) input terminals. Other examples not shown in Figure 4 include composite video.

[0102] In various examples, the input device of block 445 has associated respective input processing elements, as known in the art. For example, the RF section can be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal, or limiting the signal bandwidth to a frequency band), (ii) down-converting the selected signal, (iii) again limiting the bandwidth to a narrower frequency band to select (e.g.) a signal band (which can be referred to as a channel in some examples), (iv) demodulating the down-converted and bandwidth-limited signal, (v) performing error correction and / or (vi) demultiplexing to select a desired data packet stream. The RF section of various examples includes one or more elements that perform these functions, such as a frequency selector, a signal selector, a bandwidth limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF section can include a tuner that performs multiple of these functions, such as down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or to baseband. In one example of a set-top box, the RF section and its associated input processing elements receive an RF signal transmitted through a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and filtering again to a desired frequency band. Various examples rearrange the order of the above (and other) elements, remove some of them, and / or add other elements that perform similar or different functions. Adding elements can include inserting elements between existing elements, such as inserting an amplifier and an analog-to-digital converter. In various examples, the RF section includes an antenna.

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

[0104] The various elements of the system 400 can be disposed within an integrated housing. Within the integrated housing, the various elements can be interconnected using suitable connection means 425 and data can be transmitted therebetween, the connection means being, for example, internal buses (including internal integrated circuit (I2C) buses), wiring, and printed circuit boards known in the art.

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

[0106] In a variety of examples, a wireless network such as a Wi-Fi network (e.g., IEEE 802.11, where IEEE refers to the Institute of Electrical and Electronics Engineers) is used to stream or otherwise provide data to system 400. The Wi-Fi signals of these examples are received via the communication channel 460 and the communication interface 450 suitable for Wi-Fi communication. The communication channel 460 of these examples is typically connected to an access point or router that provides access to an external network, including the Internet, to allow streaming applications and other over-the-top communications. Other examples use a set-top box to provide streaming data to system 400, and the set-top box delivers data via the HDMI connection of input box 445. Still other examples use the RF connection of input box 445 to provide streaming data to system 400. As described above, a variety of examples provide data in a non-streaming manner. Additionally, a variety of examples use wireless networks other than Wi-Fi, such as cellular networks or networks.

[0107] System 400 may provide output signals to a variety of output devices, including a display 475, speakers 485, and other peripheral devices 495. The display 475 of a variety of examples includes one or more of the following: for example, a touchscreen 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, a laptop computer, a mobile phone (cell phone), or other devices. The display 475 may also be integrated with other components (e.g., as in a smartphone) or separated (e.g., as an external monitor for a laptop computer). In a variety of examples, the other peripheral devices 495 include one or more of the following: a standalone digital video disc (or digital versatile disc) (DVD, both terms are applicable), a disc player, a stereo system, and / or a lighting system. A variety of examples use one or more of the peripheral devices 495 that perform functions based on the output of system 400. For example, a disc player performs the function of playing the output of system 400.

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

[0109] Display 475 and speaker 485 can alternatively be separate from one or more other components, for example, if the RF portion of input 445 is part of a separate set-top box. In examples where display 475 and speaker 485 are external components, output signals can be provided through dedicated output connections, such as dedicated outputs including HDMI ports, USB ports, or COMP outputs.

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

[0111] Multiple implementations involve decoding. As used in this application, "decoding" can cover, for example, all or part of the process performed on a received coded sequence to produce a final output suitable for display. In various examples, such processes include one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various examples, such processes can also or alternatively include processes performed by a decoder in the multiple implementations described in this application, such as identifying a reference picture that includes a first region and a second region divided by a boundary; propagating a plurality of sample values from the second region to the first region; and decoding a current block based on the propagated plurality of sample values.

[0112] As a further example, in one example "decoding" refers only to entropy decoding, in another example "decoding" refers only to differential decoding, and in yet another example "decoding" refers to a combination of entropy decoding and differential decoding. Whether the phrase "decoding process" is intended to refer to a subset of operations or the decoding process in a broad sense will become clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0113] Multiple implementations involve encoding. Similar to the above discussion regarding "decoding", "encoding" as used in this application can cover, for example, all or part of the process performed on an input video sequence to produce an encoded bitstream. In multiple examples, such processes include one or more processes typically performed by an encoder, such as partitioning, differential encoding, transformation, quantization, and entropy encoding. In multiple examples, such processes may also or alternatively include processes performed by the encoder in the multiple implementations described in this application, such as identifying a reference picture, where the reference picture includes a first region and a second region divided by a boundary; propagating a plurality of sample values from the second region to the first region; and encoding a current block based on the propagated plurality of sample values.

[0114] As a further example, in one example "encoding" refers only to entropy encoding, in another example "encoding" refers only to differential encoding, and in yet another example "encoding" refers to a combination of differential encoding and entropy encoding. Whether the phrase "encoding process" is intended to refer to a subset of operations or the encoding process in a broad sense will become clear based on the context of the specific description and is believed to be well understood by those skilled in the art.

[0115] Note that the syntax elements used herein (such as the coding syntax for template matching prediction) are descriptive terms, which include but are not limited to ph_virtual_boundaries_present_flag, ph_num_ver_virtual_boundaries, ph_virtual_boundary_pos_x_minus1, ph_enable_oob_left_vb, ph_enable_oob_right_vb, ph_num_hor_virtual_boundaries, ph_virtual_boundary_pos_y_minus1, ph_left_vb_is_pic_boundary_for_pred, and ph_left_vb_is_pic_boundary_for_pred. Thus, they do not exclude the use of other syntax element names.

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

[0117] The implementations and aspects described herein can be implemented as, for example, a method or process, an apparatus, a software program, a data stream, or a signal. Even if discussed only in the context of a single implementation form (e.g., only as a method), the implementation of the discussed features can be implemented in other forms (e.g., an apparatus or a program). An apparatus can be implemented, for example, as appropriate hardware, software, and firmware. A method can be implemented, for example, in a processor, which refers to a general processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes communication devices, such as a computer, a mobile phone, a portable / personal digital assistant (“PDA”), and other devices that facilitate information communication among end users.

[0118] Reference to “an example” or “examples” or “an implementation” or “implementations” and other variants thereof means that the specific features, structures, characteristics, etc. described in connection with the examples are included in at least one example. Thus, the phrases “in an example” or “in examples” or “in an implementation” or “in implementations” and any other variants thereof that appear in multiple places in this application do not necessarily all refer to the same example.

[0119] In addition, this application may be related to “determining” various information. Determining information can include, for example, one or more of estimating information, calculating information, predicting information, or retrieving information from a memory. Obtaining can include receiving, retrieving, constructing, generating, and / or determining.

[0120] In addition, this application may be related to “accessing” various information. Accessing information can 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.

[0121] In addition, this application may be related to “receiving” various information. Like “accessing”, “receiving” is intended to be a broad term. Receiving information can include, for example, accessing information or retrieving information (e.g., from a memory). In addition, “receiving” generally involves operations such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information in some way.

[0122] It should be understood that the use of any of the following, namely, “ / ”, “and / or”, and “at least one”, for example, in the cases of “A / B”, “A and / or B”, and “at least one of A and B”, is intended to cover the selection of only the first-listed option (A), or only the second-listed option (B), or the selection of both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C”, such wording is intended to cover the selection of only the first-listed option (A), or only the second-listed option (B), or only the third-listed option (C), or the selection of the first and second-listed options (A and B), or the selection of the first and third-listed options (A and C), or the selection of the second and third-listed options (B and C), or the selection of all three options (A and B and C). As will be clear to those of ordinary skill in the art, this can be extended to as many items as are listed.

[0123] In addition, as used herein, the term “signal” (signaling) refers, among other things, to indicating something to the corresponding decoder. For example, in some embodiments, the encoder signals which neighboring region is selected. Thus, in an embodiment, the same parameters are used on the encoder side and the decoder side. Therefore, for example, the encoder can transmit (explicitly signal) a specific parameter to the decoder so that the decoder can use the same specific parameter. Conversely, if the decoder already has a specific parameter as well as other parameters, signaling (implicit signaling) can be performed without transmission to simply allow the decoder to know and select the specific parameter. By avoiding the transmission of any actual functionality, bit savings are achieved in a variety of embodiments. It should be understood that signaling can be done in a variety of ways. For example, in various embodiments, one or more syntax elements, flags, etc. are used to signal information to the corresponding decoder. Although the foregoing relates to the verb form of the word “signal” (signaling), the word “signal” can (e.g., also) be used as a noun herein.

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

[0125] This document describes many examples. The features of the examples can be provided individually or in any combination across multiple claim categories and types. Additionally, the examples can include one or more features, devices, or aspects described herein individually or in any combination across various claim categories and types. For example, the features described herein can be implemented in a bitstream or signal that includes information generated as described herein. The information can allow a decoder to decode the bitstream, an encoder, the bitstream, and / or the decoder according to any of the described embodiments. For example, the features described herein can be implemented by creating and / or sending and / or receiving and / or decoding a bitstream or signal. For example, the features described herein can be implemented as a method, process, apparatus, medium storing instructions, medium storing data, or signal. For example, the features described herein can be implemented by a decoding television, set-top box, mobile phone, tablet, or other electronic device. The television, set-top box, mobile phone, tablet, or other electronic device can display (e.g., using a monitor, screen, or other type of display) the resulting image (e.g., an image reconstructed from residuals of a video bitstream). The television, set-top box, mobile phone, tablet, or other electronic device can receive a signal including an encoded image and perform decoding.

[0126] These examples can be executed by a device having at least one processor. The device can be an encoder or a decoder. These examples can be executed by a computer program product stored on a non-transitory computer-readable medium and including program code instructions. These examples can be executed by a computer program including program code instructions. These examples can be executed by a bitstream including information representing a template matching prediction pattern.

[0127] Figure 5 An example representing the concept of an encoding tree for a compressed picture is shown. Motion-compensated temporal prediction can be employed to take full advantage of the redundancy present between consecutive pictures of a video. Motion vectors can be associated with prediction units (PUs) (e.g., each motion vector can be associated with each prediction unit). An encoding tree unit (CTU) (e.g., each CTU) can be represented by an encoding tree in the compressed domain. The encoding tree can be a quadtree partitioning of the CTU, as Figure 5 shown. The leaf nodes of the encoding tree (e.g., each leaf node) can be referred to as coding units (CUs).

[0128] Figure 6 An example of partitioning an encoding tree unit into CUs, PUs, and transform units is shown. Intra or inter prediction parameters (e.g., prediction information) can be assigned to a CU (e.g., each CU). A CU (e.g., each CU) can be spatially partitioned into one or more PUs. Some prediction information can be assigned to the one or more PUs (e.g., each PU). An intra or inter coding mode can be assigned at the CU level, as Figure 6As shown. A motion vector may be assigned to a PU (e.g., one motion vector may be assigned to each PU). The motion vector may be used for motion compensated temporal prediction of the considered PU. In an example, a CU may not be divided into PUs or TUs, and some motion data may be assigned to each CU (e.g., directly). In an example, a CU may be divided into sub-CUs, and motion vectors may be calculated for the sub-CUs (e.g., one motion vector is calculated for each sub-CU).

[0129] Figure 7 An example of a progressive decoding refresh (GDR) refresh concept is shown. The GDR method (e.g., in a low-latency context) can smooth the bit rate by spreading the encoding of a picture (e.g., an intra-frame picture) over frames (e.g., several frames), while enabling robust decoding by inserting resynchronization frames along the sequence. GDR can progressively refresh a picture by spreading the coded (e.g., intra-frame coded) region over a picture (e.g., several pictures), and this process can be defined as a GDR period, such as Figure 7 shown. Figure 7 The concept of vertical GDR is illustrated, where a GDR picture with forced intra regions starts at POC(n), and then the clean regions with forced intra coding are gradually spread over N pictures from left to right. At POC(n+N-1), the picture can be fully refreshed (e.g., intra refresh).

[0130] A GDR picture may include a first region (e.g., a dirty region) and a second region (e.g., a clean region). A clean region may refer to a region that may be referenced by future frames. A dirty region may refer to a region that may not be referenced by future frames for robustness purposes. Restrictions on which regions cannot be used as references may be implemented at the encoder (e.g., only at the encoder) so that the decoder may not need to perform this check. An example of robustness may be packet loss, where some packets of a frame may be lost.

[0131] POC(n+N-1) can be called a recovery point, and the picture at the recovery point POC(n+N-1) can be called a recovery point picture. The picture between the GDR picture POC(n) and the recovery point picture POC(n+N-1) can be called a recovery picture of the GDR picture POC(n).

[0132] In an example, the GDR can use at least one boundary within a picture (e.g., a frame) to separate a clean region from a dirty region. The dirty region can be on a first side of the at least one boundary, while the clean region can be on a second side of the at least one boundary. The at least one boundary can be at least one virtual boundary to allow for a finer granularity of progressive refresh (e.g., intra-frame refresh). In an example, the current frame can include slices divided by the at least one boundary within the current frame. In an example, the current frame can include tiles divided by the at least one boundary within the current frame.

[0133] The GDR concept can be included as a recovery point SEI message. GDR NAL units and GDR-related syntax that support effective functions allowing for a finer granularity of progressive intra-frame refresh by using at least one virtual boundary can be included.

[0134] Figure 8 An example of a reference picture used by blocks within the dirty region is shown. As Figure 8 shown, blocks of a picture (e.g., the current picture) can be allowed to use reconstructed pixels (e.g., samples) and coding information within the entire current picture and reference picture (e.g., within the clean and dirty regions of the current picture and reference picture).

[0135] Figure 9 An example of a reference picture used by blocks within the clean region is shown. As Figure 9 shown, for blocks in the clean region of a picture (e.g., the current picture), the reconstructed pixels (e.g., samples) in the dirty regions of the current picture and reference picture are considered "unavailable". In an example, the reconstructed pixels (e.g., samples) in the dirty region can be set to 2^(BD - 1), where BD is the bit depth. This can provide more freedom for prediction of blocks in the clean region of the current picture to use the coding information within the current picture and reference picture, because more reconstructed pixels (e.g., samples) can be considered "available" if a well-defined value (e.g., 2^(BD - 1)) is assigned to resist packet loss. For blocks in the clean region of the current picture, the coding information in the dirty regions of the current picture and reference picture can be considered "unavailable". This can prevent blocks in the clean region of the current picture from using the coding information in the dirty regions of the current picture and reference picture.

[0136] Figures 10 to 11 An example of motion-compensated boundary filling is shown. As Figure 10 shown, for motion-compensated picture boundary filling, samples outside the picture boundary can be derived by motion compensation (e.g., in addition to using repeated filling). As Figure 11As shown, the motion vectors of the 4×4 boundary blocks can be used to derive the M×4 or 4×M padding blocks. The value M can be derived as the distance from the reference block to the picture boundary (e.g., as shown in Figure 11 ). M can be set to be at least equal to 4 (e.g., once the motion vector points to a position within the reference picture boundary). If the boundary block is intra-coded, the motion vector may not be available (e.g., M can be set to 0). If M is less than 64, the remaining part of the padding area can be filled with repeated padding samples.

[0137] Figures 12 to 13 An example of motion compensation is shown. In Figures 12 to 13 , reference samples can be padded around the reference picture. The reference block may be partially out-of-bounds (OOB) in the reference picture of list 0, while the reference block may be completely inside in the reference picture of list 1. In the example shown in Figure 12 , bidirectional motion compensation (e.g., only bidirectional motion compensation) can be performed to generate the inter-prediction of the current block. In the example shown in Figure 13 , the OOB prediction values can be discarded, and the non-OOB prediction values (e.g., only non-OOB prediction values) can be used to generate the final prediction value. Bidirectional prediction can be used for the first non-OOB part of the current block (e.g., the first part of the current block corresponding to the non-OOB parts of the reference blocks in the reference pictures of list 0 and list 1). Unidirectional prediction can be used for the second OOB part of the current block (e.g., the second part of the current block corresponding to the OOB part of the reference block in the reference picture of list 0 and the non-OOB part of the reference block in the reference picture of list 1).

[0138] The video decoder or video encoder can pad the reference picture at the boundary (e.g., virtual boundary).

[0139] Figure 14An example of filling the entire first region (e.g., a dirty region) with a reference picture used by a second region (e.g., a clean region) is shown. A video decoder or a video encoder can identify the reference picture. The reference picture can include a first region (e.g., a dirty region) and a second region (e.g., a clean region) divided by a boundary (e.g., a virtual boundary). A plurality of sample values can be propagated (e.g., horizontally propagated) from the clean region to the dirty region (e.g., the entire dirty region). In some examples, the sample values at the virtual boundary can be used to repeatedly fill the samples in the dirty region. The video decoder can decode the current block based on the propagated plurality of sample values, or the video encoder can encode the current block based on the propagated plurality of sample values. In an example, the reference picture with the propagated sample values can be stored in a buffer. The current block can be predicted based on the reference picture with the propagated sample values stored in the buffer. In an example, the decoder can obtain an indication that the sample values propagated from the clean region to the dirty region can be used for decoding. Based on this indication, the current block can be decoded based on the propagated samples.

[0140] Figure 15 An example of filling a part of the first region (e.g., a dirty region) of a reference picture with samples in a second region (e.g., a clean region) is shown. A plurality of sample values can be propagated (e.g., horizontally propagated) from the clean region to a subset of the dirty region. The filled subset of the dirty region can be 32 pixels. The samples associated with the blocks within the dirty region of the reference picture used by the clean region can be set to a fixed value of 2^(BD - 1). The samples used by the clean region can not use any coding information in the dirty region of the reference picture. The samples from the clean region can be horizontally propagated into the dirty region. In an example, the video decoder or the video encoder can determine that the sample position is within the subset of the dirty region. Based on the sample position being within the subset of the dirty region, the sample position can be filled with the sample values propagated from the clean region. In an example, the video decoder or the video encoder can determine that the sample position is outside the subset of the dirty region. Based on the sample position being outside the subset of the dirty region, the sample position can not be filled with the sample values propagated from the clean region.

[0141] Figure 16An example of a reference picture area using motion compensated boundary filling is shown. A video decoder or a video encoder may obtain a reference block in a first area (e.g., a contaminated area) of a reference picture (e.g., a first reference picture). A motion compensated block associated with the reference block may be identified. The motion compensated block may be identified based on motion information of adjacent blocks in a clean area. The video decoder or the video encoder may fill the reference block with sample values of the motion compensated block. A second reference picture (e.g., a reference picture of the first reference picture) may be identified. The second reference picture may include a first area (e.g., a contaminated area) and a second area (e.g., a clean area) divided by a boundary (e.g., a virtual boundary). The video decoder or the video encoder may determine that the sample values of the motion compensated block are within the clean area of the second reference picture. Based on the sample values of the motion compensated block being within the clean area, the sample values of the motion compensated block may be used to fill the contaminated area of the first reference picture. In an example, the sample values of the motion compensated block may be considered to be within the clean area if (e.g., only if) a subset of the sample values is within the clean area. In an example, the sample values of the motion compensated block may be considered to be within the clean area if (e.g., only if) all of the sample values are within the clean area.

[0142] As Figure 16 shown, motion compensated boundary filling may be performed on the right side of a boundary (e.g., a virtual boundary), although motion compensated boundary filling may be performed on the left side, top, or bottom of the boundary. The reference picture used for motion compensated boundary filling may be the same reference picture used by a clean coding unit. This may allow prediction to be effective because it uses (e.g., only uses) valid information, which may maximize the information propagated from the clean area to the contaminated area. Motion compensated boundary filling may be combined with Figure 10 the repeated filling samples described in

[0143] Figure 17 An example of an OOB prediction process at a virtual boundary is shown. In an example, the OOB prediction process may be signaled as follows:

[0144]

[0145] The OOB process may be applied at the virtual boundary of a reference picture used by a clean area. In an example, an entire motion compensated block (e.g., a reference block) may be within the clean area of the reference picture. In an example, a portion of the motion compensated block may be within the clean area of the reference picture. The motion compensated block may be associated with a block (e.g., a current block). The reference picture may include a plurality of areas divided by a virtual boundary.

[0146] In an example, the plurality of regions may include a first region and a second region. The first region and the second region may be divided by a virtual boundary. A first portion of the motion compensation block may be in the first region, and a second portion of the motion compensation block may be in the second region. The first region may be non - OOB (e.g., within a clean region of a reference picture). The second region may be OOB (e.g., outside a clean region of a reference picture). Based on the first portion of the motion compensation block being within the first region, the encoder may determine whether to use an OOB process for the first portion of the motion compensation block. Based on the second portion of the motion compensation block being within the second region, the encoder may determine whether to use an OOB process for the second portion of the motion compensation block.

[0147] Based on the determination of whether to use an OOB process for the first portion of the motion compensation block (e.g., based on the GDR refresh direction, such as from left to right), the encoder may signal a first out - of - bounds indication based on the determination of whether to use an OOB process for the first portion of the motion compensation block. In an example, the first out - of - bounds indication may be for the left side of the boundary (e.g., the virtual boundary). The first out - of - bounds indication may be a left - side out - of - bounds indication (e.g., ph_enable_oob_left_vb). The left - side out - of - bounds indication may indicate whether an OOB process is applied if the prediction crosses the left side of the virtual boundary.

[0148] Based on the determination of whether to use an OOB process for the second portion of the motion compensation block (e.g., based on the GDR refresh direction, such as from right to left), the encoder may signal a second out - of - bounds indication based on the determination of whether to use an OOB process for the second portion of the motion compensation block. In an example, the second out - of - bounds indication may be for the right side of the boundary (e.g., the virtual boundary). The second out - of - bounds indication may be a right - side out - of - bounds indication (e.g., ph_enable_oob_right_vb). The right - side out - of - bounds indication may indicate whether an OOB process is applied if the prediction crosses the right side of the virtual boundary.

[0149] The decoder may obtain a first or left - side OOB indication (e.g., ph_enable_oob_left_vb). The first or left - side OOB indication may be configured to indicate whether to use an OOB process for the first portion of the motion compensation block. Based on the first or left - side OOB indication indicating whether to use an OOB process for the first portion of the motion compensation block, the decoder may determine whether to use an OOB process for the first portion of the motion compensation block.

[0150] The decoder can obtain a second or right OOB indication (e.g., ph_enable_oob_right_vb). The second or right OOB indication can be configured to indicate whether to use the OOB process for the second part of the motion compensation block. Based on the second or right OOB indication indicating whether to use the OOB process for the second part of the motion compensation block, the decoder can determine whether to use the OOB process for the second part of the motion compensation block.

[0151] In an example, the first region can define a clean region and the second region can define a dirty region. Based on the first part of the motion compensation block being within the clean region, the encoder can determine not to use the OOB process for the first part of the motion compensation block. Based on the second part of the motion compensation block being within the dirty region, the encoder can determine to use the OOB process for the second part of the motion compensation block.

[0152] Based on determining not to use the OOB process for the first part of the motion compensation block, the encoder can signal a first or left OOB indication (e.g., ph_enable_oob_left_vb) to disable the OOB process for the first part of the motion compensation block. Based on determining to use the OOB process for the second part of the motion compensation block, the encoder can signal a second or right OOB indication (e.g., ph_enable_oob_right_vb) to enable the OOB process for the second part of the motion compensation block.

[0153] The decoder can obtain a first or left OOB indication (e.g., ph_enable_oob_left_vb) indicating to disable the OOB process for the first part of the motion compensation block. Based on the first or left OOB indication indicating to disable the OOB process for the first part of the motion compensation block, the decoder can determine not to use the OOB process for the first part of the motion compensation block. Based on the first part of the motion compensation block not using the OOB process, the decoder can apply a bidirectional prediction process to the first part of the motion compensation block.

[0154] The decoder can obtain a second or right OOB indication (e.g., ph_enable_oob_right_vb) indicating to enable the OOB process for the second part of the motion compensation block. Based on the second indication indicating to enable the OOB process for the second part of the motion compensation block, the decoder can determine to use the OOB process for the second part of the motion compensation block. Based on the second part of the motion compensation block using the OOB process, the decoder can apply a unidirectional prediction process to the second part of the motion compensation block.

[0155] In an example, an indication may be sent for a virtual boundary (e.g., each virtual boundary). The indication may be for a vertical virtual boundary or a horizontal virtual boundary.

[0156] In an example, the indication may be applied to the entire prediction process. The indication may be signaled as a left virtual boundary prediction indication (e.g., ph_left_vb_is_pic_boundary_for_pred) and a right virtual boundary prediction indication (e.g., ph_right_vb_is_pic_boundary_for_pred). The left virtual boundary prediction indication may indicate whether the prediction process of the blocks to the left of the virtual boundary is changed (e.g., whether padding is applied and / or whether an OOB process is applied). The right virtual boundary prediction indication may indicate whether the prediction process of the blocks to the right of the virtual boundary is changed (e.g., whether padding is applied and / or whether an OOB process is applied).

[0157] In an example, if the left virtual boundary prediction indication (e.g., ph_left_vb_is_pic_boundary_for_pred) indicates that the prediction process of the blocks to the left of the virtual boundary is not changed (e.g., ph_left_vb_is_pic_boundary_for_pred is false), the prediction process of the blocks to the left of the virtual boundary may remain unchanged. Thus, padding may not be applied for motion compensation prediction, and the OOB process may not be applicable for prediction using the reconstructed samples to the right of the virtual boundary in a reference picture (e.g., a dirty region).

[0158] In an example, if the left virtual boundary prediction indication (e.g., ph_left_vb_is_pic_boundary_for_pred) indicates that the prediction process of the blocks to the left of the virtual boundary is changed (e.g., ph_left_vb_is_pic_boundary_for_pred is true), the prediction process of the blocks to the left of the virtual boundary may be changed. Thus, padding may be applied for motion compensation prediction, and the OOB process may be applicable for prediction using the reconstructed samples to the right of the virtual boundary in a reference picture (e.g., a dirty region).

[0159] Although the features and elements have been described above in particular combinations, one of ordinary skill in the art will understand that each feature or element can be used alone or in any combination with other features and elements. Additionally, the methods described herein can be implemented in a computer program, software, or firmware that is included in a computer-readable medium for execution by a computer or processor. Examples of computer-readable media include electronic signals (transmitted via wired or wireless connections) and computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor storage devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks and digital versatile disks (DVDs). Processors associated with software can implement radio frequency transceivers for use in a WTRU, UE, terminal, base station, RNC, or any host computer.

Claims

1. An apparatus for video decoding, comprising a processor configured to: Identify a reference picture, the reference picture including a first region and a second region divided by a boundary; Propagate a plurality of sample values from the second region to the first region; and Decode a current block based on the propagated plurality of sample values.

2. The apparatus according to claim 1, wherein the propagated plurality of sample values are propagated from the second region to a subset of the first region.

3. The apparatus according to claim 2, wherein the processor is further configured to: Determine that a sample position is within the subset of the first region; and Based on the sample position being within the subset of the first region, fill the sample position with the sample values propagated from the second region.

4. The apparatus according to any one of claims 1 to 3, wherein the processor is further configured to: Obtain a reference block in the first region of the reference picture; Identify a motion compensation block associated with the reference block; and Fill the reference block with the sample values of the motion compensation block.

5. The apparatus according to claim 4, wherein the reference picture is a first reference picture, and wherein the processor is further configured to: Identify a second reference picture, the second reference picture including a first region and a second region divided by a boundary; Determine that the sample values of the motion compensation block are within the second region of the second reference picture; and Based on the pixel values of the motion compensation block being within the second region of the second reference picture, use the sample values of the motion compensation block to fill the first region of the first reference picture.

6. The apparatus according to any one of claims 1 to 5, wherein the processor is further configured to: Store the reference picture with the propagated sample values in a buffer; and Predict the current block based on the reference picture with the propagated sample values stored in the buffer.

7. The apparatus according to any one of claims 1 to 6, wherein the processor is further configured to: Obtain an indication that the sample values propagated from the second region can be used for decoding, wherein decoding the current block based on the propagated sample values is performed based on the indication.

8. A method for video decoding, the method comprising: Identify a reference picture, the reference picture including a first region and a second region divided by a boundary; Propagate a plurality of sample values from the second region to the first region; And Decode a current block based on the propagated plurality of sample values.

9. The method according to claim 8, wherein the propagated sample values are propagated from the second region to a subset of the first region.

10. The method according to claim 9, further comprising: Determine that a sample position is within the subset of the first region; And Based on the sample position being within the subset of the first region, fill the sample position with the sample values propagated from the second region.

11. The method according to any one of claims 8 to 10, further comprising: Obtain a reference block in the first region of the reference picture; Identify a motion compensated block associated with the reference block; and Fill the reference block with sample values of the motion compensated block.

12. The method according to claim 11, wherein the reference picture is a first reference picture, further comprising: Identify a second reference picture, the second reference picture including a first region and a second region divided by a boundary; Determine that the sample values of the motion compensated block are within the second region of the second reference picture; and Based on the pixel values of the motion compensated block being within the second region of the second reference picture, fill the first region of the first reference picture with the sample values of the motion compensated block.

13. The method according to any one of claims 8 to 12, further comprising: Store the reference picture with the propagated sample values in a buffer; and Predict the current block based on the reference picture with the propagated sample values stored in the buffer.

14. The method according to any one of claims 8 to 13, further comprising: Obtain an indication that the sample values propagated from the second region to the first region can be used for decoding, wherein decoding the current block based on the propagated sample values is performed based on the indication.

15. An apparatus for video coding, comprising a processor configured to: Identify a reference picture, the reference picture including a first region and a second region divided by a boundary; Propagate a plurality of sample values from the second region to the first region; and Encode a current block based on the propagated plurality of sample values.

16. The apparatus according to claim 15, wherein the propagated plurality of sample values are propagated from the second region to a subset of the first region.

17. The apparatus according to claim 16, wherein the processor is further configured to: Determine that the sample position is within the subset of the first region; and ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Encode the current block based on a plurality of propagated sample values.

21. The method according to claim 20, wherein the propagated sample values are propagated from the second region to a subset of the first region.

22. The method according to claim 21, further comprising: Determine that the sample position is within the subset of the first region; And Based on the sample position being within the subset of the first region, fill the sample position with the sample value propagated from the second region.

23. The method according to any one of claims 20 to 22, further comprising: Obtain a reference block in the first region of the reference picture; Identify a motion compensation block associated with the reference block; And Fill the reference block with the sample values of the motion compensation block.

24. The method according to claim 23, wherein the reference picture is a first reference picture, further comprising: Identify a second reference picture, the second reference picture including a first region and a second region divided by a boundary; Determine that the sample values of the motion compensation block are within the second region of the second reference picture; And Based on the pixel values of the motion compensation block being within the second region of the second reference picture, use the sample values of the motion compensation block to fill the first region of the first reference picture.

25. 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 8 to 14 and claims 20 to 24 when executed by at least one processor.

26. A computer-readable medium comprising program code instructions for implementing the steps of the method according to at least one of claims 8 to 14 and claims 20 to 24 when executed by a processor.

27. A video data comprising information representing an encoded output generated according to the method according to any one of claims 20 to 24.