Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DEBLOCKING OF IMPLICIT TRANSFORM UNIT BOUNDARIES
Document Type and Number:
WIPO Patent Application WO/2019/219685
Kind Code:
A1
Abstract:
In one aspect there is disclosed a method of applying deblocking on implicit vertical TU boundaries when the CU width is larger than the maximum TU width and applying deblocking on implicit horizontal TU boundaries when the CU height is larger than the maximum TU height. Some exemplary embodiments include HEVC deblocking and deblocking using longer filters.

Inventors:
ANDERSSON KENNETH (SE)
STRÖM JACOB (SE)
ZHANG ZHI (SE)
SJÖBERG RICKARD (SE)
Application Number:
PCT/EP2019/062350
Publication Date:
November 21, 2019
Filing Date:
May 14, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
H04N19/119; H04N19/117; H04N19/86
Domestic Patent References:
WO2017157249A12017-09-21
Foreign References:
US9167269B22015-10-20
Other References:
SJÖBERG R ET AL: "Description of SDR and HDR video coding technology proposal by Ericsson and Nokia", 10. JVET MEETING; 10-4-2018 - 20-4-2018; SAN DIEGO; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://PHENIX.INT-EVRY.FR/JVET/,, no. JVET-J0012-v2, 13 April 2018 (2018-04-13), XP030151169
LEE B ET AL: "Side information signaling improvement for TU", 8. JCT-VC MEETING; 99. MPEG MEETING; 1-2-2012 - 10-2-2012; SAN JOSE; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-H0154, 26 January 2012 (2012-01-26), XP030111181
Attorney, Agent or Firm:
ERICSSON (SE)
Download PDF:
Claims:
CLAIMS

1. A method for decoding a coded video picture, the method comprising:

obtaining a rectangular block B of the coded video picture, wherein the rectangular block B is of size Dl x D2, wherein Dl is greater than N and N is a predetermined maximum transform size;

determining that D 1 is greater than N;

after determining that Dl is greater than N, splitting the block B into at least a first rectangular sub-block Bl and a second rectangular sub-block B2, thereby forming a boundary between the first sub-block Bl and the second sub-block B2, wherein the sub-block Bl is of size N x D2 or N x N, and wherein the sub-block B2 is of size N x D2 or N x N; and

applying a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 when at least one of the sub-blocks Bl or B2 contains transform coefficients, wherein the deblocking filter modifies one or more samples on the first block side of the boundary and one or more samples on the second block side of the boundary.

2. The method of claim 1 , further comprising:

determining that a certain criteria is satisfied, wherein

the step of splitting the block B into at least the first sub-block Bl and the second sub block B2 is performed as a direct result of determining that the certain criteria is satisfied, and determining that the certain criteria is satisfied comprises determining that at least D 1 is greater than N.

3. The method of claim 2, wherein determining that the certain criteria is satisfied further comprises:

determining that at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2.

4. The method of claim 3, wherein

the criteria is not satisfied if no transform coefficients are included in the coded video picture for the first sub-block Bl and no transform coefficients are included in the coded video picture for the second sub-block B2.

5. The method of claim 3, wherein

D2 is less than or equal to N, and

determining that the criteria is satisfied consists of: i) determining that at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2; and ii) determining that Dl is greater than N.

6. The method of any one of claims 1-5, further comprising:

decoding at least one transform coefficient for the first sub-block Bl ;

applying an inverse transform to the first sub-block B 1 , thereby producing a first inverse transformed sub-block; and

adding a first prediction block to the first inverse transformed sub-block, thereby producing a first reconstructed sub-block, wherein

applying a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 comprises applying a deblocking filter to the boundary between first reconstructed sub-block and the second sub-block B2.

7. The method of any one of claims 1-6, wherein the block B comprises luma or chroma samples.

8. The method of any one of claims 1-7, wherein the block B is a Coding Unit (CU).

9. The method of any one of claims 1-8, wherein

Dl is the height of the rectangular block B and D2 is the width of the rectangular block B.

10. The method of any one of claims 1-8, wherein

D2 is the height of the rectangular block B and Dl is the width of the rectangular block B.

11. The method of claim 9 or 10, wherein Dl = 128 samples and N=64 samples.

12. The method of any one of claims 1-11 , wherein

D2 is greater than N, and

splitting the block B into at least a first rectangular sub-block Bl and a second rectangular sub-block B2 comprises splitting the block B into the first rectangular sub-block Bl , the second rectangular sub-block B2, a third rectangular sub-block B3, and a fourth rectangular sub-block B4, thereby further forming i) a boundary between the first sub-block Bl and the third sub-block B3, a boundary between the second sub-block B2 and the fourth sub-block B4, and a boundary between the third sub-block B3 and the fourth sub-block B4.

13. The method of claim 12, further comprising

applying a deblocking filter to the boundary between the first sub-block Bl and the third sub-block B3 when at least one of the sub-blocks Bl or B3 contains transform coefficients, applying a deblocking filter to the boundary between the second sub-block B2 and the fourth sub-block B4 when at least one of the sub-blocks B2 or B4 contains transform

coefficients, and/or

applying a deblocking filter to the boundary between the third sub-block B3 and the fourth sub-block B4 when at least one of the sub-blocks B3 or B4 contains transform

coefficients.

14. A method for encoding a video picture to produce an encoded video picture, the method comprising:

splitting the video picture into multiple blocks, said multiple blocks including a first rectangular block B, wherein the rectangular block B is of size Dl x D2, wherein Dl is greater than N, and N is a predetermined maximum transform size; determining that D 1 is greater than N;

after determining that Dl is greater than N, splitting the block B into a first rectangular sub-block Bl and a second rectangular sub-block B2, thereby forming a boundary between the first sub-block B 1 and the second sub-block B2, wherein the sub-block B 1 is of size N x D2 or N x N and the sub-block B2 is of size N x D2 or N x N;

including in the encoded video picture at least one transform coefficient for sub-block Bl and/or sub-block B2; and

applying a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 when at least one of the sub-blocks Bl or B2 contains transform coefficients, wherein the deblocking filter modifies one or more samples on the first block side of the boundary and one or more samples on the second block side of the boundary.

15. The method of claim 14, further comprising:

determining that a certain criteria is satisfied, wherein

the step of splitting the block B into the first sub-block Bl and the second sub-block B2 is performed as a direct result of determining that the certain criteria is satisfied, and

determining that the certain criteria is satisfied comprises determining that at least D 1 is greater than N.

16. The method of claim 15, wherein determining that the certain criteria is satisfied further comprises:

determining that at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2.

17. The method of claim 16, wherein

D2 is less than or equal to N, and

the criteria is not satisfied if no transform coefficients are included in the coded video picture for the first sub-block Bl and no transform coefficients are included in the coded video picture for the second sub-block B2.

18. The method of claim 16, wherein

D2 is less than or equal to N, and

determining that the criteria is satisfied consists of: i) determining that at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2; and ii) determining that Dl is greater than N.

19. The method of any one of claims 14-18, further comprising:

decoding at least one transform coefficient for the first sub-block Bl ;

applying an inverse transform to the first block, thereby producing a first inverse transformed sub-block; and

adding a first prediction block to the first inverse transformed sub-block, thereby producing a first reconstructed sub-block, wherein

applying a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 comprises applying a deblocking filter to the boundary between first reconstructed sub-block and the second sub-block B2.

20. The method of any one of claims 14-19, wherein the block B comprises luma or chroma samples.

21. The method of any one of claims 14-20, wherein the block B is a Coding Unit (CU).

