Video decoding method, video encoding method, and method for providing bitstream containing video data
By dividing the current block into sub-blocks and applying intra prediction mode and deblocking filtering technology in video encoding, the problem of the distance between the reference sample and the current block sample in intra prediction is solved, improving the accuracy and efficiency of video encoding, reducing block artifacts, and improving image quality.
Patent Information
- Application Number
- CN202510737682.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-12
- Filing Date
- 2020-03-12
- Publication Date
- 2025-07-11
AI Technical Summary
When existing video encoding technology processes high-resolution and high-frame rate videos, the distance between the reference sample and the current block sample in intra prediction is relatively far, resulting in a decrease in prediction accuracy. A more efficient intra prediction method is needed to improve encoding efficiency and image quality.
The current block is divided into multiple sub-blocks, and the grid is set at regular intervals in horizontal or vertical directions. The sub-blocking is reconstructed through intra prediction mode, and deblocking filtering is performed at the boundaries between sub-blocks to improve the proximity between adjacent samples and current samples.
Improve the prediction accuracy and encoding efficiency of video encoding, reduce block artifacts, and improve video quality.
Smart Images

Figure CN120302040A_ABST
Abstract
Description
[0001] This application is a divisional application of a PCT patent application entering China, with the Chinese patent application number 202080035238.1, the invention title "Video Decoding Method, Video Encoding Method, and Method for Providing a Bitstream Containing Video Data", and the filing date of March 12, 2020.
[0002] Cross - reference to related applications
[0003] This application claims the priority of Korean Patent Application No. 10 - 2019 - 0028356, filed on March 12, 2019, the entire content of which is incorporated herein by reference. Technical field
[0004] In some embodiments, the present invention relates to the encoding and decoding of video. More specifically, the present invention relates to a method and apparatus for intra - prediction, in which a prediction unit is divided into sub - units and prediction is performed in the sub - units. Background art
[0005] Since video data has a larger data volume compared to audio data or still image data, a large amount of hardware resources (including memory) are required to store or transmit the data in its original form before compression processing.
[0006] Accordingly, before a decoder can receive, decompress, and reproduce compressed video data, storing or transmitting video data generally involves compressing it using an encoder. Existing video compression technologies include H.264 / AVC and High Efficiency Video Coding (HEVC), and the High Efficiency Video Coding (HEVC) improves the coding efficiency of H.264 / AVC by approximately 40%.
[0007] However, the continuous increase in the size, resolution, and frame rate of video images and the resulting increase in the amount of data to be encoded require a new and excellent compression technology with better improvement in coding efficiency and higher improvement in image quality compared to existing compression technologies.
[0008] On the other hand, in intra prediction, prediction is performed using previously reconstructed samples located near the current block, where the neighboring samples used for intra prediction are referred to as reference samples. Generally, intra prediction uses reference samples to maximize the prediction of all samples in the current block. For example, for a 16×16 block, the 256 sample values belonging to the 16×16 block are predicted by using their neighboring samples. Due to the spatial correlation in the video, the closer the current block samples are to the reference samples, the better the prediction result is usually. Therefore, the current block samples close to the reference samples will have accurate prediction values, while the current block samples far from the reference samples will result in inaccurate prediction values. Summary of the Invention
[0009] Technical Problem
[0010] The present invention generally aims to provide an intra prediction technique that divides a prediction unit into sub-units to place the reconstructed neighboring samples for predicting the current sample closer to the current sample to some extent, and predicts the sub-units of the block by using a common intra prediction mode.
[0011] Means for Solving the Problem
[0012] At least one aspect of the present invention provides a video decoding method for reconstructing a current block using intra prediction, the method comprising: a step of determining whether to divide the current block into a plurality of sub-blocks; when the current block is divided into a plurality of sub-blocks, a step of determining the division direction between the horizontal division direction and the vertical division direction of the current block and the number of sub-blocks based on the division information decoded from the bitstream and the width and height of the current block; a step of reconstructing the current block by sequentially reconstructing the sub-blocks specified according to the division direction and the number of sub-blocks by using intra prediction; a step of setting a grid of N samples at regular intervals in the horizontal and vertical directions, and performing deblocking filtering on the boundaries that coincide with the boundaries of the grid in the boundaries between the sub-blocks of the current block.
[0013] Another aspect of the present invention provides a video decoding apparatus for reconstructing a current block using intra prediction. The video decoding apparatus comprises: means for determining whether to divide the current block into a plurality of sub-blocks; means for determining, when the current block is divided into a plurality of sub-blocks, the division direction between the horizontal division direction and the vertical division direction of the current block and the number of sub-blocks based on the division information decoded from the bitstream and the width and height of the current block; means for reconstructing the current block by sequentially reconstructing the sub-blocks specified according to the division direction and the number of sub-blocks by using intra prediction; means for setting a grid of N samples at regular intervals in the horizontal and vertical directions, and performing deblocking filtering on the boundaries that coincide with the boundaries of the grid in the boundaries between the sub-blocks in the current block. Brief Description of the Drawings
[0014] Figure 1 is a block diagram showing a video encoding apparatus capable of implementing the technology of the present invention.
[0015] Figure 2 is a schematic diagram for explaining a method of dividing a block by using a QTBTTT structure.
[0016] Figure 3a is a schematic diagram showing a plurality of intra prediction modes.
[0017] Figure 3b is a schematic diagram showing a plurality of intra prediction modes including a wide-angle intra prediction mode.
[0018] Figure 4 is a block diagram showing a video decoding apparatus capable of implementing the technology of the present invention.
[0019] Figures 5a to 5c is a schematic diagram showing types in which a current block can be divided into a plurality of sub-blocks when the current block is intra-prediction encoded according to at least one embodiment of the present invention.
[0020] Figure 6 is a functional block diagram showing an example configuration of an intra prediction unit in a video encoding apparatus according to at least one embodiment of the present invention.
[0021] Figure 7 is a flowchart of a method for intra-prediction encoding a current block of a video performed by a video encoding apparatus according to at least one embodiment of the present invention.
[0022] Figure 8 is a functional block diagram showing an example configuration of an intra prediction unit in a video decoding apparatus according to at least one embodiment of the present invention.
[0023] Figure 9 is a flowchart of a method for decoding an intra-prediction encoded current block from a bitstream of an encoded video performed by a video decoding apparatus according to at least one embodiment of the present invention.
[0024] Figure 10a and Figure 10b is a schematic diagram of an encoded block in which reconstruction is sequentially performed in units of sub-blocks when generating prediction sub-blocks of sub-blocks. Detailed Description
[0025] In the following, some embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, the same reference numerals preferably denote the same elements, although the elements are shown in different drawings. In addition, in the following description of some embodiments, when it is considered that the subject matter of the present invention is blurred, specific descriptions of related known components and functions will be omitted for the sake of clarity and conciseness.
[0026] Figure 1 is a block diagram showing a video encoding device capable of implementing the technology of the present invention. In the following, reference will be made to Figure 1 describe the video encoding device and sub-components of the device.
[0027] The video encoding device may be configured to include: an image segmentation unit 110, a prediction unit 120, a subtractor 130, a transform unit 140, a quantization unit 145, a rearrangement unit 150, an entropy encoding unit 155, an inverse quantization unit 160, an inverse transform unit 165, an adder 170, a filtering unit 180, and a memory 190.
[0028] Each component of the video encoding device may be implemented as hardware or software, or a combination of hardware and software. Additionally, the functions of each component may be implemented by software, and the software functions of each component may be implemented to be executed by a microprocessor.
[0029] Video consists of multiple images. Each image is separately segmented into multiple regions, and encoding is performed on each region. For example, an image is segmented into one or more tiles or / and slices. Here, one or more tiles may be defined as a tile group. Each tile or / and slice is segmented into one or more coding tree units (CTUs). And each CTU is segmented into one or more coding units (CUs) through a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to the CUs included in one CTU is encoded as the syntax of the CTU. Additionally, information commonly applied to all blocks in one slice is encoded as the syntax of the slice header, and information applied to all blocks constituting one image is encoded in the Picture Parameter Set (PPS) or the image header. Furthermore, information commonly referred to by multiple images is encoded in the Sequence Parameter Set (SPS). Additionally, information commonly referred to by one or more SPSs is encoded in the Video Parameter Set (VPS). In the same way, information commonly applied to one tile or tile group may be encoded as the syntax of the tile header or tile group header.
[0030] The image segmentation unit 110 determines the size of a coding tree unit (CTU). Information regarding the size of the CTU (CTU size) is encoded as the syntax of the SPS or PPS, and is transmitted to the video decoding device.
[0031] The image segmentation unit 110 divides each image constituting the video into a plurality of coding tree units (CTUs) having a predetermined size, and then recursively divides the CTUs using a tree structure. A leaf node in the tree structure becomes a coding unit (CU), which is a basic unit for coding.
[0032] The tree structure may be a quadtree (QT), a binary tree (BT), a ternary tree (TT), or a combination of two or more QT structures, BT structures, and TT structures. In the quadtree (QT), an upper-level node (or a parent node) is divided into four lower-level nodes (or child nodes) of the same size. In the binary tree (BT), an upper-level node is divided into two lower-level nodes. In the ternary tree (TT), an upper-level node is divided into three lower-level nodes at a size ratio of 1:2:1. For example, a quadtree plus binary tree (QTBT) structure may be used, or a quadtree plus binary tree ternary tree (QTBTTT) structure may be used. Here, BTTT may be collectively referred to as a multiple-type tree (MTT).
[0033] Figure 2 Shows the QTBTTT segmentation tree structure. As Figure 2 shown, the CTU may first be divided into a QT structure. The quadtree division may be repeated until the size of the divided block reaches the minimum block size (MinQTSize) of the leaf node allowed in the QT. A first flag (QT_split_flag) indicating whether each node of the QT structure is divided into four lower-level nodes is encoded by the entropy coding unit 155 and signaled to the video decoding device. When the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in the BT, it may be further divided into any one or more BT structures or TT structures. In the BT structure and / or TT structure, there may be multiple division directions. For example, there may be two directions of dividing the block of the relevant node horizontally and vertically. As Figure 2As shown, when the MTT splitting starts, the entropy coding unit 155 encodes and signals to the video decoding apparatus a second flag (mtt_split_flag) indicating whether a node is split. If so, the entropy coding unit 155 encodes another flag indicating the splitting direction (vertical or horizontal) and / or a flag indicating the partition or splitting type (binary or ternary) and signals to the video decoding apparatus.
[0034] Alternatively, before encoding a first flag (QT_split_flag) indicating whether each node is split into four lower-layer nodes, a CU splitting flag (split_cu_flag) indicating whether a node is split may be encoded. When the value of the CU splitting flag (split_cu_flag) indicates that no splitting is performed, the block of the corresponding node becomes a leaf node in the splitting tree structure and is used as a coding unit (CU), i.e., a basic unit of encoding. When the value of the CU splitting flag (split_cu_flag) indicates node splitting, the video encoding apparatus starts encoding from the first flag in the above-described manner.
[0035] As another example of the tree structure, when QTBT is used, there may be two types of partitions, including a type that horizontally splits the block of a relevant node into two equally sized blocks (i.e., symmetric horizontal partition) and a type that vertically splits the block of a relevant node into two equally sized blocks (i.e., symmetric vertical partition). What is encoded by the entropy coding unit 155 and transmitted to the video decoding apparatus are a splitting flag (split_flag) indicating whether each node of the BT structure is split into lower-layer blocks and partition type information indicating its partition type. In addition, there may be another type, i.e., the block of a relevant node is split into two asymmetrically formed blocks. The asymmetric form may include a form in which the block of a relevant node is split into two rectangular blocks having a size ratio of 1:3, or a form in which the block of a relevant node is split in a diagonal direction.
[0036] According to the QTBT or QTBTTT splitting of the CTU, the CU may have different sizes. Hereinafter, the block corresponding to the CU to be encoded or decoded (i.e., the leaf node of QTBTTT) is referred to as the "current block". With QTBTTT splitting, the shape of the current block may be not only square but also rectangular.
[0037] The prediction unit 120 performs prediction on the current block to generate a prediction block. The prediction unit 120 includes an intra prediction unit 122 and an inter prediction unit 124.
[0038] Generally, the current block in an image can be encoded predictively. The prediction of the current block can generally be performed using intra prediction techniques or inter prediction techniques, where intra prediction techniques use data from the image containing the current block, and inter prediction techniques use data from images that have been encoded prior to the image containing the current block. Inter prediction includes uni-directional prediction and bi-directional prediction.
[0039] The intra prediction unit 122 predicts the pixels in the current block by using neighboring pixels (reference pixels) located around the current block in the current image. Depending on the prediction direction, there are multiple intra prediction modes. For example, as Figure 3a shown, the multiple intra prediction modes may include 2 non-directional modes (which include planar mode, DC mode) and 65 directional modes. Each prediction mode provides a different corresponding definition of neighboring pixels and a calculation formula to be used.
[0040] For effective direction prediction of a current block having a rectangular shape, additional direction modes can be used, as shown by the dashed arrows of the intra prediction modes at numbers 67 to 80 and numbers -1 to -14. These can be referred to as "wide-angle intra prediction modes". Figure 3b The arrows in Figure 3b indicate the corresponding reference samples for prediction, rather than the prediction direction. The prediction direction is opposite to the direction indicated by the arrows. The wide-angle intra prediction mode is a mode that performs prediction in a direction opposite to a specific direction mode without additional bit transmission when the current block has a rectangular shape. In this case, in the wide-angle intra prediction mode, some wide-angle intra prediction modes available for the current block can be determined by the ratio of the width to the height of the rectangular current block. For example, when the height of the rectangular shape of the current block is less than the width, wide-angle intra prediction modes with an angle less than 45 degrees (intra prediction modes at numbers 67 to 80) can be used. When the height of the rectangular shape of the current block is greater than the width, wide-angle intra prediction modes with an angle of -135 degrees or greater (intra prediction modes at numbers -1 to -14) can be used.
[0041] The intra prediction unit 122 can determine the intra prediction mode to be used for encoding the current block. In some examples, the intra prediction unit 122 can encode the current block by using a number of intra prediction modes and select an appropriate intra prediction mode to be used from the tested modes. For example, the intra prediction unit 122 can calculate rate-distortion values through rate-distortion analysis of a number of tested intra prediction modes and select the intra prediction mode with the best rate-distortion characteristics from the tested modes.
[0042] The intra prediction unit 122 selects an intra prediction mode from a plurality of intra prediction modes, and predicts a current block by using at least one neighboring pixel (reference pixel) determined according to the selected intra prediction mode and a calculation formula. Information about the selected intra prediction mode is encoded by the entropy coding unit 155 and transmitted to the video decoding device.
[0043] The inter prediction unit 124 generates a prediction block of the current block through motion compensation processing. The inter prediction unit 124 searches for the block most similar to the current block in a reference image that has been encoded and decoded before the current image, and generates a prediction block of the current block by using the searched block. Then, the inter prediction unit 124 generates a motion vector corresponding to the displacement between the current block in the current image and the prediction block in the reference image. Generally, motion estimation is performed on the luminance component, and the motion vector calculated based on the luminance component is used for both the luminance component and the chrominance component. The entropy coding unit 155 encodes motion information including information about the reference image and information about the motion vector used to predict the current block, and transmits it to the video decoding device.
[0044] The subtractor 130 generates a residual block by subtracting the prediction block generated by the intra prediction unit 122 or the inter prediction unit 124 from the current block.
[0045] The transform unit 140 transforms the residual signal in the residual block having pixel values in the spatial domain into transform coefficients in the frequency domain. The transform unit 140 may transform the residual signal in the residual block by using the full size of the residual block as the transform unit, or separate the residual block into two sub-blocks, i.e., a transform region and a non-transform region, and transform the residual signal by separately using the transform region sub-block as the transform unit. Here, the transform region sub-block may be one of two rectangular blocks having a size ratio of 1:1 on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_flag) indicating that only a single sub-block is transformed, direction (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or position information (cu_sbt_pos_flag) are encoded by the entropy coding unit 155 and signaled to the video decoding device. In addition, the size of the transform region sub-block may have a size ratio of 1:3 on the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_quad_flag) distinguishing the corresponding segmentation is additionally encoded by the entropy coding unit 155 and signaled to the video decoding device.
[0046] In addition, a maximum and / or minimum transform size can be defined for transformation. It is not allowed to perform transformation using a transform unit with a size smaller than the minimum transform size. In addition, when the residual block of the current block is larger than the maximum transform size, the transform unit 140 divides the residual block into sub-blocks with a size equal to or smaller than the maximum transform size, and performs transformation by using the sub-blocks as transform units. Here, the maximum and / or minimum transform size can be defined as a fixed size arranged between the video encoding device and the video decoding device. Alternatively, information about the maximum and / or minimum transform size can be included in the SPS or PPS, and signaled from the video encoding device to the video decoding device.
[0047] The quantization unit 145 quantizes the transform coefficients output from the transform unit 140, and outputs the quantized transform coefficients to the entropy encoding unit 155.
[0048] The rearrangement unit 150 can perform rearrangement of coefficient values using the quantized transform coefficients. The rearrangement unit 150 can change the two-dimensional coefficient array into a one-dimensional coefficient sequence by using coefficient scanning. For example, the rearrangement unit 150 can scan coefficient by coefficient from the DC coefficient to the coefficients in the high-frequency region through a zig-zag scan or a diagonal scan to output a one-dimensional coefficient sequence. Depending on the size of the transform unit and the intra prediction mode, the zig-zag scan used can be replaced by a vertical scan for scanning the two-dimensional coefficient array in the column direction and a horizontal scan for scanning the two-dimensional block-shaped coefficients in the row direction. In other words, the scanning method to be used can be determined among the zig-zag scan, diagonal scan, vertical scan, and horizontal scan according to the size of the transform unit and the intra prediction mode.
[0049] The entropy encoding unit 155 encodes the sequence of one-dimensional quantized transform coefficients output from the rearrangement unit 150 by using various encoding methods such as Context-based Adaptive Binary Arithmetic Code (CABAC), Exponential Golomb, etc., so as to encode and generate a bitstream.
[0050] In addition, the entropy coding unit 155 encodes information regarding block partitioning (e.g., CTU size, CU split flag, QT split flag, MTT split type, and MTT split direction), thereby allowing the video decoding apparatus to split blocks in the same manner as the video encoding apparatus. In addition, the entropy coding unit 155 encodes and further encodes information regarding the prediction type according to the prediction type, intra prediction information (i.e., information regarding the intra prediction mode), or inter prediction information (i.e., information regarding the reference image and motion vector), where the prediction type indicates whether the current block is encoded by intra prediction or inter prediction.
[0051] The inverse quantization unit 160 inverse quantizes the quantized transform coefficients output from the quantization unit 145 to generate transform coefficients. The inverse transform unit 165 transforms the transform coefficients output from the inverse quantization unit 160 from the frequency domain to the spatial domain to reconstruct the residual block.
[0052] The addition unit 170 adds the reconstructed residual block and the prediction block generated by the prediction unit 120 to reconstruct the current block. The pixels in the reconstructed current block are used as reference pixels for intra prediction of the next block.
[0053] The filtering unit 180 performs filtering on the reconstructed pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. caused by block-based prediction and transform / quantization. The filtering unit 180 may include a deblocking filter 182 and a sample adaptive offset (SAO) filter 184.
[0054] The deblocking filter 180 filters the boundaries between the reconstructed blocks to remove the blocking artifacts caused by block-by-block encoding / decoding, and the SAO filter 184 performs additional filtering on the deblocked image. The SAO filter 184 is a filter for compensating for the difference between the reconstructed pixels and the original pixels caused by lossy encoding.
[0055] The reconstructed blocks are filtered by the deblocking filter 182 and the SAO filter 184 and stored in the memory 190. When all the blocks in an image are reconstructed, the reconstructed image can be used as a reference image for inter prediction of the blocks in the subsequent image to be encoded.
[0056] Figure 4 is a functional block diagram of a video decoding apparatus capable of implementing the technical solution of the present invention. Hereinafter, the video decoding apparatus and the sub-components of the apparatus will be described with reference to Figure 4 Describe the video decoding apparatus and the sub-components of the apparatus.
[0057] The video decoding device may be configured to include: an entropy decoding unit 410, a rearrangement unit 415, an inverse quantization unit 420, an inverse transform unit 430, a prediction unit 440, an adder 450, a filtering unit 460, and a memory 470.
[0058] Similar to Figure 1 the video encoding device, each component of the video decoding device may be implemented as hardware or software, or a combination of hardware and software. Additionally, the functions of each component may be implemented by software, and the software functions of each component may be implemented to be executed by a microprocessor.
[0059] The entropy decoding unit 410 decodes the bitstream generated by the video encoding device and extracts information about block partitioning to determine the current block to be decoded, and extracts prediction information and information about the residual signal required to reconstruct the current block, etc.
[0060] The entropy decoding unit 410 extracts information about the CTU size from a sequence parameter set (SPS) or a picture parameter set (PPS), determines the size of the CTU, and divides the image into CTUs of the determined size. Then, the entropy decoding unit 410 determines the CTU as the highest layer of the tree structure, i.e., the root node, and extracts the segmentation information about the CTU, thereby dividing the CTU by using the tree structure.
[0061] For example, when dividing the CTU by using the QTBTTT structure, first, the first flag (QT_split_flag) related to QT segmentation is extracted, and each node is divided into four lower-layer nodes. For the node corresponding to the leaf node of QT, the entropy decoding unit 410 extracts the second flag (MTT_split_flag) related to the partitioning of MTT and information about the segmentation direction (vertical / horizontal) and / or segmentation type (binary / trinary) to divide the corresponding leaf node by using the MTT structure. This allows each node below the leaf node of QT to be recursively divided into the BT or TT structure.
[0062] As another example, when dividing the CTU by using the QTBTTT structure, the entropy decoding unit 410 may first extract the CU split flag (split_cu_flag) indicating whether the CU is divided. When dividing the relevant block, the first flag (QT_split_flag) may be extracted. During the division process, each node may have zero or more recursive QT divisions, followed by zero or more recursive MTT divisions. For example, the CTU may immediately enter the MTT division, or conversely, have multiple QT divisions alone.
[0063] As another example, when splitting a CTU by using a QTBT structure, the entropy decoding unit 410 extracts a first flag (QT_split_flag) related to QT splitting to split each node into four lower-layer nodes. Also, for a node corresponding to a leaf node of QT, the entropy decoding unit 410 extracts a splitting flag (split_flag) indicating whether the node is further split into BT and splitting direction information.
[0064] In addition, when the entropy decoding unit 410 determines a current block to be decoded through tree structure splitting, the entropy decoding unit 410 extracts information about a prediction type indicating whether the current block is intra-frame predicted or inter-frame predicted. When the prediction type information indicates intra-frame prediction, the entropy decoding unit 410 extracts a syntax element for intra-frame prediction information (intra-frame prediction mode) of the current block. When the prediction type information indicates inter-frame prediction, the entropy decoding unit 410 extracts syntax elements of inter-frame prediction information, that is, information indicating a motion vector and a reference image referenced by the motion vector.
[0065] In addition, the entropy decoding unit 410 extracts information about the quantized transform coefficients of the current block as information about the residual signal.
[0066] The rearrangement unit 415 changes a sequence of one-dimensional quantized transform coefficients entropy-decoded by the entropy decoding unit 410 into a two-dimensional coefficient array (i.e., a block) in the reverse order of coefficient scanning performed by the video encoding device.
[0067] The inverse quantization unit 420 performs inverse quantization on the quantized transform coefficients. The inverse transform unit 430 inversely transforms the inverse-quantized transform coefficients from the frequency domain to the spatial domain to reconstruct the residual signal, thereby generating a residual block of the current block.
[0068] In addition, when the inverse transform unit 430 inversely transforms only a partial region (sub-block) of a transform block, the inverse transform unit 430 extracts a flag (cu_sbt_flag) indicating that only the sub-block of the transform block has been transformed, directional (vertical / horizontal) information (cu_sbt_horizontal_flag) of the sub-block, and / or position information (cu_sbt_pos_flag) of the sub-block, and inversely transforms the transform coefficients of the sub-block from the frequency domain to the spatial domain to reconstruct the residual signal. At the same time, the inverse transform unit 430 fills the remaining region not inversely transformed with a "0" value as the residual signal, thereby generating a final residual block of the current block. In addition, when using a transform unit smaller than the minimum transform size, transformation is not allowed. In addition, when the residual block of the current block is larger than the maximum transform size, the inverse transform unit 430 splits the residual block into sub-blocks equal to or smaller than the maximum transform size and performs inverse transform by using the sub-blocks as transform units.
[0069] The prediction unit 440 may include an intra prediction unit 442 and an inter prediction unit 444. When the prediction type of the current block is intra prediction, the intra prediction unit 442 is activated, and when the prediction type of the current block is inter prediction, the inter prediction unit 444 is activated.
[0070] The intra prediction unit 442 determines the intra prediction mode of the current block among a plurality of intra prediction modes according to the syntax element of the intra prediction mode extracted by the entropy decoding unit 410, and predicts the current block by using the neighboring reference pixels of the current block according to the determined intra prediction mode. The intra prediction mode determined by the syntax element of the intra prediction mode may be a value indicating one of all intra prediction modes (e.g., a total of 67 modes) as described above. In the case where the current block is rectangular, some of the directional modes among the total 67 modes may be replaced with one of the wide-angle intra prediction modes based on the ratio of the width to the height of the current block.
[0071] The inter prediction unit 444 uses the syntax element for the intra prediction mode extracted by the entropy decoding unit 410 to determine the motion vector of the current block and the reference image referenced by the motion vector, and predicts the current block by using the motion vector and the reference image.
[0072] The adder 450 adds the residual block output from the inverse transform unit to the prediction block output from the inter prediction unit or the intra prediction unit to reconstruct the current block. When performing intra prediction on a subsequent block to be decoded, the pixels in the reconstructed current block are used as reference pixels.
[0073] The filtering unit 460 may include a deblocking filter 462 and a SAO filter 464. The deblocking filter 462 performs deblocking filtering on the boundaries between the reconstructed blocks to remove block artifacts caused by block-by-block decoding. The SAO filter 464 performs additional filtering on the reconstructed blocks after deblocking filtering to compensate for the difference between the reconstructed pixels and the original pixels caused by lossy coding. The reconstructed blocks are filtered by the deblocking filter 462 and the SAO filter 464 and stored in the memory 470. When all blocks in an image are reconstructed, the reconstructed image is used as a reference image for inter prediction of subsequent blocks to be encoded within the image.
[0074] The techniques of the embodiments shown herein generally relate to inter prediction coding, i.e., encoding and decoding a current block. Accordingly, certain techniques of the present invention may be performed by the intra prediction unit 122 or the intra prediction unit 442. In some embodiments, the intra prediction unit 122 or the intra prediction unit 442 performs with reference to the following Figures 5a to 9The technology of the present invention described above. In other embodiments, one or more other units of the video encoding device or the video decoding device may further participate in performing the technology of the present invention. The following description mainly focuses on the decoding technology, particularly the operation of the video decoding device, and the encoding technology will be kept brief because the encoding technology is the inverse operation of the decoding technology described comprehensively.
[0075] In intra prediction, prediction is performed using previously reconstructed samples adjacent to the current block, and the adjacent samples used for intra prediction are referred to as reference samples. Generally, in intra prediction, the reference samples are used as a whole to predict all samples in the current block. For example, for a 16×16 block, 256 sample values belonging to the 16×16 block are predicted by using their adjacent samples. Due to the spatial correlation in the video, generally the closer the current block samples are to the reference samples, the better the prediction result. Therefore, in the vertical prediction mode ( Figure 3b mode 50 therein) or the horizontal prediction mode ( Figure 3b mode 18 therein), the current block samples adjacent to the reference samples can have accurate predicted values, while the current block samples far from the reference samples can result in inaccurate predicted values.
[0076] The intra - coding tools described below involve dividing the CU in the vertical or horizontal direction into a plurality of equally - sized sub - blocks according to the size of the CU, and performing prediction on each sub - block in the same intra - prediction mode. The reconstructed sample values (or predicted sample values) of each sub - block can be used to predict the next sub - block, and the reconstructed sample values (or predicted sample values) of each sub - block are iteratively applied to each sub - block. For example, when the current block (CU) is divided into four parallel sub - blocks, the first sub - block can be predicted according to the adjacent samples of the current block (CU), the second sub - block can be predicted according to the adjacent samples of the second sub - block including the samples of the first sub - block, the third sub - block can be predicted according to the adjacent samples of the third sub - block including the samples of the second sub - block, and the fourth sub - block can be predicted according to the adjacent samples including the samples of the third sub - block. In this way, instead of predicting all pixels of the current block (CU) according to the samples of the previously encoded or decoded blocks adjacent to the current block (CU), the samples in the current block (CU) can be used to predict other samples in the same current block (CU).
[0077] One advantage of the intra - coding tool provided by the present invention is that, compared with the ordinary scenario of intra prediction, the reconstructed adjacent samples tend to be closer to the predicted samples. Located at a position closer to the current sample as the basis for predicting the current sample, the reconstructed adjacent samples can improve the prediction accuracy of the current sample.
[0078] 1. Sub - block partitioning and signal notification
[0079] Figures 5a to 5cIt is a schematic diagram showing the type in which, according to at least one embodiment of the present invention, when the current block is intra-prediction coded, the current block can be divided into multiple sub-blocks. The minimum block size applicable to the intra-coding tool of the present invention can be 4×8 or 8×4. Additionally, a constraint that all sub-blocks have at least 16 samples can be added. As Figures 5a to 5c shown, a block of size 4×8 or 8×4 is divided into two, while a block larger than size 4×8 or 8×4 can be divided into 4 or 8 blocks. Due to the virtual pipeline data unit (VPDU), the CU size that can use the intra-coding tool is limited to a maximum of 64×64, and the virtual pipeline data unit (VPDU) is the processing unit of VVC.
[0080] The video coding device can signal a segmentation flag that indicates that the current block is divided into multiple sub-blocks and intra-prediction is performed through each sub-block. Therefore, the video decoding device can decode the segmentation flag from the bitstream of the video data and determine whether to divide the current block based on the segmentation flag. A segmentation flag with a first value (e.g., "0") indicates that the current block is not divided into multiple sub-blocks, while a segmentation flag with a second value (e.g., "1") indicates that the current block has been divided into multiple sub-blocks and intra-prediction is performed through each sub-block.
[0081] Explicit signaling may not be performed (i.e., not decoded from the bitstream), but rather the segmentation flag can be inferred by the video decoding device based on the width and height of the current block, the area of the current block, the minimum transform size and / or the maximum transform size allowed for transforming the transform coefficients.
[0082] In at least one embodiment, when the width and height of the current block are less than the minimum transform size, the split flag may not need to be decoded from the bitstream, but may be set to a first value indicating that the current block is not split. In another embodiment, when the area of the current block (i.e., the number of pixels included in the current block) is less than the area of the transform unit defined by the minimum transform size (i.e., the number of pixels included in the transform unit), the split flag may not need to be decoded from the bitstream, but may be set to a first value indicating that the current block is not split. In yet another embodiment, when the width and height of the current block are greater than the maximum transform size, the split flag may not be decoded from the bitstream. In this case, it may be inferred that the split flag has a second value, i.e., the current block has been split into multiple sub-blocks and intra prediction is performed on each sub-block. Alternatively, it may be inferred that the split flag has a first value. In other words, when the width and height of the current block are greater than the maximum transform size, the encoding tool of the present invention that splits the current block into multiple sub-blocks and performs intra prediction on each sub-block is not applied to the current block. In yet another embodiment, when the current block is located at the boundary of an image (or tile), the intra encoding tool of the present invention is not used for the current block, and it is inferred that the split flag has a first value. Alternatively, when the current block is located at the boundary of an image (or tile), the current block may be accompanied by using the intra encoding tool of the present invention, and thus it is inferred that the split flag has a second value, thereby eliminating the need for additional block partitioning of the CTU at the image boundary.
[0083] In addition, when the intra encoding tool of the present invention is applied to the current block, information about the direction and number of sub-block partitions may be provided in various ways. For example, the direction and number of sub-block partitions may be determined based on syntax elements (e.g., flags) extracted from the bitstream, the size of the current block, the position of the current block, the length of one side of the current block (i.e., width or height), the number of pixels included in the current block, the intra prediction mode of the current block, the size of the minimum or maximum transform block, etc.
[0084] In some embodiments, when the current block is split into multiple sub-blocks, the video decoding device may determine the partition direction and the number of sub-blocks based on the split information decoded from the bitstream and the width and height of the current block.
[0085] In particular, the number of sub - blocks can be determined by the width and height of the current block. For example, as shown in Table 1, when the width and height of the current block are 4×8 or 8×4, the number of sub - blocks is determined to be 2. When the width and height of the current block are greater than 4×4 and not equal to 4×8 and 8×4, the number of sub - blocks can be determined to be 4. As another example, as shown in Table 2, when the width and height of the current block are 4×8 or 8×4, the number of sub - blocks is determined to be 2. When the width and height of the current block are 8×N to 32×N or N×8 to N×32 (where N > 4), the number of sub - blocks can be determined to be 4. In addition, for a current block larger than 32×N and N×32, the number of sub - blocks can be determined to be 8.
[0086] [Table 1]
[0087] Current block size Number of sub - blocks 4×4 Not divided 4×8 and 8×4 2 Others 4
[0088] [Table 2]
[0089]
[0090] The splitting direction can be determined to be horizontal or vertical by the splitting information. Alternatively or additionally, the splitting direction can be determined (or inferred) based on the ratio of the width to the height of the current block. For example, when the width of the current block is greater than its height, the splitting direction can be determined to be horizontal, and when the width of the current block is less than its height, the splitting direction can be determined to be vertical.
[0091] Alternatively or additionally, when the current block is at the boundary of an image (or tile, tile group, etc.), the splitting shape and number of sub - blocks can be inferred according to the position of the current block.
[0092] In addition, the splitting direction can be determined to be horizontal or vertical based on the directionality of the prediction modes included in the intra - frame prediction mode candidates (i.e., the MPM list) determined for the current block. As an example, when a relatively horizontal intra - frame prediction mode (e.g., Figure 3b the modes 3 to 33 shown) (hereinafter, "horizontal - oriented mode") exists in the MPM list or dominates in the MPM list, the splitting direction can be determined to be vertical. And when a relatively vertical intra - frame prediction mode (e.g., Figure 3b the modes 35 to 65 shown) (hereinafter, "vertical - oriented mode") exists in the MPM list or dominates in the MPM list, the splitting direction can be determined to be horizontal.
[0093] 2. Determination of Intra - Frame Prediction Mode
[0094] When the intra - frame coding tool of the present invention is applied to the current block, the intra - frame prediction mode determined for the current block can be commonly applied to the intra - frame prediction of the sub - blocks of the current block.
[0095] The wide-angle intra prediction mode can still be used for the current block to which the intra coding tool of the present invention is applied. In this case, the wide-angle intra prediction mode can be determined by the ratio between the width and height of the current block, rather than by the ratio between the width and height of the sub-blocks divided from the current block.
[0096] The video decoding device can determine the intra prediction mode of the current block by decoding the intra prediction mode information of the current block from the bitstream. For example, the video decoding device selects a predetermined number of intra prediction mode candidates from multiple intra prediction modes, and uses the intra prediction mode information of the current block to determine the intra prediction mode of the current block from the intra prediction mode candidates (i.e., the MPM list).
[0097] The intra prediction mode candidates can be selected in different ways according to whether the partitioning direction is horizontal or vertical. For example, when the partitioning direction is horizontal, the vertical-oriented mode among multiple intra prediction modes can be selected as an intra prediction mode candidate prior to the horizontal-oriented mode. Additionally, when the partitioning direction is vertical, the horizontal-oriented mode among multiple intra prediction modes can be selected as an intra prediction mode candidate prior to the vertical-oriented mode. As another example, when the partitioning direction is horizontal, the horizontal mode (e.g., Figure 3b mode 18) or the horizontal-oriented mode can be excluded from the selection of intra prediction mode candidates, while when the partitioning direction is vertical, the vertical mode (e.g., Figure 3b mode 50) or the vertical-oriented mode can be excluded from the selection of intra prediction mode candidates.
[0098] 3. Generation of Intra Prediction Blocks in Sub-Block Units
[0099] The video decoding device reconstructs the current block by sequentially reconstructing multiple sub-blocks by using the intra prediction mode determined for the current block. For example, the video decoding device can generate an intra prediction sub-block by predicting the target sub-block to be currently reconstructed from multiple sub-blocks based on the reconstructed pixels around the sub-block. The video decoding device can reconstruct the transform coefficients by decoding the transform coefficient information corresponding to the target sub-block from the bitstream, and can perform inverse quantization and inverse transform on the transform coefficients by using the same transform size as the target sub-block, thereby generating a residual sub-block having a residual signal. The video decoding device can reconstruct the target sub-block by using the intra prediction sub-block and the residual sub-block. In particular, the pixels in the reconstructed sub-blocks can be used for intra prediction of the next sub-block in the current block. Through this process, when the partitioning direction is horizontal, the sub-blocks of the current block are processed starting from the sub-block including the upper-left sample of the current block, sequentially to the sub-blocks in the downward direction, and when the partitioning direction is vertical, sequentially to the sub-blocks in the rightward direction.
[0100] In some cases, in order to keep the width of the minimum prediction unit of a sub-block as 4 samples, it may not be allowed that the prediction of a 1×N / 2×N sub-block depends on the reconstructed values of the previously decoded 1×N / 2×N sub-blocks of the current block. In other words, when the intra-frame encoding tool of the present invention is applied to the current block, transformation is allowed in units of 1×N and 2×N, but prediction may not be allowed in units of 1×N and 2×N. For example, an 8×N (N>4) current block partitioned in the vertical direction can be divided into four 2×N sub-blocks. Accordingly, the residual signal of the current block is generated by reconstructing and inverse-transforming in units of 2×N sub-blocks. However, since prediction in units of 2×N sub-blocks is not allowed, prediction of the current block is performed in units of 4×N sub-blocks with a width of 4 samples. In other words, an 8×N (N>4) current block partitioned in the vertical direction can be divided into two 4×N prediction regions and four 2×N transformation regions. Additionally, a 4×N current block divided in the vertical direction can be predicted as a 4×N prediction region and divided into four 1×N transformation regions. Due to typical hardware design characteristics, that is, storing the results of the intra-frame predicted blocks separately in multiple clocks in row units, there is such a constraint, which requires preventing the number of clocks for processing 1×N or 2×N blocks from exceeding the number of clocks for 4×N blocks.
[0101] 4. Loop Filtering
[0102] The video decoding device can perform in-loop filtering including deblocking filtering on the reconstructed current block, and can store the filtered current block in a buffer (e.g., Figure 4 memory 470) to be used as a reference image for inter-frame predicted blocks to be encoded in the unprocessed image.
[0103] In an illustrative embodiment, the video decoding device sets a grid of M samples at regular intervals in the horizontal and vertical directions on a CTU or an image containing the current block, and performs deblocking filtering on the boundaries that coincide with the boundaries of the grid among the boundaries between multiple sub-blocks in the current block to which the intra-frame encoding tool of the present invention is applied. Accordingly, deblocking filtering may not be performed on the boundaries between multiple sub-blocks that do not coincide with the grid boundaries. For example, when performing deblocking filtering in units of 8×8, deblocking filtering can be performed only on the boundaries between sub-blocks that match the boundaries of the 8×8 unit grid among the boundaries between 2×N (or N×2) or 4×N (or N×4) sized sub-blocks. Although a grid in units of 8×8 is given as an example, the grid size is not necessarily limited to 8×8. For example, the number of samples M can be expressed in the form of 2 n (n is a natural number), and can have any value such as 4, 8, 16, etc.
[0104] In some cases, according to the sub-block splitting direction and the number of partitions, loop filtering may be performed only on a part of the boundaries between sub-blocks. For example, in the case of splitting the current block in the horizontal direction, only vertical deblocking filtering may be performed, and horizontal deblocking filtering may be omitted. Similarly, in the case of splitting the current block in the vertical direction, only deblocking filtering in the horizontal direction may be performed, and deblocking filtering in the vertical direction may be omitted.
[0105] In some embodiments, when applying the intra-coding tool of the present invention to the current block, it may be determined whether to perform loop filtering on a per-sub-block basis. Therefore, the video decoding apparatus may check whether to perform loop filtering on a per-sub-block basis, or may check whether to perform loop filtering on a per-sub-block basis through the high-level syntax.
[0106] When performing loop filtering on the current block, the method of performing the loop filtering process or the method of calculating the parameters of the loop filtering may vary according to a criterion calculated based on at least one of information items such as sub-block size, position, depth, QP, etc.
[0107] For example, when the intra-coding tool of the present invention is applied to the current block, the sub-blocks of the current block may be smaller than the unit for performing calculations on loop filtering parameters (e.g., parameters for determining the strength of the filter and clipping values for pixel changes). In this case, the filtering parameters may be calculated with reference to the current block instead of calculating the filtering parameters on a per-sub-block basis, and loop filtering may be performed on a per-sub-block basis. Alternatively, common filtering parameters may be calculated with reference to every two or more combined sub-blocks, and these sub-blocks may share the common filtering parameters.
[0108] As another example, when the unit for calculating the ALF parameters straddles the boundary of the sub-block, the ALF parameters may be obtained in units such as {N×1, 1×N, N×2, 2×N} to perform the ALF. In another example, the present invention can avoid calculating the parameters (or filter coefficients) for determining whether to perform deblocking filtering by configuring the deblocking filtering to have been performed or never performed on the current block. As another example, the present invention adapts the method of performing loop filtering or the method of calculating parameters in response to whether the boundary of the current sub-block coincides with the boundary of the CU (or CTU or VPDU).
[0109] 5. Signaling the encoded block flag
[0110] When the intra - coding tool of the present invention is applied to a current block, a syntax element (e.g., coded block flag, CBF) can be signaled for each sub - block to indicate whether there is at least one non - zero coefficient in the sub - block. For example, CBF being "0" can indicate that all coefficients in the relevant sub - block are zero coefficients, while CBF being "1" can indicate that there is at least one non - zero coefficient in the relevant sub - block.
[0111] The CBF can be inferred based on the number of partitioned sub - blocks, the size (width or height) of the sub - blocks, the intra - prediction mode, the position of the block, QP, the number of pixels included in the sub - block, etc. For example, it is considered that at least one CBF of the sub - blocks of the current block is not "0". Accordingly, when the current block has n sub - blocks and the CBFs of the previous n - 1 sub - blocks are all "0", the CBF of the nth sub - block is inferred to be "1", so that the CBF is not explicitly signaled.
[0112] As another example, when the width or height of a sub - block of the current block is no greater than 2, the intra - coding tool of the present invention can be applied only when the CBF of each sub - block is not 0. In this case, for example, when the intra - coding tool of the present invention is applied to an 8×16 current block and it is partitioned into 4 2×16 sub - blocks, the CBF of each sub - block is inferred to be "1", so that it is not explicitly signaled. On the other hand, if the 8×16 current block is partitioned into two 4×16 sub - blocks, the CBF of each sub - block must be explicitly signaled.
[0113] 6. Signaling the quantization parameter
[0114] The video coding device determines the quantization parameter (QP) value of the current block (CU) and determines the delta quantization parameter (DQP) value of the current block based on the QP value and the QP prediction value. The video coding device can be configured to signal the DQP value and quantize the current block by using the determined QP value. The video coding device can adjust the QP value of the current block to adjust the quantization degree applied to the coefficient block related to the current block.
[0115] DQP is defined as the difference between the current QP (i.e., the actual QP used in the current block) and the predicted value of the current QP (i.e., the QP prediction value). Based on the signaled DQP, the corresponding current QP value can be reconstructed by adding the DQP to the QP prediction value. In other words, in a video encoding device, DQP is calculated by subtracting the QP prediction value from the actual QP of the current block, and in a video decoding device, the actual QP of the current block is reconstructed by adding the received DQP to the QP prediction value. In some examples, the QP prediction value of the current block is defined as the average of the actual QP values of the upper block and the left block.
[0116] The video decoding device can be configured to receive the DQP value of the current quantization block, determine the QP value of the current quantization block based on the received DQP value and the QP prediction value, and inverse-quantize the current quantization block by using the determined QP value.
[0117] When the intra prediction tool of the present invention is applied to the current block, DQP can be determined on a per-sub-block basis. In this case, the present invention can check a flag to determine whether to use DQP on a per-sub-block unit, or can check whether to apply DQP through an advanced syntax.
[0118] In some examples, when the intra prediction tool of the present invention is applied to the current block, the same QP can be used for all sub-blocks. Accordingly, the QP value of the current block can be determined by using the QP of the (left and / or upper) CU adjacent to the current block and the transmitted DQP value. Alternatively, the QP value of the current block can be inferred by the transmitted DQP value and the advanced syntax.
[0119] In some other examples, different DQPs can be used for each sub-block. In this case, the QP of each sub-block can be determined by using the QP determined for the current block and the DQP value of each sub-block. Alternatively, the QP of each sub-block can be determined by the DQP between the respective sub-blocks, or the QP of the current block can be determined by using the QP of a specific sub-block.
[0120] In some other examples, the QP of the current block can be signaled, or the value of the QP to be used can be inferred by the advanced syntax.
[0121] Figure 6 is a functional block diagram showing an example configuration of an intra prediction unit in a video encoding device according to at least one embodiment of the present invention, and the intra prediction unit supports the intra encoding tool of the present invention. As Figure 6 shown, the intra prediction unit 600 can include: a mode selection unit 610, a reference sample construction unit 620, a reference sample filtering unit 630, and a prediction signal generation unit 640.
[0122] The mode selector 610 may determine an intra prediction mode to be used for encoding a current block. For example, the mode selector 610 may encode the current block by using various intra prediction modes and select an appropriate intra prediction mode to be used from the tested modes.
[0123] In some cases, the mode selector 610 may signal the intra prediction mode of the current block by using the most probable mode (MPM) process. For example, the mode selector 610 may set the intra prediction modes of neighboring blocks adjacent to the current block (e.g., a block at the top of the current block and a block at the left side of the current block) as MPM candidates. When two MPM candidates cannot be found, e.g., when the neighboring blocks are not intra predicted or when the neighboring blocks have the same intra mode, the mode selector 610 may replace the intra prediction mode of the neighboring blocks with the planar mode. When the number of MPM candidates included in the MPM candidate list is less than the maximum number (e.g., 6), the present invention may insert a default mode different from the previously inserted MPM candidate in the MPM candidate list and an angular mode similar to the previously inserted MPM candidate.
[0124] Information indicating whether the intra prediction mode of the current block is the same as any one of the MPM candidates (e.g., an MPM flag) may be signaled through a bitstream. When the intra prediction mode of the current block is the same as any one of the MPM candidates, the mode selector 610 may set the MPM flag to a first value and signal the MPM index information for identifying the consistent MPM candidate. Alternatively, the mode selector 610 may first signal a flag indicating whether the intra prediction mode of the current block is the planar mode, and otherwise, may signal the MPM index information. When the intra prediction mode of the current block does not match the MPM candidates, the mode selector 610 may set the MPM flag to a second value and may signal the residual mode information through the bitstream to indicate which of the remaining intra prediction modes matches the intra prediction mode of the current block.
[0125] The mode selector 610 may select an intra coding tool of the present invention for sequentially predicting the current block in units of sub-blocks. In this case, the mode selector 610 may perform rate-distortion analysis to determine a direction for dividing the current block into sub-blocks. In other words, the mode selector 610 may determine whether to divide the current block into a plurality of sub-blocks in a horizontal direction or divide the current block into a plurality of sub-blocks in a vertical direction.
[0126] When predicting the current block without splitting the current block into multiple sub - blocks, the mode selector 610 may set the split flag to a first value indicating whether to split the current block, such as "0". When predicting the current block after splitting the current block into multiple sub - blocks, the mode selector 610 may set the split flag indicating whether to split the current block to a second value, such as "1". The mode selector 610 may transmit the split flag to, for example Figure 1 the entropy coding unit 155 to signal the split flag.
[0127] In some cases, unless a predetermined criterion is met, the mode selector 610 may restrict the use of the intra - coding tools of the present invention described above. For example, it may be determined whether the intra - coding tools of the present invention can be used based on the position of the current block, the width and height of the current block, the area of the current block, the minimum transform size, the maximum transform size, etc. In this case, the present invention may omit signaling the split flag indicating whether to use the intra - coding tools. This means that the split flag is not included in the bitstream.
[0128] For example, when the current block is smaller than a preset size (e.g., 4×8 or 8×4, etc.), the mode selector 610 may not use the intra - coding tools of the present invention. As another example, when the width and height of the current block are smaller than the minimum transform size, or when the area of the current block (i.e., the number of pixels included in the current block) is smaller than the area of the transform unit defined by the minimum transform size (i.e., the number of pixels included in the transform unit), the intra - coding tools of the present invention are not applied, and the split flag is not signaled. In this case, the video decoding device infers the split flag as a value indicating that the current block is not split. As another example, when the width and height of the current block are greater than the maximum transform size, signaling the split flag may be omitted. In this case, the video decoding device may be implemented to infer the split flag as a value indicating that the current block is split into multiple sub - blocks and intra - prediction is performed through each sub - block. Alternatively, the video decoding device may infer that the split flag is a value indicating that the current block is not split into sub - blocks.
[0129] When the intra - coding tools of the present invention are applied to the current block, the direction and number of sub - block partitions may be determined based on the size of the current block, the position of the current block, the length of one side of the current block (i.e., width or height), the number of pixels included in the current block, the intra - prediction mode of the current block, the size of the minimum transform block or the maximum transform block, etc.
[0130] The information about the direction and number of sub - block partitions can be provided in various ways. For example, the mode selector 610 may signal the direction and number of sub - block partitions using one or more syntax elements such as a 1 - bit flag.
[0131] In some cases, the number of sub - blocks can be determined by the width and height of the current block. For example, when the width and height of the current block are 4×8 or 8×4, the number of sub - blocks can be determined as 2. When the width and height of the current block are greater than 4×4 and not equal to 4×8 and 8×4, the number of sub - blocks can be determined as 4. As another example, when the width and height of the current block are 4×8 or 8×4, the number of sub - blocks can be determined as 2. When the width and height of the current block are 8×N to 32×N or N×8 to N×32 (where N > 4), the number of sub - blocks can be determined as 4, and for a current block larger than 32×N or N×32, the number of sub - blocks can be determined as 8.
[0132] The splitting direction can be determined as horizontal or vertical by splitting information. Alternatively or additionally, the splitting direction can be determined (or inferred) based on the ratio of the width to the height of the current block. For example, when the width of the current block is greater than its height, the splitting direction can be determined as horizontal splitting, and when the width of the current block is less than its height, the splitting direction can be determined as vertical splitting. Alternatively or additionally, when the current block is at the boundary of an image (or tile, tile group, etc.), the shape and number of sub - block partitions can be inferred based on the position of the current block. Additionally, the splitting direction can be determined as horizontal or vertical based on the directionality of the prediction modes included in the intra - frame prediction mode candidates (i.e., the MPM list) determined for the current block. This can obviate the need for the bitstream to signal one or more syntax elements indicating information about the shape and / or number of sub - block partitions.
[0133] The reference sample construction unit 620 can check the available neighboring samples and use the available samples to construct the reference samples to be used for prediction. When there are no available samples, or when intra - frame prediction is not performed using neighboring samples, the reference sample construction unit 620 can arbitrarily construct reference samples.
[0134] The reference sample filtering unit 630 can determine whether to perform filtering. Whether to perform filtering can be determined based on information about at least one of the size, depth, QP, and mode of the current block. When filtering needs to be performed, the reference sample filtering unit 630 can select a filter to perform filtering. In this case, information about performing filtering can be signaled in the bitstream.
[0135] The prediction signal generation unit 640 may generate a predicted sub-block by predicting a sub-block to be encoded in a plurality of sub-blocks based on previously reconstructed pixels around the sub-block. The prediction signal generation unit 640 may utilize an intra prediction mode determined for a current block when performing intra prediction of a plurality of sub-blocks. Then, a residual sub-block may be generated by referring to and subtracting the predicted sub-block from a corresponding sub-block of the current block. The residual sub-block may be reconstructed through transform / quantization processing and inverse quantization / inverse transform processing. The reconstructed residual sub-block is added to the predicted sub-block generated by the prediction signal generation unit 640 to generate a reconstructed sub-block. In particular, when predicting the next sub-block, the prediction signal generation unit 640 may utilize the reconstructed pixels of the previously sub-block and the reconstructed pixels of the previously reconstructed CU.
[0136] Figure 7 is a flowchart of a method for intra prediction encoding of a current block of video performed by a video encoding apparatus according to at least one embodiment of the present invention.
[0137] In step S710, the video encoding apparatus may determine an intra prediction mode to be used for encoding the current block. Additionally, the video encoding apparatus may determine whether to apply an intra encoding tool of the present invention, and if so, determine a splitting direction between the horizontal direction and the vertical direction of the current block.
[0138] In step S720, the video encoding apparatus may encode an intra prediction mode of the current block and a syntax element indicating whether the current block is to be predicted after being split into a plurality of sub-blocks. The video encoding apparatus may utilize a most probable mode (MPM) process for signaling the intra prediction mode of the current block. Additionally, the video encoding apparatus may signal a splitting flag indicating whether the current block is predicted after being split into a plurality of sub-blocks.
[0139] In some cases, the video encoding apparatus may restrict the use of the intra encoding tool of the present invention unless a predetermined criterion is satisfied. For example, it may be determined whether the intra encoding tool of the present invention can be used based on the position of the current block, the width and height of the current block, the area of the current block, the minimum transform size, the maximum transform size, etc. In this case, the present invention may omit signaling a splitting flag in the bitstream indicating whether to use the intra encoding tool of the present invention.
[0140] When the intra encoding tool of the present invention is applied to the current block, the direction and number of sub-block partitions may be determined based on the size of the current block, the position of the current block, the length of one side of the current block (i.e., width or height), the number of pixels included in the current block, the intra prediction mode of the current block, the size of the minimum transform block or the maximum transform block, etc.
[0141] Information regarding the direction and number of sub-block partitions may be provided in various ways. For example, a video encoding device may signal split information such as the direction and / or number of sub-block partitions by using one or more syntax elements such as a 1-bit flag.
[0142] In some cases, the number of sub-blocks may be determined by the width and height of the current block. For example, when the width and height of the current block are 4×8 or 8×4, the number of sub-blocks is determined to be 2, and when the width and height of the current block are greater than 4×4 and not equal to 4×8 and 8×4, the number of sub-blocks may be determined to be 4.
[0143] The video encoding device may explicitly signal a flag indicating the direction of sub-block partitioning (e.g., whether the direction is horizontal or vertical). Alternatively or additionally, the split direction may be determined (or inferred) based on the ratio of the width to the height of the current block. For example, when the width of the current block is greater than its height, the split direction may be determined to be horizontal splitting, and when the width of the current block is less than its height, the split direction may be determined to be vertical splitting. In this case, signaling the flag indicating the split direction may be omitted.
[0144] In step S730, when the intra-frame encoding tool of the present invention is applied to the current block, the video encoding device may sequentially encode a plurality of sub-blocks by using the intra-frame prediction mode determined for the current block.
[0145] For example, the video encoding device may generate a prediction sub-block by predicting a target sub-block to be encoded among the plurality of sub-blocks according to the previously reconstructed pixels around the target sub-block (S732). The video encoding device may generate a residual sub-block from the target sub-block and the prediction sub-block (S734). The video encoding device may transform and quantize the residual sub-block by using the same transform size as the target sub-block (S736). The video encoding device may perform entropy encoding on the quantized transform coefficients (S738). In addition, the video encoding device may reconstruct the residual sub-block by applying an inverse quantization / inverse transform process to the quantized transform coefficients, and may add the reconstructed residual sub-block to the prediction sub-block to generate a reconstructed sub-block (S738). In particular, the pixels in the reconstructed sub-block may be used for intra-frame prediction of the next sub-block in the current block. Through this process, when horizontally splitting, the current block is sequentially processed in the downward direction from the sub-block including the top-left sample of the current block, and when vertically splitting, the current block is sequentially processed in the rightward direction.
[0146] In step S740, the video encoding device may perform de-blocking filtering and other processing on the reconstructed current block, and may store the filtered current block in a buffer (e.g., Figure 1in the memory 190) to be used as a reference image for inter prediction of unprocessed blocks to be encoded in an image. The video encoding device may set a grid of N samples at regular intervals in the horizontal and vertical directions, and perform deblocking filtering on the boundaries that coincide with the grid boundaries among the boundaries between multiple sub-blocks in the current block.
[0147] Figure 8 is a functional block diagram showing an example configuration of an intra prediction unit in a video decoding device according to at least one embodiment of the present invention. The intra prediction unit supports the intra coding tools of the present invention. As Figure 8 shown, the intra prediction unit 800 may include: a mode determination unit 810, a reference sample construction unit 820, a reference sample filtering unit 830, and a prediction signal generation unit 840.
[0148] The mode determination unit 810 may determine the intra prediction mode of the current block by decoding the intra prediction mode information of the current block from the bitstream. For example, the mode determination unit 810 may select a preset number of intra prediction mode candidates from multiple intra prediction modes, and use the intra prediction mode information of the current block to determine the intra prediction mode of the current block from the intra prediction mode candidates.
[0149] The mode determination unit 810 may also determine whether to divide the current block encoded by intra prediction into multiple sub-blocks. Specifically, the mode determination unit 810 may divide the current block into sub-blocks of the same size, and determine whether to perform intra prediction on each sub-block by using the same intra prediction mode as the intra prediction mode of the current block.
[0150] For example, the mode determination unit 810 may decode a split flag indicating whether to split the current block from the bitstream, and determine whether to divide the current block into multiple sub-blocks based on the split flag. The first value of the split flag (e.g., "0") indicates that the current block is not divided into sub-blocks, while the second value of the split flag (e.g., "1") indicates that the current block is divided into sub-blocks and intra prediction has been performed on each sub-block.
[0151] The split flag may be inferred by the video decoding device without explicit signaling (i.e., without decoding from the bitstream), but based on the width and height of the current block, the area of the current block, the minimum transform size and / or the maximum transform size allowed for transforming the transform coefficients. Accordingly, the mode determination unit 810 may infer the value of the split flag based on the width and height of the current block, the area of the current block, and the minimum transform size and the maximum transform size allowed for transforming the transform coefficients.
[0152] In at least one embodiment, when the width and height of the current block are less than the minimum transform size, the split flag may not need to be decoded from the bitstream but may be set to a value indicating that the current block is not split. In another embodiment, when the area of the current block (i.e., the number of pixels included in the current block) is less than the area of the transform unit defined by the minimum transform size (i.e., the number of pixels included in the transform unit), the split flag may not need to be decoded from the bitstream but may be set to a value indicating that the current block is not split. In yet another embodiment, when the width and height of the current block are greater than the maximum transform size, the split flag may not need to be decoded from the bitstream but may be inferred to have a second value (e.g., "1"), i.e., the current block has been split into multiple sub-blocks and intra prediction has been performed on each sub-block. Alternatively, conversely, it may be inferred that the split flag has a first value (e.g., "0"), i.e., the encoding tool of the present invention is not applicable, thereby saving the process of splitting the current block into multiple sub-blocks and performing intra prediction on each sub-block.
[0153] When the encoding tool of the present invention is applied to the current block, the mode determination unit 810 may determine the direction and number of sub-block partitions. The mode determination unit 810 may extract one or more syntax elements from the bitstream to determine the direction and number of sub-block partitions. For example, whether the split direction is horizontal or vertical may be explicitly signaled by using a syntax element such as a 1-bit flag. Accordingly, the mode determination unit 810 may extract a syntax element indicating the split direction of the current block from the bitstream.
[0154] Alternatively or additionally, the direction and number of sub-block partitions may be determined or inferred based on the size of the current block, the position of the current block, the length of one side of the current block (i.e., width or height), the number of pixels included in the current block, the intra prediction mode of the current block, the size of the minimum or maximum transform block, etc.
[0155] For example, the split direction may be determined (or inferred) based on the ratio of the width to the height of the current block. For example, when the width of the current block is greater than its height, the split direction may be determined as horizontal splitting, and when the width of the current block is less than its height, the split direction may be determined as vertical splitting. Alternatively or additionally, when the current block is located at the boundary of an image (or tile, tile group, etc.), the shape and number of sub-block partitions may be inferred based on the position of the current block. Additionally, the split direction may be determined as horizontal or vertical based on the directionality of the prediction modes included in the intra prediction mode candidates (i.e., MPM list) determined for the current block. This may obviate the need for the bitstream to signal one or more syntax elements indicating information about the shape and / or number of sub-block partitions.
[0156] The number of sub - blocks can be determined based on the size of the current block, the position of the current block, the length of one side of the current block (i.e., width or height), the number of pixels included in the current block, the intra - prediction mode of the current block, the size of the minimum transform block or the maximum transform block, etc.
[0157] In some cases, the number of sub - blocks can be determined by the width and height of the current block. For example, when the width and height of the current block are 4×8 or 8×4, the number of sub - blocks can be determined to be 2. When the width and height of the current block are greater than 4×4 and not equal to 4×8 and 8×4, the number of sub - blocks can be determined to be 4. As another example, when the width and height of the current block are 4×8 or 8×4, the number of sub - blocks can be determined to be 2. When the width and height of the current block are 8×N to 32×N or N×8 to N×32 (where N > 4), the number of sub - blocks can be determined to be 4, while for a current block larger than 32×N and N×32, the number of sub - blocks can be determined to be 8.
[0158] The reference sample construction unit 820 can check the available neighboring samples and use the available samples to construct the reference samples to be used for prediction. When there are no available samples, or when intra - prediction is performed without using neighboring samples, the reference sample construction unit 820 can arbitrarily construct the reference samples.
[0159] The reference sample filtering unit 830 determines whether to perform filtering. Whether to perform filtering can be determined based on information about at least one of the size, depth, QP, and mode of the current block. When filtering needs to be performed, the reference sample filtering unit 830 can select a filter to perform filtering. In this case, information about performing filtering can be extracted from the bitstream.
[0160] The prediction signal generation unit 840 can generate an intra - prediction sub - block by predicting the current sub - block to be reconstructed in multiple sub - blocks according to the previously reconstructed pixels around the sub - blocks. In particular, when predicting the next sub - block, the prediction signal generation unit 840 can use the reconstructed signal of the previous sub - block and the reconstructed signal of the previously reconstructed CU. To generate the reconstructed sub - block, the intra - prediction sub - block can be added to the reconstructed residual sub - block from the bitstream.
[0161] Figure 9 It is a flowchart of a method for decoding an intra - prediction - coded current block from the bitstream of an encoded video, which is executed by a video decoding device according to at least one embodiment of the present invention.
[0162] In step S910, the video decoding device determines whether to divide the intra - prediction - coded current block into multiple sub - blocks. Specifically, the video decoding device divides the current block into sub - blocks of the same size and determines whether to perform intra - prediction on each sub - block by using the same intra - prediction mode as the intra - prediction mode of the current block.
[0163] For example, a video decoding device may decode a split flag from a bitstream that indicates whether to split a current block, and determine whether to split the current block based on the split flag. A first value of the split flag (e.g., "0") may indicate that the current block is not split into multiple sub-blocks, while a second value of the split flag (e.g., "1") indicates that the current block is split into multiple sub-blocks and intra prediction has been performed through each sub-block.
[0164] The split flag may be inferred by the video decoding device without explicit signaling (i.e., without decoding from the bitstream), but based on the width and height of the current block, the area of the current block, the minimum and maximum transform sizes allowed for transforming the transform coefficients. Accordingly, the video decoding device may infer the value of the split flag based on the width and height of the current block, the area of the current block, and the minimum and maximum transform sizes allowed for transforming the transform coefficients.
[0165] In step S920, the video decoding device may, in response to when the current block is split into multiple sub-blocks, determine the split direction between the horizontal split direction and the vertical split direction of the current block and the number of sub-blocks based on the split information decoded from the bitstream and the width and height of the current block.
[0166] The split direction may be determined to be horizontal or vertical by the split information. Alternatively or additionally, the split direction may be determined based on the ratio of the width to the height of the current block. For example, when the width of the current block is greater than its height, the split direction may be determined to be horizontal splitting, and when the width of the current block is less than its height, the split direction may be determined to be vertical splitting.
[0167] The number of sub-blocks may be determined by the width and height of the current block. For example, when the width and height of the current block are 4×8 or 8×4, the number of sub-blocks may be determined to be 2, and when the width and height of the current block are greater than 4×4 and not equal to 4×8 and 8×4, the number of sub-blocks may be determined to be 4.
[0168] In step S930, the video decoding device reconstructs the current block by intra prediction by sequentially reconstructing multiple sub-blocks split according to the split direction and the number of sub-blocks.
[0169] For example, the video decoding device may generate an intra-prediction sub-block by predicting a target sub-block to be encoded in a plurality of sub-blocks based on previously reconstructed pixels around the target sub-block (S932). The video decoding device may decode transform coefficient information corresponding to the target sub-block from the bitstream to reconstruct the transform coefficients (S934), and perform inverse quantization and inverse transformation on the transform coefficients by using the same transform size as that of the target sub-block to generate a residual sub-block having a residual signal (S939). The video decoding device may reconstruct the target sub-block by using the intra-prediction sub-block and the residual sub-block (S938). Pixels in the reconstructed sub-block may be used for intra-prediction of the next sub-block in the current block.
[0170] In addition, before step S930 or at step S930, the video decoding device may decode intra-prediction mode information of the current block from the bitstream to determine the intra-prediction mode of the current block. For example, the video decoding device may select a preset number of intra-prediction mode candidates (i.e., MPM candidates) from a plurality of intra-prediction modes, and use the intra-prediction mode information of the current block to determine the intra-prediction mode of the current block from the MPM candidates. The intra-prediction mode candidates may be selected in different ways according to whether the splitting direction is horizontal or vertical. For example, when the splitting direction is horizontal, a vertical orientation mode may be selected as an MPM candidate from a plurality of intra-prediction modes prior to a horizontal orientation mode. In addition, when the splitting direction is vertical, a horizontal orientation mode may be selected as an MPM candidate from a plurality of intra-prediction modes prior to a vertical orientation mode.
[0171] Furthermore, before step S930 or at step S930, the video decoding device may decode a sub-block flag indicating whether non-zero transform coefficients exist in the target sub-block from the bitstream based on the position of the target sub-block in the current block and the number of sub-blocks. In this case, when the sub-block flag indicates that non-zero transform coefficients exist in the target sub-block, the video decoding device may reconstruct the transform coefficients corresponding to the target sub-block from the bitstream. Unless the sub-block flag is decoded from the bitstream, the video decoding device may set the sub-block flag to a value indicating that non-zero transform coefficients exist in the sub-block.
[0172] At step S940, the video decoding device may perform deblocking filtering on the reconstructed current block, and may store the filtered current block in a buffer (e.g., Figure 4 memory 470) to be used as a reference image for inter-prediction of unprocessed blocks to be encoded in the image. The video decoding device may set a grid of N samples at regular intervals in the horizontal and vertical directions, and perform deblocking filtering on the boundaries that coincide with the grid boundaries among the boundaries between a plurality of sub-blocks in the current block.
[0173] In addition, when encoding a block (CU) in units of sub-blocks sequentially according to the above intra-coding tools, both intra prediction and inter prediction can be performed when generating a prediction signal (to be added to the associated residual signal) of the sub-block. Figure 10a and Figure 10b is a schematic diagram showing an encoded block having a first sub-block and a second sub-block that are first reconstructed during the reconstruction process when generating a predicted sub-block of the second sub-block.
[0174] As Figure 10a shown, in the case where the first sub-block has been reconstructed and the second sub-block of the encoded block (CU) is in the reconstruction process, a weighted sum (or weighted average) is performed on a predicted sub-block 1010 obtained by performing intra prediction on the second sub-block in the intra prediction mode and a predicted sub-block 1020 obtained by performing inter prediction on the second sub-block, thereby generating a final predicted sub-block 1030 of the second sub-block (to be added to the associated residual signal). Here, for inter prediction in units of sub-blocks, motion information can be signaled individually in units of sub-blocks, or motion information signaled for the encoded block (CU) can be commonly used for all sub-blocks of the CU.
[0175] When reconstructing the CU sequentially in units of sub-blocks, a predicted block 1060 obtained by performing inter prediction on the CU can be used in the reconstruction process of each sub-block. As Figure 10b shown, in the case where the first sub-block has been reconstructed and the second sub-block of the encoded block (CU) is in the reconstruction process, a weighted sum (or weighted average) is performed on (1) a predicted sub-block corresponding to the second sub-block and extracted from the predicted block 1060, and (2) a predicted sub-block 1010 generated by performing intra prediction on the second sub-block, thereby generating a final predicted sub-block 1030 of the second sub-block. The predicted block 1060 of the CU may have to be generated and stored in a buffer before generating the final predicted sub-block of the first sub-block until the final predicted sub-block of the fourth sub-block is generated.
[0176] Therefore, in some embodiments, when the above intra-coding tools are applied to a current block, the video decoding device can reconstruct the current block sequentially in units of sub-blocks in the following manner for processing a target sub-block to be reconstructed: generating its intra-predicted sub-block and inter-predicted sub-block; performing a weighted average on the two predicted sub-blocks to generate a final predicted sub-block of the target sub-block; adding the final predicted sub-block to a residual sub-block decoded from the bitstream. This can reconstruct the target sub-block.
[0177] It should be understood that the above description presents illustrative embodiments that can be implemented in various other ways. The functions described in some embodiments can be implemented by hardware, software, firmware, and / or combinations thereof. It should be understood that the functional components described in this specification have been labeled as "... unit" to emphasize their independent realizability.
[0178] On the other hand, the various methods or functions described in the present invention may be implemented as instructions stored in a non-volatile recording medium, and the instructions may be read and executed by one or more processors. The non-volatile recording medium includes all types of recording devices that store data in a form readable by a computer system. For example, the non-volatile recording medium may include storage media such as erasable programmable read-only memory (EPROM), flash drives, optical disk drives, magnetic hard disk drives, and solid state drives (SSD), and the like.
[0179] Although exemplary embodiments of the present invention have been described for purposes of illustration, those skilled in the art will understand that various modifications, additions, and substitutions can be made without departing from the spirit and scope of the claimed invention. Therefore, the exemplary embodiments of the present invention have been described for the sake of simplicity and clarity. The scope of the technical idea of the present invention is not limited by the illustration. Accordingly, those of ordinary skill in the art should understand that the scope of the claimed invention is not limited by the embodiments described above in detail, but is limited by the claims and their equivalents.
Claims
1. A video decoding device for reconstructing a current block using intra prediction, the video decoding device comprising: A memory; A processor connected to the memory, the processor configured to: Decode from a bitstream a split flag indicating whether to split the current block into a plurality of sub - blocks, wherein the split flag is decoded based on the width and height of the current block, the area of the current block, and the minimum and maximum transform sizes allowable for transforming transform coefficients; Determine whether to split the current block into a plurality of sub - blocks based on the split flag; When the current block is split into a plurality of sub - blocks, determine the split direction between the horizontal split direction and the vertical split direction based on split information decoded from the bitstream, and determine the number of sub - blocks based on the width and height of the current block; Reconstruct the current block using intra prediction by sequentially reconstructing the sub - blocks specified according to the split direction and the number of sub - blocks; and Set a grid of N samples at regular intervals in the horizontal and vertical directions, and perform de - blocking filtering on the boundaries that coincide with the boundaries of the grid among the boundaries between the reconstructed sub - blocks of the current block, wherein when the width and height of the current block are greater than the maximum transform size, the split flag is not decoded from the bitstream and the split flag is set to a value indicating that the current block is not split.
2. The video decoding device according to claim 1, wherein Reconstructing the current block includes: Predicting a target sub - block currently to be reconstructed in the sub - block from previously reconstructed pixels around the target sub - block to generate an intra - prediction sub - block; Generating a residual sub - block with a residual signal by the following steps: Decoding from the bitstream transform coefficient information corresponding to the target sub - block to reconstruct the transform coefficients, and Performing inverse quantization and inverse transformation on the transform coefficients using a transform size equal to that of the target sub - block; and Reconstructing the target sub - block by using the intra - prediction sub - block and the residual sub - block, wherein the pixels in the reconstructed target sub - block are used for intra - prediction of subsequent sub - blocks in the current block.
3. The video decoding apparatus according to claim 2, wherein, Decoding of the transform coefficient information corresponding to the target sub - block includes: Decoding from the bitstream a sub - block flag indicating whether non - zero transform coefficients exist in the target sub - block based on the position of the target sub - block in the current block and the number of sub - blocks; and When the sub - block flag indicates that non - zero transform coefficients exist in the target sub - block, reconstructing the transform coefficients corresponding to the target sub - block from the bitstream.
4. The video decoding apparatus according to claim 3, wherein, Unless the sub - block flag is decoded from the bitstream, the sub - block flag is set to a value indicating that non - zero transform coefficients exist in the sub - block.
5. The video decoding device according to claim 2, wherein, Reconstructing the current block includes: Determining a motion vector of the target sub - block and generating an inter - prediction sub - block of the target sub - block by using the motion vector; and Generating a prediction sub - block of the target sub - block by calculating a weighted average of the intra - prediction sub - block and the inter - prediction sub - block, wherein the target sub - block is reconstructed by adding the prediction sub - block and the residual sub - block.
6. A video encoding device for reconstructing a current block using intra prediction, the video encoding device comprising: A memory; A processor connected to the memory, the processor configured to: Encode a splitting flag indicating whether the current block is split into multiple sub - blocks into the bitstream based on the width and height of the current block, the area of the current block, and the minimum and maximum transform sizes allowed for transforming the transform coefficients; When the current block is split into multiple sub - blocks, determine the splitting direction between the horizontal splitting direction and the vertical splitting direction of the current block, and determine the number of sub - blocks based on the width and height of the current block; Encode the splitting information specifying the splitting direction into the bitstream; Use intra - prediction to encode the current block by sequentially encoding and reconstructing the sub - blocks; And Set a grid of N samples at regular intervals in the horizontal and vertical directions, and perform de - blocking filtering on the boundaries that coincide with the boundaries of the grid in the boundaries between the reconstructed sub - blocks of the current block. Wherein, when the width and height of the current block are greater than the maximum transform size, the processor is further configured not to encode the splitting flag into the bitstream.
7. A method for storing a bitstream of encoded video data, the method comprising: Encode video data into a bitstream by performing an encoding method; Store the bitstream in a non - volatile computer - readable recording medium, wherein encoding the video data includes: Encode a splitting flag indicating whether the current block is split into multiple sub - blocks into the bitstream based on the width and height of the current block, the area of the current block, and the minimum and maximum transform sizes allowed for transforming the transform coefficients; When the current block is split into multiple sub - blocks, determine the splitting direction between the horizontal splitting direction and the vertical splitting direction of the current block, and determine the number of sub - blocks based on the width and height of the current block; Encode the splitting information specifying the splitting direction into the bitstream; Use intra - prediction to encode the current block by sequentially encoding and reconstructing the sub - blocks; and Set a grid of N samples at regular intervals in the horizontal and vertical directions, and perform de - blocking filtering on the boundaries that coincide with the boundaries of the grid in the boundaries between the reconstructed sub - blocks of the current block, wherein when the width and height of the current block are greater than the maximum transform size, the splitting flag is not encoded into the bitstream.
Citation Information
Patent Citations
Range-gated depth camera assembly
KR1020190028356A