ENHORN JACK (SE)
WO2022207701A1 | 2022-10-06 |
US20190306503A1 | 2019-10-03 |
IKEDA (SONY) M ET AL: "CE2: Long-tap deblocking filter for luma and chroma (CE2-2.1.6)", no. JVET-K0152, 2 July 2018 (2018-07-02), XP030198696, Retrieved from the Internet
KARCZEWICZ MARTA ET AL: "VVC In-Loop Filters", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE, USA, vol. 31, no. 10, 9 April 2021 (2021-04-09), pages 3907 - 3925, XP011880911, ISSN: 1051-8215, [retrieved on 20210930], DOI: 10.1109/TCSVT.2021.3072297
ANDERSSON (ERICSSON) K ET AL: "Non-EE2: Longer deblocking filter for luma", no. JVET-AA0139 ; m60115, 6 July 2022 (2022-07-06), XP030303007, Retrieved from the Internet
CLAIMS 1. A method for deblocking, the method comprising: checking (s502) whether a current block (404) is smooth; checking (s504) whether an adjacent block (406) is smooth, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determining (s506) that a criteria is true, wherein the criteria comprises (1) one or more of the current block (404) and the adjacent block (406) being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, applying (s508) a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 2. The method of claim 1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block (404), lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block (406), pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 3. The method of claim 2, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. 4. The method of claim 1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block (404), maxFilterLengthQ is the maximum filter length of the adjacent block (406), pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 5. The method of claim 4, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. 6. The method of any one of claims 1-5, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. 7. A method for deblocking, the method comprising: checking (s602) whether a size of a current block (404) exceeds a size threshold; checking (s604) whether a size of an adjacent block (406) exceeds the size threshold, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determining (s606) that a criteria is true, wherein the criteria comprises (1) both a size of the current block (404) and a size of the adjacent block (406) exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, applying (s608) a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 8. The method of claim 7, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block (404), lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block (406), pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 9. The method of claim 8, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. 10. The method of claim 7, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block (404), maxFilterLengthQ is the maximum filter length of the adjacent block, pi,0 and pi,3 refer to values in the current block (404) indexed by i and qi,0 and qi,3 refer to values in the adjacent block (406) indexed by i. 11. The method of claim 10, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. 12. The method of any one of claims 7-11, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. 13. A computer program (743) comprising instructions (744) which when executed by processing circuitry (702) of a node (700), causes the node (700) to perform the method of any one of claims 1-12. 14. A carrier containing the computer program (743) of claim 13, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium. 15. An encoder, the encoder comprising: processing circuitry (702); and a memory, the memory containing instructions (744) executable by the processing circuitry (702), whereby the encoder is configured to perform the method of any one of claims 1-12. 16. A decoder, the decoder comprising: processing circuitry (702); and a memory, the memory containing instructions (744) executable by the processing circuitry (702), whereby the decoder is configured to perform the method of any one of claims 1-12. 17. An encoder configured to deblock, the encoder being further configured to: check whether a current block (404) is smooth; check whether an adjacent block (406) is smooth, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block (404) and the adjacent block (406) being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 18. The encoder of claim 17, wherein the encoder is further configured to perform the method of any one of claims 2-6. 19. An encoder configured to deblock, the encoder being further configured to: check whether a size of a current block (404) exceeds a size threshold; check whether a size of an adjacent block (406) exceeds the size threshold, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block (404) and a size of the adjacent block (406) exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 20. The encoder of claim 19, wherein the encoder is further configured to perform the method of any one of claims 8-12. 21. A decoder configured to deblock, the decoder being further configured to: check whether a current block (404) is smooth; check whether an adjacent block (406) is smooth, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block (404) and the adjacent block (406) being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 22. The decoder of claim 21, wherein the decoder is further configured to perform the method of any one of claims 2-6. 23. A decoder configured to deblock, the decoder being further configured to: check whether a size of a current block (404) exceeds a size threshold; check whether a size of an adjacent block (406) exceeds the size threshold, wherein the adjacent block (406) is adjacent to a boundary (402) of the current block (404); determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block (404) and a size of the adjacent block (406) exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block (404) and a second average value of the adjacent block (406) and the second difference is a difference between a third average value of the current block (404) and a fourth average value of the adjacent block (406); and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary (402) of the current block (404), wherein a length of the long-tap deblocking is greater than or equal to 15. 24. The decoder of claim 23, wherein the decoder is further configured to perform the method of any one of claim 8-12. |
where shiftVec[16] = { 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4 } [0045] Embodiment 3 [0046] The decision criteria are as in embodiment 1, where only every N:th sample is used to calculate avgP0, avgP3, avgQ0, and avgQ3: [0047] Embodiment 4 [0048] The division can be avoided in embodiment 3 by using right bit shifts instead o f divisions where N is equal to 2. For example: where shiftVec[16] = { 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3 }. [0049] Embodiment 5 [0050] This embodiment relates to the filtering. To calculate refMiddle when one side uses longer filtering it is needed to select samples to use for the calculation. Corresponding criteria in VVC can be changed according to the italicized text below: .. Otherwise, if maxFilterLengthP is equal to maxFilterLengthQ and maxFilterLengthP is not equal to 5, or maxFilterLengthP is equal to 7 and maxFilterLengthQ is equal to 15, or maxFilterLengthP is equal to 15 and maxFilterLengthQ is equal to 7, the following applies: refMiddle = ( p 6 + p 5 + p 4 + p 3 + p 2 + p 1 + 2* ( p 0 + q 0 ) + q 1 + q 2 + q 3 + q 4 + q 5 + q 6 + 8 ) >> 4 (118) .. Otherwise, if one of the following conditions is true: maxFilterLengthQ is equal to 7 or greater than 7 and maxFilterLengthP is equal to 5, maxFilterLengthQ is equal to 5 and maxFilterLengthP is equal to 7 or greater than 7, the following applies: refMiddle = ( p5 + p4 + p3 + p2 + 2* ( p1 + p0 + q0 + q1 ) + q2 + q3 + q4 + q5 + 8 ) >> 4 (119) .. Otherwise, if maxFilterLengthQ is equal to 7 or greater than 7 and maxFilterLengthP is equal to 3, the following applies: refMiddle = ( 2 * ( p 2 + p 1 + p 0 + q 0 ) + p 0 + p 1 + q 1 + q 2 + q 3 + q 4 + q 5 + q 6 + 8 ) >> 4 (120) [0051] FIG.5 illustrates a flow chart according to an embodiment. Process 500 is a method for deblocking. The method may begin with step s502. [0052] Step s502 comprises checking whether a current block is smooth. [0053] Step s504 comprises checking whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block. [0054] Step s506 comprises determining that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block. [0055] Step s508 comprises, as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. [0056] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block, lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. [0057] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block, maxFilterLengthQ is the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. [0058] In some embodiments, the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. In some embodiments, the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. [0059] FIG.6 illustrates a flow chart according to an embodiment. Process 600 is a method for deblocking. The method may begin with step s602. [0060] Step s602 comprises checking whether a size of a current block exceeds a size threshold. [0061] Step s604 comprises checking whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block. [0062] Step s606 comprises determining that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block. [0063] Step s608 comprises, as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. [0064] FIG.7 is a block diagram of node 700 (e.g., an encoder or decoder), according to some embodiments. As shown in FIG.7, node 700 may comprise: processing circuitry (PC) 702, which may include one or more processors (P) 755 (e.g., one or more general purpose microprocessors and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., node 700 may be a distributed computing apparatus); at least one network interface 748 (e.g., a physical interface or air interface) comprising a transmitter (Tx) 745 and a receiver (Rx) 747 for enabling node 700 to transmit data to and receive data from other nodes connected to a network 710 (e.g., an Internet Protocol (IP) network) to which network interface 748 is connected (physically or wirelessly) (e.g., network interface 748 may be coupled to an antenna arrangement comprising one or more antennas for enabling node 700 to wirelessly transmit/receive data); and a local storage unit (a.k.a., “data storage system”) 708, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 702 includes a programmable processor, a computer program product (CPP) 741 may be provided. CPP 741 includes a computer readable medium (CRM) 742 storing a computer program (CP) 743 comprising computer readable instructions (CRI) 744. CRM 742 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 744 of computer program 743 is configured such that when executed by PC 702, the CRI causes node 700 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, node 700 may be configured to perform steps described herein without the need for code. That is, for example, PC 702 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software. [0065] As used herein, a network element, node, or subsystem (e.g., an encoder or decoder) may be comprised of one or more pieces of service network equipment, including hardware and software that communicatively interconnects other equipment on a network (e.g., other network elements, end stations, etc.), and is adapted to host one or more applications or services, either in a virtualized/non-virtualized environment, with respect to a plurality of subscribers and associated user equipment (UE) nodes that are operative to receive/consume content in a media distribution network where media content assets may be distributed and delivered using stream-based or file-based mechanisms. As such, some network elements may be disposed in a wireless radio network environment whereas other network elements may be disposed in a public packet-switched network infrastructure, including or otherwise involving suitable content delivery network (CDN) infrastructure that may comprise public, private, or mixed CDNs. Further, suitable network elements including one or more embodiments set forth herein may involve terrestrial and/or satellite broadband delivery infrastructures, e.g., a Digital Subscriber Line (DSL) network architecture, a Data Over Cable Service Interface Specification (DOCSIS)-compliant Cable Modem Termination System (CMTS) architecture, switched digital video (SDV) network architecture, a Hybrid Fiber-Coaxial (HFC) network architecture, a suitable satellite access network architecture or a broadband wireless access network architecture over cellular and/or WiFi connectivity. Accordingly, some network elements may comprise “multiple services network elements” that provide support for multiple network-based functions (e.g., 360º immersive A/V media preparation delivery policy management, session control, QoS policy enforcement, bandwidth scheduling management, content provider priority policy management, streaming policy management, and the like), in addition to providing support for multiple application services (e.g., data and multimedia applications including 360º immersive video assets (also referred to as 360-degree video assets or simply 360 video assets) in varying qualities or definitions). Example subscriber end stations or client devices may comprise various devices, tethered or untethered, that may consume or deliver media content assets using streaming and/or file-based downloading technologies, which may involve some type of rate adaptation in certain embodiments. Illustrative client devices or UE devices may therefore include any device configured to execute, inter alia, one or more client applications for receiving, recording, storing, and/or decoding/rendering 360 video content, live media and/or static/on-demand media, which may comprise Virtual Reality (VR) media, Augmented Reality (AR) media, Mixed Reality (MR) media, from one or more content providers, e.g., via a broadband access network, using HTTP, HTTPS, RTP, and the like. Accordingly, such client devices may include Next Generation IP-based STBs, networked TVs, personal/digital video recorders (PVR/DVRs), networked media projectors, portable laptops, netbooks, palm tops, tablets, smartphones, multimedia/video phones, mobile/wireless user equipment, portable media players, portable gaming systems or consoles (such as the Wii®, Play Station 3®, etc.) operating in concert with 3D display devices and the like, which may access or consume 360-degree content/services provided via a suitable media distribution network wherein a bandwidth and Quality of Experience (QoE) scheme may be provided in accordance with to one or more embodiments set forth herein. [0066] One or more embodiments of the present patent disclosure may be implemented using different combinations of software, firmware, and/or hardware. Thus, one or more of the techniques shown in the Figures (e.g., flowcharts) may be implemented using code and data stored and executed on one or more electronic devices or nodes (e.g., a subscriber client device or end station, a network element, etc.). Such electronic devices may store and communicate (internally and/or with other electronic devices over a network) code and data using computer-readable media, such as non-transitory computer-readable storage media (e.g., magnetic disks, optical disks, random access memory, read-only memory, flash memory devices, phase-change memory, etc.), transitory computer-readable transmission media (e.g., electrical, optical, acoustical or other form of propagated signals – such as carrier waves, infrared signals, digital signals), etc. In addition, such network elements may typically include a set of one or more processors coupled to one or more other components, such as one or more storage devices (e.g., non-transitory machine-readable storage media) as well as storage database(s), user input/output devices (e.g., a keyboard, a touch screen, a pointing device, and/or a display), and network connections for effectuating signaling and/or bearer media transmission. The coupling of the set of processors and other components may be typically through one or more buses and bridges (also termed as bus controllers), arranged in any known (e.g., symmetric/shared multiprocessing) or heretofore unknown architectures. Thus, the storage device or component of a given electronic device or network element may be configured to store code and/or data for execution on one or more processors of that element, node or electronic device for purposes of implementing one or more techniques of the present disclosure. [0067] Skilled artisans will recognize that the foregoing generalized example network environment may be implemented in a hierarchical network architecture, with various aspects of media capture and preparation, including, e.g., source stream stitching, projection mapping, source media compression, tiled/ABR encoding/transcoding, packaging, etc., as well as distributing/uploading and edge node processes taking place in different network portions disposed at different hierarchical levels, involving one or more operators, content delivery networks (CDNs), edge networks, and the like. Further, in some implementations, at least some of the foregoing apparatuses and processes may be cloud-based. In some arrangements, a CDN can be a large distributed system of servers deployed in multiple data centers connected to the Internet or other public/private communications network. A CDN can be a managed or unmanaged network, and can also be a federation of managed or unmanaged networks. [0068] An example embodiment of a media server/source system operatively associated within the foregoing example network environment may therefore be configured, e.g., as a global headend, to accept media content from live sources and/or static file sources, e.g., online content providers such as Hulu®, Netflix®, YouTube®, or Amazon® Prime, as well as VOD catalog or content providers or studios such as, e.g., Disney, Warner, Sony, etc. Media content from live sources may comprise live programming captured relative to any type of event, e.g., sporting/entertainment/gaming events, concerts, live TV shows, live news broadcasting sources, such as, for instance, national broadcasters (e.g., NBC, ABC, etc.) as well as cable broadcaster channels like Time Warner channels of CNN, ESPN, CNBC, etc., and local broadcasters, etc., including any secondary media insertions such as advertisement media channels. [0069] Summary of Various Embodiments A1. A method for deblocking, the method comprising: checking whether a current block is smooth; checking whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block; determining that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. A2. The method of embodiment A1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block, lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. A3. The method of embodiment A2, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. A4. The method of embodiment A1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block, maxFilterLengthQ is the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. A5. The method of embodiment A4, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. A6. The method of any one of embodiments A1-A5, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. B1. A method for deblocking, the method comprising: checking whether a size of a current block exceeds a size threshold; checking whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block; determining that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, applying a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. B2. The method of embodiment B1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are given by: where lenP is equal to maxFilterLengthP, the maximum filter length of the current block, lenQ is equal to maxFilterLengthQ, the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. B3. The method of embodiment B2, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. B4. The method of embodiment B1, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are averaged over every N-th sample for a value of N and given by: where maxFilterLengthP is the maximum filter length of the current block, maxFilterLengthQ is the maximum filter length of the adjacent block, p i,0 and p i,3 refer to values in the current block indexed by i and q i,0 and q i,3 refer to values in the adjacent block indexed by i. B5. The method of embodiment B4, wherein the first average value (avgP0), second average value (avgQ0), third average value (avgP3), and fourth average value (avgQ3) are calculated using bit shifts to avoid a division operator being used. B6. The method of any one of embodiments B1-B5, wherein the threshold is a minimum of tC and a fixed threshold, where tC is a variable and where the fixed threshold is determined by the bit depth. C1. A computer program comprising instructions which when executed by processing circuitry of a node, causes the node to perform the method of any one of embodiments A1- A6, and B1-B6. C2. A carrier containing the computer program of embodiment C1, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium. D1. An encoder, the encoder comprising: processing circuitry; and a memory, the memory containing instructions executable by the processing circuitry, whereby the encoder is configured to perform the method of any one the embodiments A1- A6, and B1-B6. D2. A decoder, the decoder comprising: processing circuitry; and a memory, the memory containing instructions executable by the processing circuitry, whereby the decoder is configured to perform the method of any one the embodiments A1- A6, and B1-B6. E1. An encoder configured to deblock, the encoder being further configured to: check whether a current block is smooth; check whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. E2. The encoder of embodiment E1, wherein the encoder is further configured to perform the method of any one of embodiments A2-A6. F1. An encoder configured to deblock, the encoder being further configured to: check whether a size of a current block exceeds a size threshold; check whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. F2. The encoder of embodiment F1, wherein the encoder is further configured to perform the method of any one of embodiments B2-B6. G1. A decoder configured to deblock, the decoder being further configured to: check whether a current block is smooth; check whether an adjacent block is smooth, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) one or more of the current block and the adjacent block being smooth and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. G2. The decoder of embodiment G1, wherein the decoder is further configured to perform the method of any one of embodiments A2-A6. H1. A decoder configured to deblock, the decoder being further configured to: check whether a size of a current block exceeds a size threshold; check whether a size of an adjacent block exceeds the size threshold, wherein the adjacent block is adjacent to a boundary of the current block; determine that a criteria is true, wherein the criteria comprises (1) both a size of the current block and a size of the adjacent block exceeding the size threshold and (2) first and second differences being less than a threshold, wherein the first difference is a difference between a first average value of the current block and a second average value of the adjacent block and the second difference is a difference between a third average value of the current block and a fourth average value of the adjacent block; and as a result of determining that the criteria is true, apply a long-tap deblocking across the boundary of the current block, wherein a length of the long-tap deblocking is greater than or equal to 15. H2. The decoder of embodiment H1, wherein the decoder is further configured to perform the method of any one of embodiments B2-B6. [0070] Enhanced Compression Model (ECM) can operate at a larger CTU and transform size than VVC. To enable stronger deblocking of large blocks it is proposed in some embodiments to increase the maximum deblocking length from 7 to 15 for a boundary segment that has a size orthogonal to the block boundary of 64 samples or more. The filter design is similar to the VVC deblocking design for length greater than 3. The deblocking decision for a longer filter (length 15 on at least one side) is checked if length 7 deblocking decisions are passed. The additional decision for length 15 is similar to VVC but uses more samples to ensure that the deblocking filter is not used when there is a risk to remove natural texture. [0071] In some embodiments, subjective improvements can be seen on both SDR and HDR material especially at lower bitrates. [0072] The deblocking design in VVC can handle deblocking up to length 7 on both sides of a block boundary. With the increase of CTU and transform size in ECM it also makes sense to increase the length of the deblocking filter. [0073] Embodiments provide a filter decision for length 15 for luma. When a four samples block boundary segment has a size orthogonal to the block boundary of 64 or more samples and length 7 conditions are fulfilled, the following additional checks are made for line 0 and line 3 of a boundary segment, where k is line 0 or line 3: ((spLk+sqLk) < (beta>>6)) && ((dpLk+dqLk)< (beta>>5)) && (abs(avgPk- avgQk) < min(tC,21)) Where: spL k = sqL k = dpL k = dqL k = avgP k = avgQ k = 0 if(maxFilterLengthP>7) { spLk = spLk + abs(p7,k – p11,k) + abs(p11,k – p15,k) dpL k = dpL k + abs(p 6,k – p 7,k – p 8,k + p 9,k ) + abs(p 10,k – 2*p 11,k + p 12,k ) + abs(p 13,k – 2*p 14,k + p 15,k ) } if(maxFilterLengthQ>7) { sqL k = sqL k + abs(q 7,k – q 11,k ) + abs(q 11,k – q 15,k ) dqLk = dqLk + abs(q6,k – q7,k – q8,k + q9,k) + abs(q10,k – 2*q11,k + q12,k) + abs(q13,k – 2*q14,k + q15,k) } for (int j = 0; j < (maxFilterLengthQ+1); j++) { avgQk += qj,k; } avgQk = (avgQk + (maxFilterLengthQ+1)/2)/(maxFilterLengthQ+1); for (int j = 0; j < (maxFilterLengthP+1); j++) { avgP k += p j,k ; } avgPk = (avgPk + (maxFilterLengthP+1)/2)/(maxFilterLengthP+1); [0074] Embodiments provide a filter for length 15 for luma. The filtering follows the same spirit as in VVC but where a longer filter of length 15 can be used if the long filter decision in section 2.1 is fulfilled. Four lines k=0 to k=3 are filtered by linear interpolation as follows: pi,k’ = Clip3(pi,k – tC, pi,k – tC, (refMk*coeffsi + refPk*(64-coeffsPi)+32) >> 6); qj,k’ = Clip3(qj,k – tC, qj,k – tC, (refMk*coeffsj + refQk*(64-coeffsQj)+32) >> 6); where refM, refP, refQ, coeffsP and coeffsQ follows VVC besides adding a length 15 interpolation filter: coeffsP[15] = { 62, 58, 53, 49, 45, 41, 36, 32, 28, 23, 19, 15, 11, 6, 2}; coeffsQ[15] = { 62, 58, 53, 49, 45, 41, 36, 32, 28, 23, 19, 15, 11, 6, 2}; Where refMk is derived same as when at least one side has length 7. refPk and refQk are derived based on length on respective side. [0075] Results of embodiments are provided below. [0076] While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context. [0077] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.