22. The method ofany one ofclaims 14-21 , wherein Dl = l28 and N=64.

23. The method of any one of claims 14-22, wherein Dl is the height of the rectangular block B or Dl is the width of the rectangular block B.

24. The method of any one of claims 14-23, wherein

D2 is greater than N, and

splitting the block B into at least a first rectangular sub-block Bl and a second rectangular sub-block B2 comprises splitting the block B into the first rectangular sub-block Bl , the second rectangular sub-block B2, a third rectangular sub-block B3, and a fourth rectangular sub-block B4, thereby further forming i) a boundary between the first sub-block Bl and the third sub-block B3, a boundary between the second sub-block B2 and the fourth sub-block B4, and a boundary between the third sub-block B3 and the fourth sub-block B4.

25. The method of claim 24, further comprising

applying a deblocking filter to the boundary between the first sub-block Bl and the third sub-block B3 when at least one of the sub-blocks Bl or B3 contains transform coefficients, applying a deblocking filter to the boundary between the second sub-block B2 and the fourth sub-block B4 when at least one of the sub-blocks B2 or B4 contains transform

coefficients, and/or

applying a deblocking filter to the boundary between the third sub-block B3 and the fourth sub-block B4 when at least one of the sub-blocks B3 or B4 contains transform

coefficients.

26. A computer program (943, 1043, 1310), comprising instructions (944, 1044) which, when performed by a processing circuit (902, 1002), cause the processing circuit to carry out the method according to any one of claims 1-25.

27. A carrier (1320) containing the computer program of claim 26, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium (942, 1042).

28. A decoder (1001) for decoding a coded video picture, the decoder being adapted to: obtain a rectangular block B of the coded video picture, wherein the rectangular block B is of size Dl x D2, wherein Dl is greater than N and N is a predetermined maximum transform size;

determine that Dl is greater than N;

after determining that Dl is greater than N, split the block B into at least a first rectangular sub-block Bl and a second rectangular sub-block B2, thereby forming a boundary between the first sub-block Bl and the second sub-block B2, wherein the sub-block Bl is of size N x D2 or N x N, and wherein the sub-block B2 is of size N x D2 or N x N; and

apply a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 when at least one of the sub-blocks Bl or B2 contains transform coefficients, wherein the deblocking filter modifies one or more samples on the first block side of the boundary and one or more samples on the second block side of the boundary.

29. The decoder of claim 28, wherein the decoder is further adapted to determine whether a certain criteria is satisfied, wherein

the decoder is adapted to split the block B into at least the first sub-block Bl and the second sub-block B2 as a direct result of determining that the certain criteria is satisfied, and the decoder is adapted to determine whether the certain criteria is satisfied by performing a process that includes determining whether at least Dl is greater than N.

30. The decoder of claim 29, wherein the process further includes determining that at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2.

31. The decoder of claim 30, wherein

the criteria is not satisfied if no transform coefficients are included in the coded video picture for the first sub-block Bl and no transform coefficients are included in the coded video picture for the second sub-block B2.

32. The decoder of claim 30, wherein

D2 is less than or equal to N, and

determining that the criteria is satisfied consists of: i) determining that at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2; and ii) determining that Dl is greater than N.

33. The decoder of any one of claims 28-32, wherein the decoder is further adapted to: decode at least one transform coefficient for the first sub-block Bl ;

apply an inverse transform to the first sub-block Bl , thereby producing a first inverse transformed sub-block; and

add a first prediction block to the first inverse transformed sub-block, thereby producing a first reconstructed sub-block, wherein

applying a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 comprises applying a deblocking filter to the boundary between first reconstructed sub-block and the second sub-block B2.

34. The decoder of any one of claims 28-33, wherein the block B comprises luma or chroma samples.

35. The decoder of any one of claims 28-34, wherein the block B is a Coding Unit (CU).

36. The decoder of any one of claims 28-35, wherein

Dl is the height of the rectangular block B and D2 is the width of the rectangular block B.

37. The decoder of any one of claims 28-35, wherein

D2 is the height of the rectangular block B and Dl is the width of the rectangular block B.

38. The decoder of claim 36 or 27, wherein Dl = 128 samples and N=64 samples.

39. The decoder of any one of claims 28-38, wherein

D2 is greater than N, and

splitting the block B into at least a first rectangular sub-block Bl and a second rectangular sub-block B2 comprises splitting the block B into the first rectangular sub-block Bl , the second rectangular sub-block B2, a third rectangular sub-block B3, and a fourth rectangular sub-block B4, thereby further forming i) a boundary between the first sub-block Bl and the third sub-block B3, a boundary between the second sub-block B2 and the fourth sub-block B4, and a boundary between the third sub-block B3 and the fourth sub-block B4.

40. The decoder of claim 39, wherein the decoder is further adapted to:

apply a deblocking filter to the boundary between the first sub-block Bl and the third sub-block B3 when at least one of the sub-blocks Bl or B3 contains transform coefficients, apply a deblocking filter to the boundary between the second sub-block B2 and the fourth sub-block B4 when at least one of the sub-blocks B2 or B4 contains transform coefficients, and/or

apply a deblocking filter to the boundary between the third sub-block B3 and the fourth sub-block B4 when at least one of the sub-blocks B3 or B4 contains transform coefficients.

41. An encoder (901) for encoding a video picture to produce an encoded video picture, the encoder being adapted to:

split the video picture into multiple blocks, said multiple blocks including a first rectangular block B, wherein the rectangular block B is of size Dl x D2, wherein Dl is greater than N, and N is a predetermined maximum transform size;

determine that Dl is greater than N;

after determining that Dl is greater than N, split the block B into a first rectangular sub block Bl and a second rectangular sub-block B2, thereby forming a boundary between the first sub-block Bl and the second sub-block B2, wherein the sub-block Bl is of size N x D2 or N x N and the sub-block B2 is of size N x D2 or N x N;

include in the encoded video picture at least one transform coefficient for sub-block Bl and/or sub-block B2; and

apply a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 when at least one of the sub-blocks Bl or B2 contains transform coefficients, wherein the deblocking filter modifies one or more samples on the first block side of the boundary and one or more samples on the second block side of the boundary.

42. The encoder of claim 41 , wherein the encoder is further adapted to determine whether a certain criteria is satisfied, the encoder is further adapted to split the block B into the first sub-block Bl and the second sub-block B2 as a direct result of determining that the certain criteria is satisfied, and the encoder is further adapted to determine whether the certain criteria is satisfied by performing a process that includes determining whether at least Dl is greater than N.

43. The encoder of claim 42, wherein the process further includes determining whether at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2.

44. The encoder of claim 43, wherein

D2 is less than or equal to N, and

the criteria is not satisfied if no transform coefficients are included in the coded video picture for the first sub-block Bl and no transform coefficients are included in the coded video picture for the second sub-block B2.

45. The encoder of claim 43, wherein

D2 is less than or equal to N, and

determining whether the criteria is satisfied consists of: i) determining that at least one transform coefficient is included in the coded video picture for the first sub-block Bl or the second sub-block B2; and ii) determining that Dl is greater than N.

46. The encoder of any one of claims 41-45, wherein the encoder is further adapted to: decode at least one transform coefficient for the first sub-block Bl ;

apply an inverse transform to the first block, thereby producing a first inverse transformed sub-block; and

add a first prediction block to the first inverse transformed sub-block, thereby producing a first reconstructed sub-block, wherein applying a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 comprises applying a deblocking filter to the boundary between first reconstructed sub-block and the second sub-block B2.

47. The encoder of any one of claims 41-46, wherein the block B comprises luma or chroma samples.

