In-loop filters at virtual boundaries
By using a processor in the device to select and filter pixels in the image, and filter in-loop according to the encoding information inside and outside the virtual boundary, the problem of inability to filter in-loop within the virtual boundary in the prior art is solved, and the efficiency and image quality of video encoding are improved.
Patent Information
- Application Number
- JP2024558136
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-31
- Filing Date
- 2023-03-08
- Publication Date
- 2025-04-15
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The prior art cannot perform in-loop filtering within virtual boundaries in multi-purpose video encoding, resulting in limited encoding efficiency and image quality.
By including at least one processor and one memory in the device, the processor performs the following operations: select at least one first pixel from the first region of the image, which is separated from the second region by a virtual boundary; determine at least one second pixel for filtering the first pixel, which is located in the second region; decide whether to filter the first pixel according to the encoding information of the second pixel, the default value or the second pixel encoding information filled based on the first region encoding information, and perform corresponding filtering.
In-loop filtering within the virtual boundary is realized, the efficiency and image quality of multi-purpose video encoding are improved, especially in progressive decoding refresh and recovery images, preventing the pollution caused by incorrectly decoded encoding information on the update area.
Smart Images

Figure 2025511240000001_ABST
Abstract
Description
[Technical field]
[0001] Example and non-limiting embodiments relate generally to inputs to filters, and more particularly to in-loop filters with respect to virtual boundaries. [Background technology]
[0002] In versatile video coding, it is known not to perform in-loop filtering beyond the virtual boundary. Summary of the Invention
[0003] The following summary is intended to be exemplary only and is not intended to limit the scope of the claims.
[0004] According to one aspect, an apparatus comprises at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to cause, using the at least one processor, the apparatus to at least perform the following: selecting at least one first pixel from a first region of an image, where the first region is separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel is located in the second region; determining whether to filter the at least one first pixel; and, based on the determination of filtering the at least one first pixel, causing filtering of the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one predefined value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0005] According to one aspect, a method includes selecting at least one first pixel from a first region of an image, where the first region is separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel is located in the second region; determining whether to filter the at least one first pixel; and based on the determination to filter the at least one first pixel, filtering the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one default value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0006] According to one aspect, the apparatus comprises means for selecting at least one first pixel from a first region of an image, where the first region is separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel is located in the second region; determining whether to filter the at least one first pixel; and based on the determination of filtering the at least one first pixel, filtering the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one default value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0007] According to one aspect, a non-transitory computer-readable medium includes stored program instructions that, when executed using at least one processor, cause the at least one processor to: select at least one first pixel from a first region of an image, where the first region is separated from a different second region using a virtual boundary; determine at least one second pixel for filtering the at least one first pixel, where the at least one second pixel is located in the second region; determine whether to filter the at least one first pixel; and, based on the determination to filter the at least one first pixel, cause filtering of the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one predefined value, or a version of coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0008] The foregoing aspects and other features are explained in the following description taken in conjunction with the accompanying drawings. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a block diagram of one possible non-limiting example system in which example embodiments may be practiced. [Diagram 2] FIG. 1 is a block diagram of one possible non-limiting example system in which example embodiments may be practiced. [Diagram 3] FIG. 1 illustrates examples of features described herein. [Figure 4] FIG. 1 illustrates examples of features described herein. [Diagram 5] FIG. 1 illustrates examples of features described herein. [Figure 6] FIG. 1 illustrates examples of features described herein. [Figure 7] FIG. 1 illustrates examples of features described herein. [Figure 8] FIG. 1 illustrates examples of features described herein. [Figure 9] FIG. 1 illustrates examples of features described herein. [Figure 10] FIG. 1 illustrates examples of features described herein. [Figure 11] FIG. 1 illustrates examples of features described herein. [Figure 12] FIG. 1 illustrates examples of features described herein. [Figure 13] FIG. 1 illustrates examples of features described herein. [Figure 14] FIG. 1 illustrates examples of features described herein. [Figure 15] FIG. 1 illustrates examples of features described herein. [Figure 16] FIG. 1 illustrates examples of features described herein. [Figure 17] FIG. 1 illustrates examples of features described herein. [Figure 18] FIG. 1 illustrates examples of features described herein. [Figure 19] FIG. 1 illustrates examples of features described herein. [Figure 20] 1 is a flow chart illustrating steps described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] The following abbreviations that may appear in the specification and / or drawings are defined as follows: 4G (fourth generation) 5G (fifth generation) 5GC(5G core network) 5G core network ANN (artificial neural network) ALF (adaptive loop filter) BIF (bilateral filter) CCALF (cross-component ALF) CCSAO(cross-component SAO) Cross-component SAO CDMA (code division multiple access) CPU (central processing unit) CTU (coding tree unit) CU (coding unit) DSP (digital signal processor) ECM(enhanced compression model) eNB (or eNodeB) (evolved Node B) Evolved Node B (e.g., LTE base station) E-UTRA (evolved universal terrestrial radio access) Evolved universal terrestrial radio access, i.e. LTE radio access technology GDR (gradual decoding refresh) gNB (or gNodeB) (base station for 5G / NR) A base station for 5G / NR, i.e. a node that provides termination of NR user plane and control plane protocols towards UEs and is connected to 5GC via the NG interface. FDMA (frequency division multiple access) GPU (graphical processing unit) GSM (global systems for mobile communications) Global System for Mobile Communications HMD (head-mounted display) IEEE (Institute of Electrical and Electronics Engineers) IMD (integrated messaging device) IMS (instant messaging service) IoT (Internet of Things) JVET (joint video experts team) LTE (long term evolution) MMS(multimedia messaging service) MPEG-I (Moving Picture Experts Group immersive codec family) Moving Picture Experts Group immersive codec family MV(motion vector) ng or NG (new generation) ng-eNB or NG-eNB (new generation eNB) New generation eNB NR(new radio) New Radio PC (personal computer) PDA(personal digital assistant) QP (quarter pixel) SAO (sample adaptive offset) SMS(short messaging service) SPS (sequence parameter set) TCP-IP (transmission control protocol-internet protocol) TDMA (time division multiple access) UICC (universal integrated circuit card) UMTS (universal mobile telecommunications system) VVC(versatile video coding) Versatile video coding
[0011] In the following, suitable devices and possible mechanisms for implementing example embodiments of the present disclosure are described. Thus, reference is first made to FIG. 1, which illustrates an exemplary block diagram of a device 50. The device may be configured to perform various functions, such as, for example, collecting information by one or more sensors, encoding and / or decoding information, receiving and / or transmitting information, and analyzing information collected or received by the device. A device configured to encode a video scene may (optionally) comprise one or more sensors, such as one or more microphones for capturing the scene and / or a camera for capturing information about the physical environment in which the scene is captured. Alternatively, a device configured to encode a video scene may be configured to receive information about the environment in which the scene is captured and / or the simulated environment. A device configured to decode and / or render a video scene may be configured to receive a Moving Picture Expert Group Immersive Codec Family (MPEG-I) bitstream including the encoded video scene. A device configured to decode and / or render a video scene may include one or more speakers / audio transducers and / or a display and / or may be configured to transmit the decoded scene or signal to a device that includes one or more speakers / audio transducers and / or a display. A device configured to decode and / or render a video scene may include user equipment, a head / mounted display, or another device capable of rendering an AR, VR, and / or MR experience to a user.
[0012] The electronic device 50 may be, for example, a mobile terminal or user equipment of a wireless communication system. Alternatively, the electronic device may be a non-mobile computer or part of a computer. It should be understood that embodiments of the present invention may be implemented in any electronic device or apparatus capable of processing data. The electronic device 50 may comprise a device that can access a network and / or cloud via a wired or wireless connection. The electronic device 50 may comprise one or more processors 56, one or more memories 58, and one or more transceivers 52 interconnected via one or more buses. The one or more processors 56 may comprise a central processing unit (CPU) and / or a graphical processing unit (GPU). Each of the one or more transceivers 52 includes a receiver and a transmitter. The one or more buses may be an address bus, a data bus, or a control bus, and may include any interconnection mechanism, such as a series of wires on a motherboard or integrated circuit, optical fibers, or other optical communication equipment. The one or more transceivers may be connected to one or more antennas 44. The one or more memories 58 may include computer program code. The one or more memories 58 and computer program code may be configured, using the one or more processors 56, to cause the electronic device 50 to perform one or more of the operations described herein.
[0013] The electronic device 50 may connect to a node of a network. The network node may comprise one or more processors, one or more memories, and one or more transceivers interconnected via one or more buses. Each of the one or more transceivers includes a receiver and a transmitter. The one or more buses may be an address bus, a data bus, or a control bus, and may include any interconnection mechanism, such as a series of wires on a motherboard or integrated circuit, optical fiber, or other optical communication equipment. The one or more transceivers may be connected to one or more antennas. The one or more memories may include computer program code. The one or more memories and computer program code may be configured to cause the network node, using one or more processors, to perform one or more of the operations described herein.
[0014] The electronic device 50 may include a microphone 36 or any suitable audio input, which may be a digital or analog signal input. The electronic device 50 may further include an audio output device 38, which in embodiments of the present invention may be any one of an earphone, a speaker, or an analog or digital audio output connection. The electronic device 50 may include a battery (or in other embodiments of the present invention, the device may be powered by any suitable mobile energy device, such as a solar cell, a fuel cell, or a clockwork generator). The electronic device 50 may further include a camera 42 or other sensor capable of recording or capturing images and / or video. Additionally or alternatively, the electronic device 50 may further include a depth sensor. The electronic device 50 may further include a display 32. The electronic device 50 may further include an infrared port for short-range line-of-sight communication to other devices. In other embodiments, the device 50 may further include any suitable short-range communication solution, such as, for example, a BLUETOOTH™ wireless connection or a USB / Firewire wired connection.
[0015] It should be understood that an electronic device 50 configured to perform example embodiments of the present disclosure may include fewer and / or additional components that can accommodate the processes that the electronic device 50 is configured to perform. For example, a device configured to encode video may not include a speaker or audio transducer, but may include a microphone, while a device configured to render the decoded video may not include a microphone, but may include a speaker or an audio transducer.
[0016] 1, the electronic device 50 may comprise a controller 56, processor or processor circuitry for controlling the apparatus 50. The controller 56 may be connected to a memory 58, which in embodiments of the present invention may store both data in the form of image and audio data and / or may store instructions for execution by the controller 56. The controller 56 may further be connected to a codec circuitry 54 suitable for performing encoding and / or decoding of audio and / or video data or aiding in the encoding and / or decoding performed by the controller.
[0017] The electronic device 50 may further comprise a card reader 48 and a smart card 46, e.g., a UICC and UICC reader, suitable for providing authentication information for authentication and authorization of the user / electronic device 50 in the network, to provide user information. The electronic device 50 may further comprise an input device 34, such as a keypad, one or more input buttons, or a touch screen input device, to provide information to the controller 56.
[0018] The electronic device 50 may comprise a radio interface circuit 52 coupled to the controller and suitable for generating wireless communication signals for communication with, for example, a cellular communication network, a wireless communication system, or a wireless local area network. The device 50 may further comprise an antenna 44 coupled to the radio interface circuit 52 for transmitting radio frequency signals generated by the radio interface circuit 52 to and / or receiving radio frequency signals from other devices.
[0019] The electronic device 50 may include microphones 38, cameras 42, and / or other sensors capable of recording or detecting audio signals, image / video signals, and / or other information about the local / virtual environment, which is then passed to the codec 54 or controller 56 for processing. The electronic device 50 may receive audio / image / video signals and / or information about the local / virtual environment from another device for processing before transmission and / or storage. The electronic device 50 may receive audio / image / video signals and / or information about the local / virtual environment wirelessly or by a wired connection for encoding / decoding. The structural elements of the electronic device 50 described above represent examples of means for performing the corresponding functions.
[0020] The memory 58 may be of any type suitable for the local technology environment and may be implemented using any suitable data storage technology, such as semiconductor-based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory, and removable memory. The memory 58 may be non-transitory memory. The memory 58 may be a means for performing storage functions. The controller 56 may be or comprise one or more processors, which may be of any type suitable for the local technology environment and may include, as non-limiting examples, one or more of a general purpose computer, a special purpose computer, a microprocessor, a digital signal processor (DSP), and a processor based on a multi-core processor architecture. The controller 56 may be a means for performing functions.
[0021] An electronic device 50 may be configured to perform volumetric scene capture, according to example embodiments of the present disclosure. For example, the electronic device 50 may include a camera 42 or other sensor capable of recording or capturing images and / or video. The electronic device 50 may include one or more transceivers 52 to enable transmission of the captured content for processing by another device. Such an electronic device 50 may or may not include all of the modules shown in FIG.
[0022] The electronic device 50 may be configured to perform processing of volumetric video content according to example embodiments of the present disclosure. For example, the electronic device 50 may include a controller 56 for processing images to generate volumetric video content, a controller 56 for processing the volumetric video content to project the 3D information into 2D information, patches, and auxiliary information, and / or a codec 54 for encoding the 2D information, patches, and auxiliary information into a bitstream for transmission to another device having a wireless interface 52. Such an electronic device 50 may or may not include all of the modules shown in FIG.
[0023] The electronic device 50 may be configured to perform encoding or decoding of 2D information representing volumetric video content, according to example embodiments of the present disclosure. For example, the electronic device 50 may include a codec 54 to encode or decode the 2D information representing volumetric video content. Such an electronic device 50 may or may not include all of the modules shown in FIG.
[0024] An electronic device 50 may be configured to perform rendering of the decoded 3D volumetric video, according to example embodiments of the present disclosure. For example, the electronic device 50 may include a controller for projecting 2D information to reconstruct the 3D volumetric video and / or a display 32 for rendering the decoded 3D volumetric video. Such an electronic device 50 may or may not include all of the modules shown in FIG.
[0025] With reference to Figure 2, an example of a system in which embodiments of the present invention may be utilized is shown. The system 10 comprises a plurality of communication devices capable of communicating over one or more networks. The system 10 may comprise any combination of wired or wireless networks, including, but not limited to, wireless cellular networks (such as GSM, UMTS, E-UTRA, LTE, CDMA, 4G, 5G networks), wireless local area networks (WLANs) as defined by any of the IEEE 802.x standards, BLUETOOTH™ personal area networks, Ethernet local area networks, token ring local area networks, wide area networks, and / or the Internet.
[0026] System 10 may include both wired and wireless communication devices and / or electronic devices suitable for implementing embodiments of the present invention.
[0027] For example, the system depicted in Figure 2 shows a representation of a cellular network 11 and the Internet 28. Connections to the Internet 28 may include, but are not limited to, long-range wireless connections, short-range wireless connections, and various wired connections, including, but not limited to, telephone lines, cable lines, power lines, and similar communication paths.
[0028] Exemplary communication devices shown in system 10 may include, but are not limited to, a device 15, a combination personal digital assistant (PDA) and cell phone 14, a PDA 16, an integrated messaging device (IMD) 18, a desktop computer 20, a notebook computer 22, and a head mounted display (HMD) 17. An electronic device 50 may comprise any of these exemplary communication devices. In example embodiments of the present disclosure, two or more of these devices, or one or more of these devices, may perform the disclosed processes. These devices may connect to the Internet 28 via a wireless connection 2.
[0029] Embodiments may be implemented in set-top boxes, i.e., digital television receivers, which may or may not have display or wireless capabilities, in tablets or (laptop) personal computers (PCs) that include hardware and / or software for processing neural network data, in various operating systems, and in chipsets, processors, DSPs, and / or embedded systems that provide hardware / software based encoding. Embodiments may be implemented in mobile phones such as smartphones, tablets, personal digital assistants (PDAs) with wireless communication capabilities, portable computers with wireless communication capabilities, image capture devices such as digital cameras with wireless communication capabilities, gaming devices with wireless communication capabilities, music storage and playback appliances with wireless communication capabilities, Internet appliances that enable wireless Internet access and browsing, tablets with wireless communication capabilities, and portable units or terminals incorporating combinations of these capabilities.
[0030] Some or further devices may send and receive calls and messages and communicate with a service provider via a wireless connection 25 to a base station 24, which can be, for example, an eNB, a gNB, etc. The base station 24 may be connected to a network server 26 that enables communication between the cellular network 11 and the Internet 28. The system may include additional and different types of communication devices.
[0031] The communication devices may communicate using a variety of transmission technologies, including, but not limited to, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Transmission Control Protocol-Internet Protocol (TCP-IP), Short Messaging Service (SMS), Multimedia Messaging Service (MMS), email, Instant Messaging Service (IMS), BLUETOOTH™, IEEE 802.11, 3GPP Narrowband IoT, and any similar wireless communication technology. The communication devices involved in implementing the various embodiments of the present invention may communicate using a variety of mediums, including, but not limited to, radio, infrared, laser, cable connections, and any suitable connection.
[0032] In telecommunications and data networks, a channel may refer to either a physical channel or a logical channel. A physical channel may refer to a physical transmission medium such as a wire, while a logical channel may refer to a logical connection on a multiplexed medium that can carry multiple logical channels. A channel may be used to carry an information signal, e.g., a bitstream, which may be an MPEG-I bitstream, from one or more senders (or transmitters) to one or more receivers.
[0033] The features described herein generally relate to virtual boundaries. The concept of virtual boundaries was introduced in Versatile Video Coding (VVC) (B. Bross, J. Chen, S. Liu, YK Wang, “Versatile Video Coding”, JVET-O2001-vE, June 2020). In one example, in terms of coding dependencies, an image may be divided into different regions by / using virtual boundaries. For example, virtual boundaries may be used to define the boundaries of various faces in a 360° image in a CMP file format. In another example, a virtual boundary may be used to separate updated and non-updated areas of an image during Gradual Decoding Refresh (GDR) / Recovery (see L. Wang, S. Hong and K. Panusopone, “Gradual Decoding Refresh for VVC”, JVET-Q0527, January 2020; S. Hong, L. Wang and K. Panusopone, “GDR Software”, JVET-T0078, Oct. 2020). In another example, in Versatile Video Coding (VVC), a virtual boundary may be specified in the Sequence Parameter Set (SPS) and / or the picture header.
[0034] The features described herein may relate to in-loop filters and extended compression model (ECM) in VVC, but this is not a limitation. VVC has three in-loop filters: deblocking, sample adaptive offset (SAO), and adaptive loop filter (ALF). ECM can improve the in-loop filter using new features including bidirectional (JVET-F0034, JVET-V0094, JVET-X0067), cross-component SAO (CCSAO) (JVET-V0153), longer cross-component ALF (CCALF) (JVET-X0045), alternative band classifier for ALF (JVET-X0070), and CCSAO edge classifier (JVET-Y0106) (see for example M. Coban, F. Leannec, MG Sarwer and J. Strom, “Algorithm description of Enhanced Compression Model 3 (ECM 3)”, JVET-X2025, Jan. 2022).
[0035] In-loop filtering of a current pixel often requires the use of coding information of neighboring pixels. Thus, filtering on one side of a virtual boundary may include the use of coding information on the other side of the virtual boundary. However, in some applications, it may not be desirable for filtering to cross the virtual boundary. For example, in GDR, a GDR image / image being restored may be divided into updated and non-updated areas by a virtual boundary. Since there is no guarantee that the non-updated areas will be correctly decoded at the decoder, to prevent leakage, the updated areas cannot use any information of the non-updated areas, as shown in FIG. 3. Coding information that is not correctly decoded may contaminate the updated areas, resulting in leakage. Thus, for GDR images / images being restored, in-loop filtering cannot cross the virtual boundary from the updated areas to the non-updated areas.
[0036] 3, there is shown an updated area 310 separated from a non-updated area 330 by a virtual boundary 320. In-loop filtering of pixels of the updated area 310 based on the coding information of the non-updated area 330 may not be allowed, as indicated by arrow 340.
[0037] In other situations, it may be perfectly fine for filtering to cross virtual boundaries: for example, in the same GDR example, non-updated areas may use information from updated areas, as shown in Figure 4. Thus, for GDR images / images being restored, in-loop filtering may cross virtual boundaries from non-updated areas to updated areas.
[0038] 4, there is shown an updated area 410 separated from a non-updated area 430 by a virtual boundary 420. In-loop filtering of pixels of the non-updated area 430 based on the coding information of the updated area 410 may be permitted, as indicated by arrow 440.
[0039] In the current version of VVC, in-loop filtering may not be allowed to cross the virtual boundary. In the example embodiment of the present disclosure, the (in-loop) filtering on one side of the virtual boundary may be allowed to use the coding information (pixels, coding modes, motion vectors (MV), quarter pixels (QP), etc.) on the other side of the virtual boundary. Additionally or alternatively, in the example embodiment of the present disclosure, the (in-loop) filtering on one side of the virtual boundary may not be allowed to use the coding information (pixels, coding modes, MV, QP, etc.) on the other side of the aforementioned virtual boundary. The choice of using or not using the coding information on the other side of the virtual boundary may be default or may be signaled in the sequence header and / or image header and / or slice header. In other words, there may be a decision as to whether to perform filtering for pixels on one side based on the pixels on the other side of the virtual boundary. If it is determined to perform filtering, filtering may be performed according to the example embodiment of the present disclosure. If it is determined not to perform filtering, filtering of pixels on one side may be omitted or not performed. In example embodiments, filtering of pixels on one side of a virtual boundary based on pixels on the other side may be performed only if it is determined, based on default values / settings / configurations or received signaling, that such filtering should be performed.
[0040] In the example embodiment of the present disclosure, a filtering operation on one side of a virtual boundary cannot use coding information on the other side of the virtual boundary, and a filtering operation on the other side of the virtual boundary cannot use coding information on said one side of the virtual boundary. In this situation, filtering cannot cross the virtual boundary from either one side or the other. In other words, there is no option to use coding information on the other side of the virtual boundary for the filtering operation.
[0041] In an example embodiment of the present disclosure, a filtering operation on one side of a virtual boundary cannot use coding information on the other side of said virtual boundary, but a filtering operation on the other side of the virtual boundary is allowed to use coding information on one side of the virtual boundary. In this situation, filtering cannot cross said virtual boundary from said one side, but can cross it from said other side. In other words, only one-way use of coding information in a first direction can be allowed.
[0042] In an example embodiment of the present disclosure, a filtering operation on one side of a virtual boundary may be allowed to use coding information on the other side of said virtual boundary, but a filtering operation on the other side of said virtual boundary cannot use coding information on one side of said virtual boundary. In this situation, filtering can cross said virtual boundary from one side, but not from the other side. In other words, only one-way use of coding information in the second direction can be allowed.
[0043] In an example embodiment of the present disclosure, a filtering operation on one side of a virtual boundary may be allowed to use coding information on the other side of the virtual boundary, but a filtering operation on the other side of the virtual boundary may also be allowed to use coding information on one side of the virtual boundary. In this situation, filtering can cross the virtual boundary from one side and can also cross it from the other side. In other words, bidirectional use of coding information in both a first direction and a second direction can be enabled.
[0044] In an example embodiment, (in-loop) filtering for pixels on one side of a virtual boundary may require coding information on the other side of the virtual boundary. If coding information on said other side of the virtual boundary is not allowed to be used for pixels on one side of the virtual boundary, an implementation / option may be to disable filtering for pixels on said one side of the virtual boundary. As an alternative, an option is to still perform filtering for pixels on one side of the virtual boundary, but the coding information on the other side of the virtual boundary is replaced with (filled or derived) coding information from one side of the virtual boundary or with coding information set to a default value. In other words, filtering may still be performed without using coding information on the other side of the virtual boundary, but instead using some other alternative coding information. The alternative coding information may be at least partially different from the coding information on the other side of the virtual boundary.
[0045] In an example embodiment, deblocking filtering may be applied to a block (horizontal or vertical) boundary, including the four pixels (horizontal or vertical) on each side of the block boundary, and other coding information sourced from both sides of the virtual boundary. In an example embodiment, the block boundary may be assumed to be aligned with the virtual boundary.
[0046] If one side of the virtual boundary is not allowed to use the coding information on the other side of the virtual boundary, deblocking filtering may not be applied within the four pixels on one side adjacent to the virtual boundary. As shown in the example of FIG. 5, the updated area of the GDR image / image being restored may not be allowed to use the coding information of the non-updated area. Deblocking filtering may be disabled for the four pixels in the updated area adjacent to the virtual boundary. Alternatively, deblocking filtering may still be applied within the four pixels on one side adjacent to the virtual boundary, but the coding information on the other side is replaced with the coding information from the one side or with a default value. For example, the four pixels on the other side may be filled from the one side (i.e., replaced with at least one of the four pixels on the one side). As shown in the example of FIG. 5, deblocking filtering may still be applied to the four pixels in the updated area adjacent to the virtual boundary, but the four pixels on the non-updated area are filled with the coding information from the updated area.
[0047] 5, an example is shown in which deblocking filtering may not be applied to the set of pixels 505 of the updated area 510, or may still be performed using the (filled) set of pixels 535 of the non-updated area 530. The updated area 510 and the non-updated area 530 may be separated by a virtual boundary 520. While FIG. 5 shows an example in which the set of pixels 505 of the updated area 510 includes four pixels and the set of pixels 535 of the non-updated area 530 includes four pixels, it should be noted that this is non-limiting and each set of pixels may include more or fewer pixels and the number of pixels in each set need not be equal.
[0048] In an example embodiment, a sample adaptive offset (SAO) edge filter may be utilized. In VVC, SAO includes two parts: band offset and edge offset. Each coding tree unit (CTU) can choose to use either band offset or edge offset. The selection of band offset or edge offset for each CTU may be signaled. If edge offset is used in a CTU, a set of parameters (edge class as shown in FIG. 6 and / or offsets for four edge categories as shown in FIG. 7) may be signaled.
[0049] 6, examples of four edge classes are shown: in example 610, pixels a and b are horizontally adjacent to pixel c; in example 620, pixels a and b are vertically adjacent to pixel c; in example 630, pixels a and b are adjacent to pixel c along a gradient from upper left to lower right; and in example 640, pixels a and b are adjacent to pixel c along a gradient from lower left to upper right.
[0050] Referring now to FIG. 7, four example edge categories are shown. In category 1, 710, the value of pixel c is less than the values of pixels a and b. In category 2, 720, the values of pixels c and b may be similar while the value of pixel a may be greater than the values of pixels c and b. Alternatively, the values of pixels a and c may be similar while the value of pixel b may be greater than the values of pixels a and c. In category 3, 730, the values of pixels a and c may be similar while the value of pixel b may be less than the values of pixels a and c. Alternatively, the values of pixels c and b may be similar while the value of pixel a may be less than the values of pixels c and b. In category 4, 740, the value of pixel c may be greater than the values of pixels a and b.
[0051] As can be seen from Figures 6 and 7, classifying the edge of a pixel may require the use of neighboring pixels.
[0052] In an example embodiment, if one side of a virtual boundary is not permitted to use the coding information on the other side of the virtual boundary, the SAO edge offset may be skipped for pixels on one side adjacent to the virtual boundary. As shown in the example of FIG. 8, an updated area 810 of a GDR image / image being restored may not be permitted to use the coding information of a non-updated area 830. The SAO edge offset may be disabled for pixels 850 in the updated area 830, which may be immediately adjacent to the virtual boundary 820.
[0053] Alternatively, the SAO edge offset may still be applied to the pixels (850) on said one side, but the coding information on the other side is replaced from said one side or set to a default value. For example, the pixels (860) on the other side may be filled in from said one side. As shown in the example of FIG. 8, the SAO edge offset may still be applied to the pixels 850 in the updated area 810 adjacent to the virtual boundary 820, but three pixels 860 on the non-updated area 830 are filled in from the updated area 810 (or set to a default value, e.g., 2 BD-1 , where BD is the bit depth).
[0054] 8, there is shown an updated area 810 separated from an unupdated area 830 by a virtual boundary 820. Five pixels 840 within the updated area 810 may surround a pixel 850 within the updated area 810. SAO edge offset may not be applied to pixel 850 or may be performed with three pixels 860 within the unupdated area 830 being filled in. It should be noted that the number of pixels in each of 840, 850, and 860 is non-limiting and each set may include a different number of pixels than the number of pixels shown in FIG.
[0055] In an example embodiment, an ALF filter may be applied. In VVC, the ALF filter includes a 7×7 diamond-shaped filter. FIG. 9 shows an example of an ALF filter for a pixel 950 adjacent to a virtual boundary 920. If one side of the virtual boundary is not allowed to use the coding information on the other side of the virtual boundary, ALF filtering may be disabled within three pixels on one side adjacent to the virtual boundary. As shown in the example of FIG. 9, an updated area 910 of the GDR image / image being restored may not be allowed to use the coding information of the non-updated area 930. ALF may not be performed on a pixel 950 in the updated area 910 that is immediately adjacent to the virtual boundary 920. Alternatively, ALF may still be applied within a pixel 940 on one side 910 adjacent to the virtual boundary 920, but the coding information on said other side 930 is replaced from the one side 910 or set to a default value. For example, a pixel 960 on the other side 930 may be filled from the one side 910. As shown in the example of FIG. 9, ALF may still be performed on pixels 950 in the updated area 910 adjacent to the virtual boundary 920, but pixels 960 on the non-updated area 930 are filled in from the updated area 910 (or a default value, e.g., 2 BD-1 , where BD is the bit depth).
[0056] 9, an updated area 910 is shown separated from an unupdated area 930 using a virtual boundary 920. Fifteen pixels 940 may surround one pixel 950 in the updated area 910 adjacent to the virtual boundary 920. The ALF may not be applied to the one pixel 950, or may still be performed with nine pixels 960 of the unupdated area 930 filled in (e.g., based on pixel 940). It should be noted that the number of pixels in each of 940, 950, and 960 is non-limiting, and each set may include a different number of pixels than the number of pixels shown in FIG.
[0057] In an example embodiment, a bilateral filter (BIF) for luma may be applied. ECM improves the function of the in-loop filter of VVC, among which is the bilateral filter. The bilateral filter may be implemented in the sample adaptive offset (SAO) loop filter stage, as shown in FIG. 10. Both the bilateral filter (BIF) and the SAO can use samples from deblocking as input. Before going to the ALF, each filter creates an offset for each sample, and these offsets may be added to the input samples and then clipped.
[0058] Now referring to FIG. 10, there is shown an example of samples 1010 from deblocking used by the BIF 1020 and SAO 1030, and offsets from the BIF 1020 and SAO 1030 being added (1040) to the deblocking output 1050 (these offsets may be clipped (1045)).
[0059] The bilateral filter may include a 5×5 diamond-shaped filter as shown in FIG. 11, where the bilateral filter may or may not be applied to pixels 1150 adjacent to the virtual boundary 1120. Referring now to FIG. 11, an example of an updated area 1110 separated from an unupdated area 1130 by a virtual boundary 1120 is shown. Eight pixels 1140 surround pixel 1150 in the updated area 1110 adjacent to the virtual boundary. BIF may not be applied to pixel 1150, or may still be performed with four pixels 1160 in the unupdated area 1130 filled in or set to a default value. It should be noted that the number of pixels in each of 1140, 1150, and 1160 is non-limiting, and each set may include a different number of pixels than the number of pixels shown in FIG. 11.
[0060] In an example embodiment, if one side 1110 of the virtual boundary 1120 is not allowed to use the coding information on the other side 1130 of the virtual boundary 1120, bidirectional filtering may be disabled within two pixels on one side 1110 adjacent to the virtual boundary 1120. As shown in the example of FIG. 11, the updated area 1110 of the GDR image / image being restored may not be allowed to use the coding information of the non-updated area 1130. Bidirectional filtering may not be performed on a pixel 1150 in the updated area 1110 that is immediately next to the virtual boundary 1120. Alternatively, bidirectional filtering may still be performed within the aforementioned two pixels on one side 1110 adjacent to the virtual boundary 1120, but the coding information on the other side 1130 is replaced from the one side 1110 or set to a default value. For example, pixel 1160 on the other side 1130 may be filled in from the one side 1110. As shown in the example of FIG. 11, bilateral filtering may still be applied to pixels 1150 in the updated area 1110 adjacent to the virtual boundary 1120, while pixels 1160 on the non-updated area 1130 are filled in from the updated area 1110 (or filtered using a default value, e.g., 2 BD-1 , where BD is the bit depth).
[0061] In an example embodiment, a bilateral filter for chroma (BIF-chroma) may be applied. Similar to BIF-luma, BIF-chroma may be run in parallel with the SAO and CCSAO processes as shown in FIG. 12. BIF-chroma (1220), SAO (1230), and CCSAO (1240) may use the same chroma samples generated by the deblocking filter (1210) as input and generate three offsets (per chroma sample) in parallel. These three offsets may then be added to the input chroma sample (1250) to obtain a sum, which may then be clipped to form the final output chroma sample value (1260). BIF-chroma may provide an on / off control mechanism at the CTU level and slice level.
[0062] The filtering process of BIF chroma may be similar to that of BIF luma. For chroma samples, a 5×5 diamond filter may be used to generate the filtering offsets, as shown in FIG. 13, and BIF chroma may or may not be applied to pixels 1350 adjacent to the virtual boundary 1320. Referring now to FIG. 13, an example of an updated area 1310 separated from an unupdated area 1330 by a virtual boundary 1320 is shown. Eight pixels 1340 surround pixel 1350 in the updated area 1310 adjacent to the virtual boundary 1320. BIF chroma may not be applied to pixel 1350, or may still be performed with four pixels 1360 in the unupdated area 1130 filled in or set to a default value. It should be noted that the number of pixels in each of 1340, 1350, and 1360 is non-limiting, and each set may include a different number of pixels than the number of pixels shown in FIG. 13.
[0063] In an example embodiment, if one side 1310 of the virtual boundary 1320 may not be allowed to use the coding information on the other side 1330 of the virtual boundary 1320, BIF saturation may be disabled in two pixels on one side 1310 adjacent to the virtual boundary 1320. As shown in the example of FIG. 13, the updated area 1310 of the GDR image / image being restored may not be allowed to use the coding information of the non-updated area 1330. BIF saturation may be skipped for pixel 1350 in the updated area 1310 that is immediately next to the virtual boundary 1320. Alternatively, BIF saturation may still be applied in two pixels on one side 1310 adjacent to the virtual boundary 1320, but the coding information on the other side 1330 is replaced from the one side 1310 or set to a default value. For example, pixel 1360 on the other side 1330 may be filled in from the one side 1310. As shown in the example of FIG. 13, BIF saturation may still be applied to pixels 1350 in the updated area 1310 adjacent to the virtual boundary 1320, but pixels 1360 on the non-updated area 1330 may be filled in from the updated area 1310 (or may be filled in with a default value, e.g., 2 BD-1 , where BD is the bit depth).
[0064] In an example embodiment, CCSAO may be applied. Cross-component Sample Adaptive Offset (CCSAO) may be used to refine the reconstructed chroma samples. Similar to SAO, CCSAO classifies the reconstructed samples into different categories, derives one offset per category, and adds this offset to the reconstructed samples in that category. However, unlike SAO, which uses only a single luma / chroma component of the current sample as input, CCSAO utilizes all three components to classify the current sample into different categories. To facilitate parallel processing, the output samples from the deblocking filter may be used as input for CCSAO, as shown in FIG. 12.
[0065] In CCSAO, either a band offset (BO) classifier or an edge offset (EO) classifier may be used to improve the quality of the reconstructed samples. CCSAO may be applied to both luma and chroma components. For a particular luma / chroma sample, three candidate samples may be selected to classify the particular sample into different categories: one collocated Y sample (1410), one collocated U sample (1420), and one collocated V sample (1430). It should be noted that the collocated Y sample 1410 may be any one of the nine Y components shown in 1405. The example of FIG. 14 is not a limitation. Then, the sample values of these three selected samples may be classified into three different bands, and a joint index may represent the category of the particular sample. One offset may be signaled and added to the reconstructed sample that falls into that category.
[0066] As shown in Figure 14, for a collocated chroma sample, a collocated luma sample may be selected from nine candidate locations (1405). Nine candidate locations are shown in 1405. Collocated adjacent sample Y (1410) may be located at location 4. Collocated sample U (1420) may be at least partially collocated at location 4 (i.e., the location of the collocated Y sample). Collocated sample V (1430) may be at least partially collocated at location 4 (i.e., the location of the collocated Y sample).
[0067] In an example embodiment, if one side 1510 of the virtual boundary 1520 is not allowed to use the coding information on the other side 1530 of the virtual boundary 1520, the CCSAO may be disabled in pixels 1560 on the one side 1510 adjacent to the virtual boundary 1520. As shown in the example of FIG. 15, the updated area 1510 of the GDR image / image being restored may not be allowed to use the coding information of the non-updated area 1530. The CCSAO may be skipped for pixels 1550 in the updated area 1510 that is immediately next to the virtual boundary 1520. Alternatively, the CCSAO may still be applied in pixels 1550 on the one side 1510 adjacent to the virtual boundary 1520, but the coding information on the other side 1530 is replaced from the one side 1510 or set to a default value. For example, the pixel 1560 on the other side 1530 may be filled in from the one side 1510. As shown in the example of FIG. 15, the CCSAO may still be applied to pixels 1550 in the updated area 1510 adjacent to the virtual boundary 1520, but pixels 1560 on the non-updated area 1530 may be filled in (or may be filled in with a default value, e.g., 2 BD-1 , where BD is the bit depth).
[0068] 15, an example is shown in which an updated area 1510 is separated from a non-updated area 1530 by a virtual boundary 1520. Five pixels 1540 surround one pixel 1550 in the updated area 1510 that is adjacent to the virtual boundary 1520. CCSAO may not be applied to pixel 1550 in the updated area 1510, or may still be performed with three pixels 1560 in the non-updated area 153 filled in or set to a default value. It should be noted that the number of pixels in each of 1540, 1550, and 1560 is non-limiting, and each set may include a different number of pixels than the number of pixels shown in FIG.
[0069] As shown in FIG. 12, the SAO, bilateral filter (BIF), and CCSAO offsets may be calculated in parallel, added to the reconstructed chroma samples, and clipped together.
[0070] In an example embodiment, a longer CCALF may be applied. The CCALF process uses a linear filter to filter luma sample values and generate residual corrections for chroma samples, as shown in FIG. 16. Initially, an 8-tap filter was designed for the CCALF process. Recently, a 25-tap larger filter may be used in the CCALF process, as shown in FIG. 17. For a particular slice, the encoder may collect and analyze statistics for the slice, which may be signaled to up to 16 filters via the APS.
[0071] 16, a basic example of CCALF is shown. At CTU(Y) 1610, CCALF(Cb) may be applied 1620 to a set of pixels as shown at 1630. This may be considered as linear filtering of the luma sample values. At CTU(Cb) 1640, ALF Chroma may be applied 1650 to a portion of the pixels. This may be considered as filtering of the chroma samples. The outputs of 1620 and 1650 may be summed 1660 and output as CTB'(Cb) 1670.
[0072] In an example embodiment, if one side 1810 of the virtual boundary 1820 is not allowed to use the coding information on the other side 1830 of the virtual boundary 1820, the longer CCALF may be disabled within the four pixels on one side 1810 adjacent to the virtual boundary 1820. As shown in the example of FIG. 18, the updated area 1810 of the GDR image / image being restored may not be allowed to use the coding information of the non-updated area 1830. The longer CCALF may be skipped for the collocated chroma pixel 1850 in the updated area 1810 that is immediately adjacent to the virtual boundary 1820. Alternatively, the longer CCALF may still be applied within the four pixels on one side 1810 adjacent to the virtual boundary 1820, but the coding information on the other side 1830 is replaced from the one side 1810 or set to a default value. For example, pixel 1860 on the other side 1830 may be filled in from the one side 1810. As shown in the example of FIG. 18, the longer CCALF may still be applied to collocated chroma pixels 1850 in the updated area 1810 adjacent to the virtual boundary 1820, but pixels 1860 on the non-updated area 1830 are filled in from the updated area 1810 (or a default value, e.g., 2 BD-1 , where BD is the bit depth).
[0073] 18, an example is shown in which an updated area 1810 is separated from a non-updated area 1830 using a virtual boundary 1820. Sixteen pixels 1840 surround a collocated chroma pixel 1850 in the updated area 1810 that is adjacent to the virtual boundary 1820. A longer CCALF may not be applied to the collocated chroma pixel 1850, or may still be performed with the eight pixels 1860 in the non-updated area 1830 filled in or set to a default value.
[0074] In an example embodiment, an alternative band classifier for ALF filter (ABN-ALF) may be applied. The ECM may use a 13×13 diamond filter to classify each 2×2 luma block of the ALF.
[0075] In an example embodiment, if one side 1910 of the virtual boundary 1920 is not allowed to use the coding information on the other side 1930 of the virtual boundary 1920, ABN-ALF may be disabled within six pixels on one side 1910 adjacent to the virtual boundary 1920. As shown in the example of FIG. 19, the updated area 1910 of the GDR image / image being restored may not be allowed to use the coding information of the non-updated area 1930. ABN-ALF may be skipped for pixel 1950 in the updated area 1910 that is immediately adjacent to the virtual boundary 1920. Alternatively, ABN-ALF may still be applied within six pixels on one side 1910 adjacent to the virtual boundary 1920, but the coding information on the other side 1930 is replaced from the one side 1910 or set to a default value. For example, pixel 1960 on the other side 1930 may be filled in from the one side 1910. As shown in the example of FIG. 19, ABN-ALF may still be applied to pixels 1950 in the updated area 1910 adjacent to the virtual boundary 1920, but pixels 1960 on the non-updated area 1930 are filled in (or filled with a default value, e.g., 2 BD-1 , where BD is the bit depth).
[0076] 19, an example is shown in which an updated area 1910 is separated from a non-updated area 1930 using a virtual boundary 1920. 48 pixels 1940 surround one pixel 1950 in the updated area 1910 that is adjacent to the virtual boundary 1920. ANN-ALF may not be applied to pixel 1950 or may still be performed using the 36 pixels 1960 in the non-updated area 1930. It should be noted that the number of pixels in each of 1940, 1950, and 1960 is non-limiting, and each set may include a different number of pixels than the number of pixels shown in FIG.
[0077] 20 shows possible steps of an exemplary method 2000. The exemplary method 2000 may include: selecting at least one first pixel from a first region of an image, where the first region is separated from a different second region using a virtual boundary (2010); determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel is located in the second region (2020); determining whether to filter the at least one first pixel (2030); and filtering the at least one first pixel based on at least one of the coding information associated with the at least one second pixel, at least one predefined value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region (2040) based on the determination of filtering the at least one first pixel. It should be noted that filtering the at least one first pixel is optional. Not filtering the at least one first pixel is also an option. Determining whether to filter the at least one first pixel may be based on a default setting / configuration, signaling in a sequence header, signaling in a picture header, and / or signaling in a slice header.
[0078] According to one example embodiment, the apparatus may comprise at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to cause, using the at least one processor, the apparatus to at least perform the following: selecting at least one first pixel from a first region of the image, where the first region may be separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel may be located in the second region; determining whether to filter the at least one first pixel; and based on the determination of filtering the at least one first pixel, causing filtering of the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one predefined value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0079] At least one first pixel may be adjacent to the imaginary boundary.
[0080] The filtering may include implementing at least one in-loop filter, where the at least one in-loop filter includes at least one of a deblocking filter, a sample adaptive offset filter, or an adaptive loop filter.
[0081] The image may include one of a 360 degree image, a progressive decoding update image, an image in recovery, or an image made up of sub-images or tiles.
[0082] The first region may include an updated area of the image and the second region may include a non-updated area of the image.
[0083] The coding information associated with the at least one second pixel may include at least one of pixel information, a coding mode, a motion vector, or a quarter pixel associated with the at least one second pixel.
[0084] The example apparatus may be further configured to determine whether to filter the at least one first pixel based on at least one of the configuration, signaling in the sequence header, signaling in the image header, or signaling in the slice header.
[0085] At least one of the predefined values may include a power of two that includes an exponent that is the bit depth of the image minus one.
[0086] The filtering of the at least one first pixel may include performing deblocking filtering, and a block boundary for the deblocking filtering may be aligned to the virtual boundary.
[0087] The filtering of the at least one first pixel may include performing sample adaptive offset edge filtering.
[0088] The filtering of the at least one first pixel may include performing adaptive loop filtering, and the adaptive loop filtering may include using a 7×7 diamond shaped filter.
[0089] The filtering of the at least one first pixel may include performing bilateral filtering on luminance, and the bilateral filtering on luminance may include using a 5x5 diamond shaped filter.
[0090] The filtering of the at least one first pixel may include performing bilateral filtering on chroma, and the bilateral filtering on chroma may include using a 5x5 diamond shaped filter.
[0091] The filtering of the at least one first pixel may include performing cross-component sample adaptive offset filtering based on at least one of a band offset classifier or an edge offset classifier.
[0092] The filtering of the at least one first pixel may include performing longer cross-component adaptive loop filtering, which may include using a 25-tap large filter.
[0093] The filtering of the at least one first pixel may include performing an alternative band classifier for adaptive loop filtering, and the alternative band classifier for adaptive loop filtering may include using respective 13x13 diamond filters to classify one or more 2x2 luminance blocks.
[0094] The example apparatus may be further configured to not cause filtering of the at least one first pixel based on a determination not to filter the at least one first pixel.
[0095] According to one aspect, an exemplary method may be provided that includes selecting at least one first pixel from a first region of an image, where the first region may be separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel may be located in the second region; determining whether to filter the at least one first pixel; and based on the determination of filtering the at least one first pixel, filtering the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one default value, or a version of coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0096] According to one example embodiment, the apparatus may comprise a circuit configured to perform the steps of: selecting at least one first pixel from a first region of an image, where the first region may be separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel may be located in the second region; determining whether to filter the at least one first pixel; and, based on the determination of filtering the at least one first pixel, causing the filtering of the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one predefined value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0097] According to one example embodiment, the apparatus may include a processing circuit and a memory circuit including computer program code configured to enable, using the processing circuit, the apparatus to: select at least one first pixel from a first region of the image, where the first region may be separated from a different second region using a virtual boundary; determine at least one second pixel for filtering the at least one first pixel, where the at least one second pixel may be located in the second region; determine whether to filter the at least one first pixel; and based on the determination to filter the at least one first pixel, cause filtering of the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one predefined value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0098] As used in this application, the term "circuitry" may refer to one or more or all of: (a) a hardware-only implementation of the circuitry (such as an implementation in analog and / or digital circuitry only); (b) (where applicable) (i) a combination of analog and / or digital hardware circuits with software / firmware, and (ii) a combination of hardware circuits and software, such as any portion of a hardware processor, including software (including a digital signal processor), software, and memory, that work together to cause a device, such as a mobile phone or server, to perform various functions; and (c) a hardware circuitry and / or processor, such as a microprocessor or a portion of a microprocessor, that requires software (e.g., firmware) to operate, but may not be present if software is not required for operation. This definition of circuitry applies to all uses of the term in this application, including its use in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuitry or processor (or processors), or a portion of a hardware circuitry or processor, as well as its (or their) associated software and / or firmware. The term circuitry, for example, where applicable to certain claim elements, also covers baseband or processor integrated circuits for mobile devices, or similar integrated circuits in servers, cellular network devices, or other computing or network devices.
[0099] According to one example embodiment, the apparatus may comprise means for performing the steps of: selecting at least one first pixel from a first region of the image, where the first region may be separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, where the at least one second pixel may be located in the second region; determining whether to filter the at least one first pixel; and based on the determination of filtering the at least one first pixel, filtering the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one default value, or a version of the coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0100] According to one example embodiment, a non-transitory computer-readable medium includes stored program instructions that, when executed using at least one processor, cause the at least one processor to: select at least one first pixel from a first region of an image, where the first region may be separated from a different second region using a virtual boundary; determine at least one second pixel for filtering of the at least one first pixel, where the at least one second pixel may be located in the second region; determine whether to filter the at least one first pixel; and, based on the determination to filter the at least one first pixel, cause filtering of the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one predefined value, or a version of coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0101] According to another example embodiment, a machine-readable non-transitory program storage device may be provided that tangibly embodies a program of instructions executable by a machine to perform operations including: selecting at least one first pixel from a first region of an image, where the first region may be separated from a different second region using a virtual boundary; determining at least one second pixel for filtering of the at least one first pixel, where the at least one second pixel may be located in the second region; determining whether to filter the at least one first pixel; and based on the determination of filtering the at least one first pixel, causing the filtering of the at least one first pixel based on at least one of coding information associated with the at least one second pixel, at least one predefined value, or a version of coding information associated with the at least one second pixel filled based on the coding information of the first region.
[0102] It should be understood that the foregoing description is merely illustrative. Various alternatives and modifications may be devised by those skilled in the art. For example, the features recited in the various dependent claims may be combined with each other in any suitable combination. In addition, features from the various embodiments described above may be selectively combined into new embodiments. Accordingly, the present description is intended to embrace all such alternatives, modifications, and variations that fall within the scope of the appended claims.
Claims
1. At least one processor; at least one non-transitory memory containing computer program code; An apparatus comprising: The at least one memory and the computer program code, using the at least one processor, cause the apparatus to: selecting at least one first pixel from a first region of an image, the first region being separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, the at least one second pixel being located in the second region; determining whether to filter the at least one first pixel; Based on the determination to filter the at least one first pixel, coding information associated with the at least one second pixel; At least one of the default values, or a version of the coding information associated with the at least one second pixel filled based on coding information of the first region; causing filtering of the at least one first pixel based on at least one of The apparatus is configured to perform at least the following:
2. The apparatus of claim 1 , wherein the at least one first pixel is adjacent to the imaginary boundary.
3. The filtering includes performing at least one in-loop filter, the at least one in-loop filter comprising: Deblocking filter, Sample Adaptive Offset Filter, or Adaptive Loop Filter The apparatus according to claim 1 or 2, comprising at least one of:
4. The image is 360 degree images, Incremental decoding update image, Image being recovered, or An apparatus according to any preceding claim, comprising one of an image consisting of sub-images or tiles.
5. An apparatus according to any preceding claim, wherein the first region comprises an updated area of the image and the second region comprises a non-updated area of the image.
6. The coding information associated with the at least one second pixel is associated with the at least one second pixel. Pixel information, Encoding mode, motion vector, or Quarter Pixel The apparatus according to any one of claims 1 to 5, comprising at least one of:
7. The at least one memory and the computer program code, using the at least one processor, cause the apparatus to: composition, Signaling in sequence headers, Signaling in the image header, or Signaling in slice headers The apparatus of claim 1 , further configured to determine whether to filter the at least one first pixel based on at least one of:
8. The apparatus of any preceding claim, wherein the at least one predefined value comprises a power of two having an exponent equal to one minus the bit depth of the image.
9. The apparatus of claim 1 , wherein the filtering of the at least one first pixel comprises performing a deblocking filtering, and wherein a block boundary for the deblocking filtering is aligned to the virtual boundary.
10. The apparatus of any preceding claim, wherein the filtering of the at least one first pixel comprises performing sample adaptive offset edge filtering.
11. The apparatus of any preceding claim, wherein the filtering of the at least one first pixel comprises performing adaptive loop filtering, the adaptive loop filtering comprising the use of a 7x7 diamond shaped filter.
12. 9. The apparatus of claim 1, wherein the filtering of the at least one first pixel comprises performing bilateral filtering on luminance, the bilateral filtering on luminance comprising the use of a 5x5 diamond shaped filter.
13. 9. The apparatus of claim 1, wherein the filtering of the at least one first pixel comprises performing bilateral filtering on chroma, the bilateral filtering on chroma comprising the use of a 5x5 diamond shaped filter.
14. 9. The apparatus of claim 1, wherein the filtering of the at least one first pixel comprises performing cross-component sample adaptive offset filtering based on at least one of a band offset classifier or an edge offset classifier.
15. 9. The apparatus of claim 1, wherein the filtering of the at least one first pixel comprises performing a longer cross-component adaptive loop filtering, the longer cross-component adaptive loop filtering comprising the use of a 25-tap large filter.
16. 9. The apparatus of claim 1, wherein the filtering of the at least one first pixel comprises performing an alternative band classifier for adaptive loop filtering, the alternative band classifier for adaptive loop filtering comprising the use of respective 13x13 diamond filters to classify one or more 2x2 luminance blocks.
17. 17. The apparatus of claim 1, wherein the at least one memory and the computer program code are configured, using the at least one processor, to not cause the apparatus to filter the at least one first pixel based on a determination not to filter the at least one first pixel.
18. selecting at least one first pixel from a first region of an image, the first region being separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, the at least one second pixel being located in the second region; determining whether to filter the at least one first pixel; Based on the determination to filter the at least one first pixel, coding information associated with the at least one second pixel; At least one of the default values, or a version of the coding information associated with the at least one second pixel filled based on coding information of the first region; filtering the at least one first pixel based on at least one of A method comprising:
19. selecting at least one first pixel from a first region of an image, the first region being separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, the at least one second pixel being located in the second region; determining whether to filter the at least one first pixel; Based on the determination to filter the at least one first pixel, coding information associated with the at least one second pixel; At least one of the default values, or a version of the coding information associated with the at least one second pixel filled based on coding information of the first region; filtering the at least one first pixel based on at least one of An apparatus comprising:
20. A non-transitory computer readable medium having stored thereon program instructions, the program instructions, when executed using at least one processor, causing the at least one processor to: selecting at least one first pixel from a first region of an image, the first region being separated from a different second region using a virtual boundary; determining at least one second pixel for filtering the at least one first pixel, the at least one second pixel being located in the second region; determining whether to filter the at least one first pixel; Based on the determination to filter the at least one first pixel, coding information associated with the at least one second pixel; At least one of the default values, or a version of the coding information associated with the at least one second pixel filled based on coding information of the first region; causing filtering of the at least one first pixel based on at least one of A non-transitory computer readable medium for causing a program to be executed.
Citation Information
Patent Citations
Enhanced coding in intercomponent sample-adaptive offsets.
JP2024507857A
Method and Apparatus of In-Loop Filtering for Virtual Boundaries in Video Coding
US20200074687A1
Image coding device and method, for controlling loop filtering
WO2021101201A1
Methods and systems for performing gradual decoding refresh processing on pictures
WO2021133519A1