48. The encoder of any one of claims 41-47, wherein the block B is a Coding Unit (CU).

49. The encoder of any one of claims 41-48, wherein Dl = 128 and N=64.

50. The encoder of any one of claims 41-49, wherein Dl is the height of the rectangular block B or Dl is the width of the rectangular block B.

51. The encoder of any one of claims 41-50, wherein

D2 is greater than N, and

splitting the block B into at least a first rectangular sub-block Bl and a second rectangular sub-block B2 comprises splitting the block B into the first rectangular sub-block Bl , the second rectangular sub-block B2, a third rectangular sub-block B3, and a fourth rectangular sub-block B4, thereby further forming i) a boundary between the first sub-block Bl and the third sub-block B3, a boundary between the second sub-block B2 and the fourth sub-block B4, and a boundary between the third sub-block B3 and the fourth sub-block B4.

52. The encoder of claim 51 , wherein the encoder is further adapted to:

apply a deblocking filter to the boundary between the first sub-block Bl and the third sub-block B3 when at least one of the sub-blocks Bl or B3 contains transform coefficients, apply a deblocking filter to the boundary between the second sub-block B2 and the fourth sub-block B4 when at least one of the sub-blocks B2 or B4 contains transform coefficients, and/or apply a deblocking filter to the boundary between the third sub-block B3 and the fourth sub-block B4 when at least one of the sub-blocks B3 or B4 contains transform coefficients.

Description:
DEBLOCKING OF IMPLICIT TRANSFORM UNIT BOUNDARIES

TECHNICAL FIELD

[001] This disclosure relates to video coding and decoding.

BACKGROUND

[002] A video sequence consists of a series of images where each image consists of one or more components. Each component can be described as a two-dimensional rectangular array of sample values. It is common that an image in a video sequence consists of three components: one luma component Y, where the sample values are luma values, and two chroma components Cb and Cr, where the sample values are chroma values. Other examples components include Y’ Cb Cr, Yuv, and ICTCP. For ICTCP, I is referred to as an“intensity luma” component. In the context of the current disclosure, any luma component (e.g., Y’, Y or I) is referred to as Y or luma. It is common that the dimensions of the chroma components are smaller than the luma components by a factor of two in each dimension. For example, the size of the luma component of an HD image may be 1920x1080 and the chroma components may each have the dimension of 960x540. Components are sometimes referred to as color components.

[003] A block is one two-dimensional array of samples. In video coding, each component is split into blocks and the coded video bitstream comprises a series of blocks. It is common in video coding that an image is split into units, each of which covers a specific area of the image. Each unit consists of blocks from each of the components that make up that specific area and each block is completely included in the unit. The macroblock in H.264 and the Coding Unit (CU) in HE VC are examples of such units.

[004] In HEVC, each picture is partitioned into coding tree units (CTU). A CTU consists of an NxN block of luma samples and two corresponding MxM chroma blocks. A CTU in HEVC is like macroblocks in H.264 and earlier standards, but in contrast to macroblocks, the size of the CTU is configurable. In most instances, however, the CTU size in HEVC is set to 64x64 luma samples. Each CTU can be recursively quadtree split. The root of the quadtree is then associated with the CTU. The quadtree is split until a leaf is reached, which is referred to as the Coding Unit (CU). A CU in HEVC always consist of a luma block with equal height and width. Information regarding how each CTU is split is conveyed in the bitstream. Furthermore, the CU is the root node of two other trees, a prediction tree comprising prediction units (PUs) as nodes and a transform tree comprising transform units (TUs) as nodes. Some decoding processes are performed on the CU level, the PU level, and the TU level. Boundaries between adjacent PUs and boundaries between adjacent TUs are filtered by a deblocking filter to reduce discontinuities between TUs and PUs. In HEVC there exists two kinds of prediction types for a PU: (1) intra prediction which only uses prediction from previously decoded samples of the current picture for prediction and (2) inter prediction which uses prediction from at least one previously decoded picture.

[005] In HEVC, deblocking is first applied on vertical boundaries and then on horizontal boundaries. The boundaries are either TU boundaries or PU boundaries. To enable parallel friendly deblocking, the deblocking is performed on an 8x8 sample grid.

[006] A deblocking filter strength parameter (bs) is set for each boundary. If the value of bs for a boundary is larger than 0, then deblocking may be applied to the boundary. The strength of the applied filtering depends on how large the boundary strength is. For example, in a first step is it checked whether any of the blocks at a PU boundary between the blocks is an intra predicted block. If the PU boundary between the blocks is an intra predicted block, the deblocking filter strength parameter for the PU boundary is set to 2 (e.g., the bs is set to 2). If both blocks use inter prediction, but the blocks use different reference frames or have significantly different motion vectors, the deblocking filter strength parameter for the PU boundary is set to 1 (e.g., the bs is set to 1). It is also checked whether a TU boundary between the blocks has non-zero transform coefficients in at least one of the blocks (e.g., code block flag CBF equal to 1). If so, then the deblocking filter strength parameter for the TU boundary is set to 1 (e.g., the bs is set to 1).

[007] Accordingly, it is first checked whether a boundary strength (bs) is larger than 0 to determine whether deblocking should be applied. To reduce and/or avoid removing natural structures when deblocking, it is checked whether there are any natural structures on respective sides of the boundary for luma. In HEVC, gradient calculations are used on respective sides of the boundary using the following inequality: abs(p0 -2*pl+p2) + abs(q0-2*ql+q2) < beta, where beta is a parameter based on the quantization parameter for the block and pO, pl, to p2 are samples on one side of the block boundary and qO, ql, to q2 are samples on the other side of the block boundary. The condition is checked at two positions along the boundary, and if both conditions are fulfilled, then the luma samples are deblocked for that sample part of the boundary. Chroma boundaries may always be filtered if one any of the neighbouring blocks are intra coded.

[008] In the current draft of the specification for H.266 (WC draft 1 JVET-JlOOlvl)

(hereinafter referred to as“VCC”), a coding tree unit (CTU) is similar to the CTU in HEVC with the difference that the CTU in VCC has a size of 128x128 luma samples. In WC, the CTU can be split more flexibly such that a resulting CU may comprise a rectangular luma block. In WC, there is no prediction tree as in HEVC. However, a CU in WC can implicitly be divided into a plurality of TUs. Implicit TUs, however, only appear when the CU size has a width or height larger than a maximum transform size. If the CU size does not have a width or height larger than the maximum transform size, the CU does not have a prediction tree or a transform tree. In WC, deblocking is first applied on vertical CU boundaries and then on horizontal CU boundaries and the deblocking is based on HEVC deblocking.

SUMMARY

[009] In the current draft of the specification for H.266 (WC draft 1) only block boundaries corresponding to a CU boundary are deblocked. The VVC draft 1, however, dose not account for the problem of blocking artifacts that can appear at implicit TU boundaries.

[0010] As shown above, there remains a need for an improved method of deblocking application.

[0011] Accordingly, certain embodiments disclosed herein provide a method of applying deblocking on implicit vertical TU boundaries when the CU width is larger than the maximum TU width and applying deblocking on implicit horizontal TU boundaries when the CU height is larger than the maximum TU height. Some exemplary embodiments include HEVC deblocking and deblocking using longer filters.

[0012] The embodiments disclosed herein may be applied on a single color component or on all color components. Examples of color components include, but are not limited to, luma, Cb and Cr.

[0013] In one aspect, there is provided a method performed by a decoder for decoding a video picture. The method includes the decoder splitting a luma component of a coding unit or block into a first block a second block of Z luma samples vertically and widthY luma samples horizontally without decoding any syntax element indicating such a split on a block level, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightY luma samples vertically and widthY luma samples horizontally, the heightY is larger than N, the widthY is equal to or smaller than N, and Z is equal to the widthY/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more luma samples on the first block side of the boundary and one or more luma samples on the second block side of the boundary.

[0014] In another aspect, there is provided a method performed by an encoder to encode a video picture. The method includes the encoder partitioning a video picture into multiple coding units; splitting a luma component of a coding unit or block into a first block and a second block of Z luma samples vertically and widthY luma samples horizontally without including any syntax element indicating such a split on a block level into the encoded video picture, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightY luma samples vertically and widthY luma samples horizontally, the heightY is larger than N, the widthY is equal to or smaller than N, and Z is equal to heightY/2; including at least one transform coefficient into the encoded video picture for one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more luma samples on the first block side of the boundary and one or more luma samples on the second block side of the boundary.

[0015] In another aspect, there is provided a method performed by a decoder to decode a video picture. The method includes the decoder splitting a luma component of a coding unit or block into a first block a second block of Z luma samples horizontally and heightY luma samples vertically without decoding any syntax element indicating such a split on the block level, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightY luma samples vertically and widthY luma samples horizontally, the heightY is larger than N, the widthY is equal to or smaller than N, and Z is equal to the widthY/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more luma samples on the first block side of the boundary and one or more luma samples on the second block side of the boundary.

[0016] In another aspect, there is provided a method performed by a decoder to decode a video picture. The method includes the decoder splitting a chroma component of a coding unit or block into a first block a second block of Z chroma samples vertically and widthC chroma samples horizontally without decoding any syntax element indicating such a split on a block level, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightC chroma samples vertically and widthC chroma samples horizontally, the heightC is larger than N, the widthC is equal to or smaller than N, and Z is equal to heightC/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more chroma samples on the first block side of the boundary and one or more chroma samples on the second block side of the boundary.

[0017] In another aspect, there is provided a method performed by an encoder to encode a video picture. The method includes the encoder partitioning a video picture into multiple coding units; splitting a chroma component of a coding unit or block into a first block and a second block of Z chroma samples vertically and widthC chroma samples horizontally without including any syntax element indicating such a split on a block level into the encoded video picture, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightC chroma samples vertically and widthC chroma samples horizontally, heightC is larger than N, widthC is equal to or smaller than N, and Z is equal to the heightC/2; including at least one transform coefficient into the encoded video picture for one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more chroma samples on the first block side of the boundary and one or more chroma samples on the second block side of the boundary. [0018] In another aspect, there is provided a method performed by a decoder to decode a video picture. The method includes the decoder splitting a chroma component of a coding unit or block into a first block a second block of Z chroma samples horizontally and heightC chroma samples vertically without decoding any syntax element indicating such a split on the block level, wherein a maximum size for a video picture is set equal to the integer value N, the coding unit or block in the video picture comprises a size of heightC chroma samples vertically and widthC chroma samples horizontally, the heightC is larger than N, the widthC is equal to or smaller than N, and Z is equal to heightC/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more chroma samples on the first block side of the boundary and one or more chroma samples on the second block side of the boundary.

[0019] The embodiments disclosed herein provide a significant reduction of

discontinuities across implicit TU boundaries. This can substantially improve the subjective quality.

BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.

[0021] Figure 1 illustrates split CU or blocks according to some embodiments.

[0022] Figure 2 is a flow chart illustrating a process according to one embodiment.

[0023] Figure 3 is a flow chart illustrating a process according to one embodiment.

[0024] Figure 4 is a flow chart illustrating a process according to one embodiment.

[0025] Figure 5 is a flow chart illustrating a process according to one embodiment.

[0026] Figure 6 is a flow chart illustrating a process according to one embodiment.

[0027] Figure 7 is a flow chart illustrating a process according to one embodiment.

[0028] Figure 8 shows exemplary pictures according to some embodiments.

[0029] Figure 9 is a block diagram of an encoder according to one embodiment.

[0030] Figure 10 is a block diagram of a decoder according to one embodiment.

[0031] Figure 1 1 is a diagram showing functional units of a decoder according to some embodiments. [0032] Figure 12 is a diagram showing functional units of an encoder according to some embodiments.

[0033] Figure 13 illustrates a computer program product according to an embodiment.

DETAILED DESCRIPTION

[0034] Certain embodiments disclosed herein provide a method for video encoding or decoding in which CU or block boundaries due to large implicit splits are filtered by a deblocking filter. In the context of the current disclosure, a large implicit split indicates a split of a CU or a block that has at least one side that is spatially larger than a set maximum size. The set maximum size is preferably equal to a set maximum transform size. For example, if a set maximum transform size is equal to 64, then any CU or block that has at least one side larger than 64 is implicitly split into a CU or block with both sides equal to or smaller than 64.

[0035] Figure 1 shows a non-exhaustive set of examples where the CU or block before the split has at least one side equal to 128 and the set maximum size is equal to 64 according to some embodiments. In general, there should be a set maximum size equal to N. For a CU or block with one side larger than N, the CU or block is split on one dimension such that the output CU or block does not have any side larger than N according to some embodiments. For a CU or block with both sides larger than N, the CU or block is split along two dimensions such that the output CU or block does not have any side larger than N according to some embodiments. In the case when the largest allowed transform size is smaller, for example, 32, a block of 128x64 may first be split along both dimensions, thereby producing four blocks of size 64x32. Each of the four blocks may be further split along one dimension, where each split produces two blocks of size 32x32.

[0036] As noted above, an implicit split is a result of a comparison between the size of the CU or block and the maximum size. Accordingly, there is no syntax element conveying the split information regarding an implicit split for a particular block. Instead, the maximum size could for example either be set to a fixed value in a video coding specification, or alternatively signaled in the bitstream according to some embodiments. If the maximum size is signaled in the bitstream, the maximum size is signaled once for multiple CUs or blocks, such as once per video clip, once per set of pictures, once per picture or once per slice. [0037] A decoder does not decode or parse any syntax element indicating an implicit split for a particular CU or block. Instead, the decoder derives the split by comparing the size of the particular CU or block with the maximum size indicated in the bitstream or set as a fixed value in the video coding specification. Similarly, an encoder does not encode or signal any syntax element indicating an implicit split for a particular CU or block on the block level. That is, an encoder does not indicate an implicit split in block level information. Instead, the encoder derives the split by comparing the size of the particular CU or block with the maximum size indicated in the bitstream or set as a fixed value in the video coding specification. In the context of the current disclosure, block level information comprises syntax elements that are

sent/encoded and received/decoded on a block-by-block basis. One example of a block level syntax element contained in block level information is a transform coefficient. Another example of a block level syntax element is a delta quantizer value.

[0038] In some embodiments, the implicit split may take place after the regular CU split process. In the context of the current disclosure, a regular CU split indicates a split that is part of splitting the CTU into CUs where the split is signalled by one or more syntax elements in the coded video picture on a block-by-block basis. For instance, a picture may be partitioned into CTUs of size 128x128. In this instance, the maximum size is assumed to be equal to a value less than the CTU size, for example 64. As an example, when one CTU is decoded, there may one or more syntax elements in the coded video sequence specifying that the CTU should be split into two CUs of size 128x64. In this example, there are no syntax elements in the coded video sequence indicating that the CU’s need to be split any further. Since 128 is larger than the maximum size 64, the 128x64 CU is implicitly split into two units of size 64x64. In some embodiments, the blocks for each component of the CU may be implicitly split one by one. For example, the luma part of the CU might be a block of size 128x64 and split into two blocks of size 64x64. One chroma part of the CU might be a block of size 64x32 and not implicitly split if one maximum size is used for all components. In some embodiments, a separate maximum size may be specified for chroma (either as one maximum size for all chroma components, or separate maximum size values for each component). For example, the maximum size for chroma may be set to 32. In such embodiments, the chroma block is split into 32x32 blocks. [0039] Then when another CTU is decoded, there is one or more syntax elements in the coded video sequence specifying that the CTU should be split into three CUs of sizes 128cN, 128cM and 128cN, where 2*N+M is equal to 128. Example values of N and M are 32 and 64 respectively, such that the CU sizes becomes 128x32, 128x64 and 128x32. There are no syntax elements in the coded video sequence to split any of the CUs further. Each 128x32 CU is then implicitly split into two units of 64x32 and the 128x64 CU is implicitly split into two units of 64x64. Alternatively, the implicit splits are done on blocks, such that the luma blocks of sizes 128x32 and 128x64 are implicitly split into blocks of sizes 64x32 and 64x64 respectively. The chroma blocks may have the sizes of 64x16 and 64x32. If the maximum size for a particular chroma component is equal to 64, no implicit split of the chroma blocks are done. If the maximum size for a particular chroma component is equal to 32, the chroma blocks are split from 64x16 and 64x32 into blocks of sizes 32x16 and 32x32 respectively.

[0040] It should be noted that the CTU size 128x128 is merely an example and that a

CTU size could be either larger or smaller than that. Likewise, the maximum size could be either larger or smaller than 64. The example above could be either a horizontal split or a vertical split. The regular CU split process can also consist of a series of vertical, horizontal splits as well as quad splits from a block or unit of size 2Nx2N into four blocks or units of size NxN. The vertical or horizontal splits may split one block or unit into 2 or 3 or more blocks or units.

[0041] Figure 2 is a flow chart illustrating a decoding process 200 with vertical implicit split for luma according to some embodiments. The decoding process 200 may be performed by a decoder. In some embodiments, a maximum size for a video picture is set equal to the integer value N, one coding unit or block B in the video picture has a size of heightY luma samples vertically and widthY luma samples horizontally, heightY is larger than N, and widthY is equal to or smaller than N.

[0042] The decoding process 200 for decoding the video picture partitioned into multiple coding units (CUs) may begin with step 202 in which a luma component of the coding unit or block B is split into two blocks Bl and B2 of Z luma samples vertically and widthY luma samples horizontally without decoding any syntax element indicating such a split on the block level. In some embodiments, Z is equal to heightY/2. In step 204, at least one transform coefficient is decoded for block Bl and an inverse transform is applied to block Bl . In additional or alternative step 206, at least one transform coefficient is decoded for block B2 and an inverse transform is applied to block B2. In step 208, a deblocking filter is applied to a boundary between block B 1 and B2 that modifies at least F luma samples on the B 1 side of the boundary and at least F luma samples on the B2 side of the boundary. In some embodiments, the deblocking filter comprises a long deblocking filter.

[0043] In some embodiments, N is equal to 64, heightY is equal to 128, widthY is equal to 64, and F is equal to two. In some embodiments, N is equal to 64, heightY is equal to 128, and widthY is equal to 32. In some embodiments, F is equal to three, five or seven.

[0044] In some embodiments, process 200 includes a further step 210 in which the decoder determines whether the block Bl or block B2 uses intra prediction. In some

embodiments, heightY is smaller than or equal to 2*N.

[0045] Figure 3 is a flow chart illustrating an encoding process 300 with vertical implicit split for luma according to some embodiments. The encoding process 300 may be performed by an encoder.

[0046] The encoding process 300 for encoding a video picture where a maximum size is set equal to the value N may begin with step 302 in which the encoder partitions the video picture into multiple coding units (CUs). In some embodiments, one coding unit or block B in the video picture has a size of heightY luma samples vertically and widthY luma samples horizontally where heightY is larger than N, and widthY is equal to or smaller than N. In step 304, the luma component of coding unit or block B is split into two blocks Bl and B2 of Z luma samples vertically and widthY luma samples horizontally without including any syntax element indicating such a split on the block level into the coded video picture. In some embodiments, Z is equal to heightY/2. In step 306, at least one transform coefficient is included into the coded video picture for block B 1. In additional or alternative step 308, at least one transform coefficient is included into the coded video picture for block B2. In step 310, a deblocking filter is applied to a boundary between block Bl and B2 that modifies at least F luma samples on the Bl side of the boundary and at least F luma samples on the B2 side of the boundary. In some embodiments, the deblocking filter comprises a long deblocking filter. [0047] In some embodiments, N is equal to 64, heightY is equal to 128 and widthY is equal to 64, F is equal to two. In some embodiments, N is equal to 64, heightY is equal to 128 and widthY is equal to 32. In some embodiments, F is three, five or seven.

[0048] In some embodiments, process 300 includes a further step 312 in which the decoder determines whether block B 1 or block B2 uses intra prediction. In some embodiments, heightY is smaller than or equal to 2*N.

[0049] Figure 4 is a flow chart illustrating a decoding process 400 with horizontal implicit split for luma according to some embodiments. The decoding process 400 may be performed by a decoder. In some embodiments, a maximum size for a video picture is set equal to the integer value N, one coding unit or block B in the video picture has a size of heightY luma samples vertically and widthY luma samples horizontally, widthY is larger than N, and heightY is equal to or smaller than N.

[0050] The decoding process 400 for decoding the video picture partitioned into multiple coding units (CUs) may begin with step 402 in which a luma component of coding unit or block B is split into two blocks Bl and B2 of Z luma samples horizontally and heightY luma samples vertically without decoding any syntax element indicating such a split on the block level. In some embodiments, where Z is equal to widthY/2. In step 404, at least one transform coefficient is decoded for block Bl and an inverse transform is applied to block Bl . In additional or alternative step 406, at least one transform coefficient is decoded for block B2 and an inverse transform is applied to block B2. In step 408, a deblocking filter is applied to a boundary between block Bl and B2 that modifies at least F luma samples on the Bl side of the boundary and at least F luma samples on the B2 side of the boundary. In some embodiments, the deblocking filter comprises a long deblocking filter.

[0051] In some embodiments, N is equal to 64, heightY is equal to 128, widthY is equal to 64, and F is equal to two. In some embodiments, N is equal to 64, heightY is equal to 128, and widthY is equal to 32. In some embodiments, F is equal to three, five or seven.

[0052] In some embodiments, process 400 includes a further step 410 in which the decoder determines whether the block Bl or B2 block uses intra prediction. In some

embodiments, widthY is smaller than or equal to 2*N. [0053] Figure 5 is a flow chart illustrating a decoding process 500 with vertical implicit split for chroma according to some embodiments. The decoding process 500 may be performed by a decoder. In some embodiments, a maximum size for a video picture is set equal to the integer value N, one coding unit or block B in the video picture has a size of heightC chroma samples vertically and widthC chroma samples horizontally, heightC is larger than N, and widthC is equal to or smaller than N.

[0054] The decoding process 500 for decoding the video picture partitioned into multiple coding units (CUs) may begin with step 502 in which a chroma component of coding unit or block B is split into two blocks Bl and B2 of Z chroma samples vertically and widthC chroma samples horizontally without decoding any syntax element indicating such a split on the block level. In some embodiments, Z is equal to heightC/2. In step 504, at least one transform coefficient is decoded for block Bl and an inverse transform is applied to block Bl . In additional or alternative step 506, at least one transform coefficient is decoded for block B2 and an inverse transform is applied to block B2. In step 508, a deblocking filter is applied to a boundary between block Bl and B2 that modifies at least F chroma samples on the Bl side of the boundary and at least F chroma samples on the B2 side of the boundary. In some embodiments, the deblocking filter comprises a long deblocking filter.

[0055] In some embodiments, N is equal to 32, heightC is equal to 64 and widthC is equal to 32, F is equal to one. In another example, N is equal to 32, heightC is equal to 64 and widthC is equal to 16.

[0056] In some alternative embodiments, the process 500 may include a step in which the decoder determines whether block Bl or block B2 uses intra prediction instead of steps 504 and 506. In some embodiments, the process 500 may include a step in which the decoder determines whether block Bl or block B2 uses intra prediction in addition to steps 504 and 506. In some embodiments, heightC is smaller than or equal to 2*N.

[0057] Figure 6 is a flow chart illustrating an encoding process 600 with vertical implicit split for chroma according to some embodiments. The encoding process 600 may be performed by an encoder.

[0058] The encoding process 600 for encoding a video picture where a maximum size is set equal to the value N may begin with step 602 in which the encoder partitions the video picture into multiple coding units (CUs). In some embodiments, one coding unit or block B in the video picture has a size of heightC chroma samples vertically and widthC chroma samples horizontally, heightC is larger than N, and widthC is equal to or smaller than N. In step 604, the chroma component of coding unit or block B is split into two blocks Bl and B2 of Z chroma samples vertically and widthC chroma samples horizontally without including any syntax element indicating such a split on a block level into the encoded video picture into the coded video picture. In some embodiments, Z is equal to heightC/2. In step 606, at least one transform coefficient is included into the coded video picture for block Bl . In additional or alternative step 608, at least one transform coefficient is included into the coded video picture for block B2. In step 610, a deblocking filter is applied to a boundary between block Bl and B2 that modifies at least F chroma samples on the Bl side of the boundary and at least F chroma samples on the B2 side of the boundary. In some embodiments, the deblocking filter comprises a long deblocking filter.

[0059] In some embodiments, N is equal to 32, heightC is equal to 64 and widthC is equal to 32, F is equal to one. In another example, N is equal to 32, heightC is equal to 64 and widthC is equal to 16.

[0060] In some embodiments, process 600 includes a further step 612 in which the encoder determines whether block B 1 or block B2 uses intra prediction. In some embodiments, heightC is smaller than or equal to 2*N.

[0061] Figure 7 is a flow chart illustrating a decoding process 700 with horizontal implicit split for chroma according to some embodiments. The decoding process 700 may be performed by a decoder. In some embodiments, a maximum size for a video picture is set equal to the integer value N, one coding unit or block B in the video picture has a size of heightC chroma samples vertically and widthC chroma samples horizontally, heightC is larger than N, and widthC is equal to or smaller than N.

[0062] The decoding process 700 for decoding the video picture partitioned into multiple coding units (CUs) may begin with step 702 in which a chroma component of B is split into two blocks Bl and B2 of Z chroma samples horizontally and heightC chroma samples vertically without decoding any syntax element indicating such a split on the block level. In some embodiments, where Z is equal to heightC/2. In step 704, at least one transform coefficient is decoded for block B 1 and an inverse transform is applied to block B 1. In additional or alternative step 706, at least one transform coefficient is decoded for block B2 and an inverse transform is applied to block B2. In step 708, a deblocking filter is applied to a boundary between block Bl and B2 that modifies at least F chroma samples on the Bl side of the boundary and at least F chroma samples on the B2 side of the boundary. In some embodiments, the deblocking filter comprises a long deblocking filter.

[0063] In some embodiments, N is equal to 32, heightC is equal to 64 and widthC is equal to 32, F is equal to one. In another example, N is equal to 32, heightC is equal to 64 and widthC is equal to 16.

[0064] In some alternative embodiments, the process 700 may include a step in which the decoder determines whether block Bl or block B2 uses intra prediction instead of steps 704 and 706. In some embodiments, the process 700 may include a step in which the decoder determines whether block Bl or block B2 uses intra prediction in addition to steps 504 and 506. In some embodiments, widthC is smaller than or equal to 2*N.

[0065] Table 1 below illustrates pseudo code directed to implementing embodiments for luma.

TABLE 1

[0066] In WC the maximum CU size is 128x128 and the max TU size is 64x64. The maximum size N is therefore equal to 64. When the CU size is 128x128 and there are some transform coefficients to decode, the CU is divided into four non-overlapping 64x64 implicit TUs by an implicit split. A CU can be split into rectangular blocks such that the CU size before any implicit split is equal to 128cN or Nxl28 where N for example is 4, 8, 16, 32, 64. The CU is then implicitly split into two 64xN TUs or two Nx64 TUs when there are transform coefficients in the CU.

[0067] The pseudo code shown in Table 1 illustrates changes to VVC to ensure that the boundaries between blocks B 1 and B2 resulting from the implicit split described above may be deblocked by a deblocking filter when at least one of the blocks B 1 and B2 has non-zero transform coefficients according to some embodiments.

[0068] As shown in Table 1 , iEdgeOffset displaces the deblocking filter 64 samples from the CU boundary of a luma component where the displacement is expressed in units of 4 samples such that deblocking can be applied on the implicit TU boundary in luma. In some embodiments, edgeDir is either a horizontal boundary (EDGE HOR) or a vertical boundary (EDGE VER) and cu is the current CU.

[0069] In some embodiments, WC only uses HEVC filters and decisions. In some embodiments, longer filters and decisions may be used, and especially for large blocks when the texture is smooth. [0070] Figure 8 illustrates an example of the WC implementing the pseudo code shown in Table 1 and an example of the WC not implementing the pseudo code. In this instance, longer filters are used for both examples shown in Figure 8. More specifically, Figure 8 shows an example of the ITUDB improvement on LUMA for a same CU partition compared to an originally decoded LUMA.

[0071] Table 2 illustrates pseudo code directed to implementing embodiments for chroma in 4:2:0.

[0072] In WC the max CU size is 128x128 which corresponds to 64x64 chroma component in 4:2:0 and the max TU size for chroma is 32x32. The maximum size for chroma is therefore equal to 32. When the CU size is 128x128 and there are some transform coefficients to decode, the CU is divided into four non-overlapping 32x32 implicit TUs by an implicit split. A CU can be split into rectangular blocks such that block size in a chroma component before any implicit split is equal to 64xN and Nx64 where N for example is 4, 8, 16, 32. The chroma block is then implicitly split into two 32xN or two Nx32 TUs.

[0073] The pseudo code shown in Table 2 illustrates changes to VVC to ensure that the boundaries between blocks B 1 and B2 resulting from the implicit split described above may be deblocked by a deblocking filter when at least one of the block Bl and B2 is intra predicted.

[0074] As shown in Table 2, iEdgeOffset displaces the deblocking filter 32 chroma samples (64 luma samples for 4:2:0) from CU boundary of a chroma component where the displacement is expressed in units of 4 samples such that deblocking can be applied on implicit TU boundary in chroma. In some embodiments, edgeDir is either a horizontal boundary

(EDGE HOR) or a vertical boundary (EDGE VER) and cu is the current CU.

[0075] In some embodiments, iEdgeOffset may also be expressed in chroma samples.

For 4:2:0, this would correspond to 32/4 instead of 64/4.

[0076] In some embodiments, in WC only boundaries for intra coded CUs are deblocked and only one sample on each side of a boundary is deblocked. In some embodiments, WC this may also include deblocking of inter coded CUs and deblocking using longer filters.

[0077] Figure 9 is a block diagram of an encoder 901 according to some embodiments.

As shown in Figure 9, encoder 901 may comprise: a processing circuit (PC) 902, which may include one or more processors (P) 955 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field- programmable gate arrays (FPGAs), and the like); a network interface 948 comprising a transmitter (Tx) 945 and a receiver (Rx) 947 for enabling encoder 901 to transmit data to and receive data from other nodes connected to a network 90 (e.g., an Internet Protocol (IP) network) to which network interface 948 is connected; circuitry 903 (e.g., radio transceiver circuitry comprising an Rx 905 and a Tx 906) coupled to an antenna system 904 for wireless communication with UEs); and local storage unit (a.k.a.,“data storage system”) 908, which may include one or more non-volatile storage devices and/or one or more volatile storage devices (e.g., random access memory (RAM)). In embodiments where PC 902 includes a programmable processor, a computer program product (CPP) 941 may be provided. CPP 941 includes a computer readable medium (CRM) 942 storing a computer program (CP) 943 comprising computer readable instructions (CRI) 944. CRM 942 may be a non-transitory computer readable medium, such as, but not limited, to 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 944 of computer program 943 is configured such that when executed by data processing apparatus 902, the CRI causes encoder 901 to perform steps described herein (e.g., steps described herein with reference to the flow charts and/or message flow diagrams). In other embodiments, encoder 901 may be configured to perform steps described herein without the need for code. That is, for example, PC 902 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.

[0078] Figure 10 is a block diagram of decoder 1001 according to some embodiments.

As shown in Figure 10, decoder 1001 may comprise: a processing circuit (PC) 902, which may include one or more processors (P) 955 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field- programmable gate arrays (FPGAs), and the like); a network interface 948 comprising a transmitter (Tx) 945 and a receiver (Rx) 947 for enabling decoder 1001 to transmit data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which network interface 948 is connected; circuitry 903 (e.g., radio transceiver circuitry comprising an Rx 905 and a Tx 906) coupled to an antenna system 904 for wireless communication with UEs); and local storage unit (a.k.a.,“data storage system”) 908, which may include one or more non-volatile storage devices and/or one or more volatile storage devices (e.g., random access memory (RAM)). In embodiments where PC 902 includes a programmable processor, a computer program product (CPP) 941 may be provided. CPP 941 includes a computer readable medium (CRM) 942 storing a computer program (CP) 943 comprising computer readable instructions (CRI) 944. CRM 942 may be a non-transitory computer readable medium, such as, but not limited, to 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 944 of computer program 943 is configured such that when executed by data processing apparatus 902, the CRI causes decoder 1001 to perform steps described herein (e.g., steps described herein with reference to the flow charts and/or message flow diagrams). In other embodiments, decoder 1001 may be configured to perform steps described herein without the need for code. That is, for example, PC 902 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.

[0079] Figure 1 1 is a diagram showing functional units of decoder 1001 according to some embodiments. As shown in Figure 1 1 , decoder 1001 includes a splitting unit 1102 for splitting a luma component of the coding unit or block B into two blocks Bl and B2 of Z luma samples vertically and widthY luma samples horizontally without decoding any syntax element indicating such a split on the block levelforming a first prediction of the vector; a first decoding unit 1104 for decoding at least one transform coefficient for block Bl ; a first applying unit 1 106 for applying an inverse transform to block Bl ; a second decoding unit 1 108 for decoding at least one transform coefficient for block B2; a second applying unit 1 110 for applying an inverse transform to block B2; a third applying unit 1 112 for applying a deblocking filter to a boundary between block Bl and B2 that modifies at least F luma samples on the Bl side of the boundary and at least F luma samples on the B2 side of the boundary. In some embodiments, the splitting unit 1102 is for splitting a luma component of coding unit or block B into two blocks Bl and B2 of Z luma samples horizontally and heightY luma samples vertically without decoding any syntax element indicating such a split on the block level.

[0080] In some embodiments, the splitting unit 1102 is for splitting a chroma component of coding unit or block B into two blocks Bl and B2 of Z chroma samples vertically and widthC chroma samples horizontally without decoding any syntax element indicating such a split on the block level; and the third applying unit 11 12 is for applying a deblocking filter to a boundary between block Bl and B2 that modifies at least F chroma samples on the Bl side of the boundary and at least F chroma samples on the B2 side of the boundary. In some embodiments, the splitting unit 1 102 is for splitting a chroma component of B into two blocks B l and B2 of Z chroma samples horizontally and heightC chroma samples vertically without decoding any syntax element indicating such a split on the block level.

[0081] Figure 12 is a diagram showing functional units of encoder 901 according to some embodiments. As shown in Figure 12, encoder 901 includes a partitioning unit 1202 for partitioning the video picture into multiple coding units; a splitting unit 1204 for splitting the luma component of coding unit or block B into two blocks B l and B2 of Z luma samples vertically and widthY luma samples horizontally without including any syntax element indicating such a split on the block level into the coded video picture; a first including unit 1206 for including at least one transform coefficient into the coded video picture for block B l ; a second including unit 1208 for including at least one transform coefficient into the coded video picture for block B2; an applying unit 1210 for applying a deblocking filter to a boundary between block Bl and B2 that modifies at least F luma samples on the B l side of the boundary and at least F luma samples on the B2 side of the boundary. In some embodiments, the splitting unit 1204 is for splitting a chroma component of coding unit or block B into two blocks Bl and B2 of Z chroma samples vertically and widthC chroma samples horizontally without including any syntax element indicating such a split on a block level into the coded video picture.

[0082] Summary of some embodiments

[0083] Al. A method for decoding a video picture, the method comprising: splitting a luma component of a coding unit or block into a first block a second block of Z luma samples vertically and widthY luma samples horizontally without decoding any syntax element indicating such a split on a block level, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightY luma samples vertically and widthY luma samples horizontally, the heightY is larger than N, the widthY is equal to or smaller than N, and Z is equal to the widthY/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more luma samples on the first block side of the boundary and one or more luma samples on the second block side of the boundary.

[0084] B 1. A method for encoding a video picture, the method comprising: partitioning a video picture into multiple coding units; splitting a luma component of a coding unit or block into a first block and a second block of Z luma samples vertically and widthY luma samples horizontally without including any syntax element indicating such a split on a block level into the encoded video picture, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of height Y luma samples vertically and widthY luma samples horizontally, the heightY is larger than N, the widthY is equal to or smaller than N, and Z is equal to heightY/2; including at least one transform coefficient into the encoded video picture for one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more luma samples on the first block side of the boundary and one or more luma samples on the second block side of the boundary.

[0085] Cl . A method for decoding a video picture, the method comprising: splitting a luma component of a coding unit or block into a first block a second block of Z luma samples horizontally and heightY luma samples vertically without decoding any syntax element indicating such a split on the block level, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightY luma samples vertically and widthY luma samples horizontally, the heightY is larger than N, the widthY is equal to or smaller than N, and Z is equal to the widthY/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more luma samples on the first block side of the boundary and one or more luma samples on the second block side of the boundary.

[0086] Dl . A method for decoding a video picture, the method comprising: splitting a chroma component of a coding unit or block into a first block a second block of Z chroma samples vertically and widthC chroma samples horizontally without decoding any syntax element indicating such a split on a block level, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightC chroma samples vertically and widthC chroma samples horizontally, the heightC is larger than N, the widthC is equal to or smaller than N, and Z is equal to heightC/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more chroma samples on the first block side of the boundary and one or more chroma samples on the second block side of the boundary. [0087] El . A method for encoding a video picture, the method comprising: partitioning a video picture into multiple coding units; splitting a chroma component of a coding unit or block into a first block and a second block of Z chroma samples vertically and widthC chroma samples horizontally without including any syntax element indicating such a split on a block level into the encoded video picture, wherein a maximum size for the video picture is equal to an integer value N, the coding unit or block in the video picture comprises a size of heightC chroma samples vertically and widthC chroma samples horizontally, heightC is larger than N, widthC is equal to or smaller than N, and Z is equal to the heightC/2; including at least one transform coefficient into the encoded video picture for one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more chroma samples on the first block side of the boundary and one or more chroma samples on the second block side of the boundary.

[0088] Fl . A method for decoding a video picture, the method comprising: splitting a chroma component of a coding unit or block into a first block a second block of Z chroma samples horizontally and heightC chroma samples vertically without decoding any syntax element indicating such a split on the block level, wherein a maximum size for a video picture is set equal to the integer value N, the coding unit or block in the video picture comprises a size of heightC chroma samples vertically and widthC chroma samples horizontally, the heightC is larger than N, the widthC is equal to or smaller than N, and Z is equal to heightC/2; decoding at least one transform coefficient for one or more of the first block and the second block; applying an inverse transform to one or more of the first block and the second block; and applying a deblocking filter to a boundary between the first block and the second block that modifies one or more chroma samples on the first block side of the boundary and one or more chroma samples on the second block side of the boundary. Further definitions are provided below.

[0089] Another embodiment includes a method for decoding a coded video picture, where the method includes obtaining a rectangular block B of the coded video picture, wherein the rectangular block B is of size Dl x D2, wherein Dl is greater than N and N is a predetermined maximum transform size.

The method also includes determining that Dl is greater than N, and, after determining that Dl is greater than N, splitting the block B into at least a first rectangular sub-block Bl and a second rectangular sub block B2, thereby forming a boundary between the first sub-block Bl and the second sub-block B2, wherein the sub-block Bl is of size N x D2 or N x N, and wherein the sub-block B2 is of size N x D2 or N x N. The method also includes applying a deblocking filter to the boundary between the first sub-block Bl and the second sub-block B2 when at least one of the sub-blocks Bl or B2 contains transform coefficients, wherein the deblocking filter modifies one or more samples on the first block side of the boundary and one or more samples on the second block side of the boundary. In another embodiment there is provided a decoder adapted to perform this method.

[0090] Another embodiment includes a method for encoding a video picture to produce an encoded video picture, where the method includes splitting the video picture into multiple blocks, the multiple blocks including a first rectangular block B, wherein the rectangular block B is of size Dl x D2, wherein Dl is greater than N, and N is a predetermined maximum transform size. The method also includes determining that Dl is greater than N, and, after determining that Dl is greater than N, splitting the block B into a first rectangular sub-block B 1 and a second rectangular sub-block B2, thereby forming a boundary between the first sub-block Bl and the second sub-block B2, wherein the sub-block Bl is of size N x D2 or N x N and the sub-block B2 is of size N x D2 or N x N. The method also includes including in the encoded video picture at least one transform coefficient for sub-block Bl and/or sub block B2. The method further includes applying a deblocking filter to the boundary between the first sub block B 1 and the second sub-block B2 when at least one of the sub-blocks B 1 or B2 contains transform coefficients, wherein the deblocking filter modifies one or more samples on the first block side of the boundary and one or more samples on the second block side of the boundary. In another embodiment there is provided an encoder adapted to perform this method.

[0091] Another embodiment includes a computer program 1310 (see FIG. 13), comprising instructions which, when performed by a processing circuit, cause the processing circuit to carry out the method according to any one of the above described method embodiments. In one embodiment, a carrier 1320 comprises the above mentioned computer program 1310, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium.

[0092] In the above-description of various embodiments of present inventive concepts, it is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of present inventive concepts. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which present inventive concepts belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein. [0093] When an element is referred to as being "connected", "coupled", "responsive", or variants thereof to another element, it can be directly connected, coupled, or responsive to the other element or intervening elements may be present. In contrast, when an element is referred to as being "directly connected", "directly coupled", "directly responsive", or variants thereof to another element, there are no intervening elements present. Like numbers refer to like elements throughout. Furthermore, "coupled", "connected", "responsive", or variants thereof as used herein may include wirelessly coupled, connected, or responsive. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Well-known functions or constructions may not be described in detail for brevity and/or clarity. The term "and/or" includes any and all combinations of one or more of the associated listed items.

[0094] It will be understood that although the terms first, second, third, etc. may be used herein to describe various elements/operations, these elements/operations should not be limited by these terms. These terms are only used to distinguish one element/operation from another element/operation. Thus a first element/operation in some embodiments could be termed a second element/operation in other embodiments without departing from the teachings of present inventive concepts. The same reference numerals or the same reference designators denote the same or similar elements throughout the specification.

[0095] As used herein, the terms "comprise", "comprising", "comprises", "include",

"including", "includes", "have", "has", "having", or variants thereof are open-ended, and include one or more stated features, integers, elements, steps, components or functions but does not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions or groups thereof. Furthermore, as used herein, the common abbreviation "e.g.", which derives from the Latin phrase "exempli gratia," may be used to introduce or specify a general example or examples of a previously mentioned item, and is not intended to be limiting of such item. The common abbreviation "i.e.", which derives from the Latin phrase "id est," may be used to specify a particular item from a more general recitation.

[0096] Example embodiments are described herein with reference to block diagrams and/or flowchart illustrations of computer-implemented methods, apparatus (systems and/or devices) and/or computer program products. It is understood that a block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by computer program instructions that are performed by one or more computer circuits. These computer program instructions may be provided to a processor circuit of a general purpose computer circuit, special purpose computer circuit, and/or other programmable data processing circuit to produce a machine, such that the instructions, which execute via the processor of the computer and/or other programmable data processing apparatus, transform and control transistors, values stored in memory locations, and other hardware components within such circuitry to implement the functions/acts specified in the block diagrams and/or flowchart block or blocks, and thereby create means (functionality) and/or structure for implementing the functions/acts specified in the block diagrams and/or flowchart block(s).

[0097] These computer program instructions may also be stored in a tangible computer- readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the functions/acts specified in the block diagrams and/or flowchart block or blocks. Accordingly, embodiments of present inventive concepts may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor such as a digital signal processor, which may collectively be referred to as "circuitry," "a module" or variants thereof.

[0098] It should also be noted that in some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Moreover, the functionality of a given block of the flowcharts and/or block diagrams may be separated into multiple blocks and/or the functionality of two or more blocks of the flowcharts and/or block diagrams may be at least partially integrated. Finally, other blocks may be added/inserted between the blocks that are illustrated, and/or blocks/operations may be omitted without departing from the scope of inventive concepts. Moreover, although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows.

[0099] Many variations and modifications can be made to the embodiments without substantially departing from the principles of the present inventive concepts. All such variations and modifications are intended to be included herein within the scope of present inventive concepts. Accordingly, the above disclosed subject matter is to be considered illustrative, and not restrictive, and the examples of embodiments are intended to cover all such modifications, enhancements, and other embodiments, which fall within the spirit and scope of present inventive concepts. Thus, to the maximum extent allowed by law, the scope of present inventive concepts are to be determined by the broadest permissible interpretation of the present disclosure including the examples of embodiments and their equivalents, and shall not be restricted or limited by the foregoing detailed description.