Video decoding method, video encoding method, and method for providing bitstream containing video data
By splitting prediction units into sub-units and applying intra-prediction with a grid and deblocking filters, the method addresses inefficiencies in existing video compression technologies, enhancing prediction accuracy and coding efficiency.
Patent Information
- Application Number
- CN202510737184.8
- 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-15
AI Technical Summary
When existing video compression technology processes high-resolution and high-frame rate videos, the distance between the reference samples and the current block samples 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 CN120321394A_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 typically 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, 256 sample values belonging to the 16×16 block are predicted by using their neighboring samples. Due to the spatial correlation in 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 a 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 by 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 a 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 by 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, a 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 It is a block diagram showing a video encoding device capable of implementing the technology of the present invention.
[0015] Figure 2 It is a schematic diagram for explaining a method of dividing a block by using a QTBTTT structure.
[0016] Figure 3a It is a schematic diagram showing multiple intra prediction modes.
[0017] Figure 3b It is a schematic diagram showing multiple intra prediction modes including a wide-angle intra prediction mode.
[0018] Figure 4 It is a block diagram showing a video decoding device capable of implementing the technology of the present invention.
[0019] Figures 5a to 5c It is a schematic diagram showing the types of multiple sub-blocks into which a current block can be divided when the current block is intra-prediction encoded according to at least one embodiment of the present invention.
[0020] Figure 6 It 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.
[0021] Figure 7 It is a flowchart of a method for intra-prediction encoding a current block of a video performed by a video encoding device according to at least one embodiment of the present invention.
[0022] Figure 8 It 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.
[0023] Figure 9 It 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 device according to at least one embodiment of the present invention.
[0024] Figure 10a and Figure 10b It 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. Further, in the following description of some embodiments, when it is considered that the subject matter of the present invention is obscured, specific descriptions of related known components and functions will be omitted for clarity and conciseness.
[0026] Figure 1 is a block diagram showing a video encoding apparatus capable of implementing the technology of the present invention. In the following, reference will be made to Figure 1 describe the video encoding apparatus and sub-components of the apparatus.
[0027] The video encoding apparatus may be configured to include: an image segmentation unit 110, a prediction unit 120, a subtractor 130, a transformation unit 140, a quantization unit 145, a rearrangement unit 150, an entropy encoding unit 155, an inverse quantization unit 160, an inverse transformation unit 165, an adder 170, a filtering unit 180, and a memory 190.
[0028] Each component of the video encoding apparatus 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. The images are respectively segmented into multiple regions, and encoding is performed on each region. For example, one 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, while information applied to all blocks constituting one image is encoded in the Picture Parameter Set (PPS) or the image header. Further, 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 on 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), and the coding unit (CU) 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 layer node (or a parent node) is divided into four lower layer nodes (or child nodes) of the same size. In the binary tree (BT), an upper layer node is divided into two lower layer nodes. In the ternary tree (TT), an upper layer node is divided into three lower layer 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 layer 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 horizontally and vertically dividing the block of the relevant node. As Figure 2As shown, when 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 encodes and signals to the video decoding apparatus a flag indicating the partition or splitting type (binary or ternary).
[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., the 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 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 a CTU, a 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 predictively encoded separately. The prediction of the current block can generally be performed by using intra prediction techniques or inter prediction techniques, where intra prediction techniques use data from the image containing the current block, while inter prediction techniques use data from an image that has 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 correspondence definition of neighboring pixels and calculation formulas to be used.
[0040] For effective direction prediction of a current block with 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 arrow. The wide-angle intra prediction mode is a mode in which, when the current block has a rectangular shape, prediction is performed in a direction opposite to a specific direction mode without additional bit transmission. In this case, in the wide-angle intra prediction mode, the ratio of the width to the height of the rectangular current block can be used to determine some of the wide-angle intra prediction modes available for the 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 several 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 several tested intra prediction modes and select the intra prediction mode with the best rate-distortion characteristics among 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 encoding unit 155 and transmitted to the video decoding device.
[0043] The inter prediction unit 124 generates a prediction block for 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 for 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 encoding unit 155 encodes motion information including information about the reference image and information about the motion vector used for predicting 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 using only 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 encoding 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 encoding unit 155 and signaled to the video decoding device.
[0046] In addition, a maximum and / or minimum transform size may 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 may 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 may 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 may perform rearrangement of coefficient values with the quantized transform coefficients. The rearrangement unit 150 may change a two-dimensional coefficient array into a one-dimensional coefficient sequence by using coefficient scanning. For example, the rearrangement unit 150 may scan coefficients from the DC coefficient to the coefficients in the high-frequency region pair by pair 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 may 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 may 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 the 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 generate a bitstream through encoding.
[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 device to split blocks in the same manner as the video encoding device. 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 the 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 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 coding.
[0055] The reconstructed blocks are filtered by the deblocking filter 182 and the SAO filter 184 and stored in the memory 190. When all blocks in an image are reconstructed, the reconstructed image can be used as a reference image for inter prediction of blocks in subsequent images to be encoded.
[0056] Figure 4 is a functional block diagram of a video decoding device capable of implementing the technology of the present invention. Hereinafter, the video decoding device and the sub-components of the device will be described with reference to Figure 4 Describe the video decoding device and the sub-components of the device.
[0057] The video decoding apparatus 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 apparatus, each component of the video decoding apparatus 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 apparatus 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 of 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 a 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. And 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 by tree-structured 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) for 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 quantized transform coefficients of the current block as information about a 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 an order opposite to 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 inverse-transforms the inverse-quantized transform coefficients from the frequency domain to the spatial domain to reconstruct a residual signal, thereby generating a residual block of the current block.
[0068] In addition, when the inverse transform unit 430 only inverse-transforms 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, sub-block directionality (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or sub-block position information (cu_sbt_pos_flag), and inverse-transforms the transform coefficients of the sub-block from the frequency domain to the spatial domain to reconstruct a residual signal. At the same time, the inverse transform unit 430 fills the remaining region not inverse-transformed with a "0" value as a 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 transformation 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 adjacent 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 the 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 the 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, that is, 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 in detail.
[0075] In intra prediction, prediction is performed using previously reconstructed samples adjacent to the current block, where the adjacent samples used for intra prediction are referred to as reference samples. Generally, in intra prediction, all samples in the current block are predicted using the reference samples as a whole. For example, for a 16×16 block, the 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 lead to inaccurate predicted values.
[0076] The intra coding tools described below involve dividing the CU in the vertical direction or the 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 based on the adjacent samples of the current block (CU), the second sub - block can be predicted based on the adjacent samples of the second sub - block including the samples of the first sub - block, the third sub - block can be predicted based on the adjacent samples of the third sub - block including the samples of the second sub - block, and the fourth sub - block can be predicted based on the adjacent samples including the samples of the third sub - block. In this way, instead of predicting all the pixels of the current block (CU) based on 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 encoded, 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 split flag that indicates that the current block is split into multiple sub-blocks and intra-prediction is performed for each sub-block. Thus, the video decoding device can decode the split flag from the bitstream of the video data and determine whether to split the current block based on the split flag. A split flag with a first value (e.g., "0") indicates that the current block is not split into multiple sub-blocks, while a split flag with a second value (e.g., "1") indicates that the current block has been split into multiple sub-blocks and intra-prediction is performed for each sub-block.
[0081] Rather than explicit signaling (i.e., decoding from the bitstream), the split 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 instead is 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 instead is 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 can 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 can 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 the 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 the 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 can be provided in various ways. For example, the direction and number of sub-block partitions can 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 partitioning 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 based on 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 encoding 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 a plurality of 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 the plurality of 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 the plurality of 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 the intra prediction mode candidates, and 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 the 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 a plurality of 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 among the plurality of 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 generate a residual sub-block having a residual signal by performing inverse quantization and inverse transform on the transform coefficients using the same transform size as that of the target sub-block. 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 top-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 at 4 samples, it may not be allowed for the prediction of 1×N / 2×N sub-blocks to depend on the reconstructed values of 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 features, namely storing the results of 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 the CTU or 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 sub-blocks of size 2×N (or N×2) or 4×N (or N×4). Although a grid of 8×8 units 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, depending on 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 horizontal deblocking filtering may be performed, and vertical deblocking filtering 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. Thus, the video decoding device 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 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 and the ALF may be performed in units such as {N×1, 1×N, N×2, 2×N}. In another example, the present invention can avoid calculating the parameters (or filter coefficients) for determining whether to perform deblocking filtering by configuring deblocking filtering to have been performed or never performed on the current block. As another example, the present invention adapts to change 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 coded 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, a CBF of "0" can indicate that all coefficients in the relevant sub-block are zero coefficients, while a CBF of "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 divided sub-blocks, the size (width or height) of the sub-blocks, the intra prediction mode, the position of the block, the QP, the number of pixels included in the sub-blocks, 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 the sub-blocks of a given current block is no more 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 divided 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 divided 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] The 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, the 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 may 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 a current block, the DQP may be determined for each sub-block. In this case, the present invention may check a flag to determine whether to use the DQP in sub-block units, or may check whether to apply the DQP through an advanced syntax.
[0118] In some examples, when the intra prediction tool of the present invention is applied to a current block, the same QP may be used for all sub-blocks. Accordingly, the QP value of the current block may 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 may be inferred by the transmitted DQP value and the advanced syntax.
[0119] In some other examples, different DQPs may be used for each sub-block. In this case, the QP of each sub-block may 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 may be determined by the DQP between the respective sub-blocks, or the QP of the current block may be determined by using the QP of a specific sub-block.
[0120] In some other examples, the QP of the current block may be signaled, or the value of the QP to be used may 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 may 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 the 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 most probable mode (MPM) processing. For example, the mode selector 610 may set the intra prediction modes of neighboring blocks adjacent to the current block (e.g., a block located at the top of the current block and a block located to the left 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 matching 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 the intra coding tool of the present invention that sequentially predicts the current block in units of sub-blocks. In this case, the mode selector 610 may perform rate-distortion analysis to determine the direction of 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 the horizontal direction or divide the current block into a plurality of sub-blocks in the 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 larger 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] 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 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. For a current block greater than 32×N or N×32, the number of sub-blocks can be determined to be 8.
[0132] The splitting direction can be determined to be 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 to be horizontal splitting. When the width of the current block is less than its height, the splitting direction can be determined to be 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 to be horizontal or vertical based on the directionality of the prediction mode 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 adjacent 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 adjacent 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 prediction 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 the current block when performing intra prediction of the plurality of sub-blocks. Then, a residual sub-block may be generated by referring to the corresponding sub-block of the current block minus the prediction sub-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 prediction 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 previous 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 device according to at least one embodiment of the present invention.
[0137] In step S710, the video encoding device may determine an intra prediction mode to be used for encoding the current block. Additionally, the video encoding device 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 device 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 device may utilize most probable mode (MPM) processing for signaling the intra prediction mode of the current block. In addition, the video encoding device may signal a split flag indicating whether the current block is predicted after being split into a plurality of sub-blocks.
[0139] In some cases, the video encoding device 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 split 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 can be provided in various ways. For example, a video coding device can signal splitting 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 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 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.
[0143] The video coding device can explicitly signal a flag indicating the direction of sub - block partition (e.g., whether the direction is horizontal or vertical). 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 splitting, and when the width of the current block is less than its height, the splitting direction can be determined to be vertical splitting. In this case, signaling the flag indicating the splitting direction can be omitted.
[0144] In step S730, when the intra - coding tool of the present invention is applied to the current block, the video coding device can sequentially encode a plurality of sub - blocks by using the intra - prediction mode determined for the current block.
[0145] For example, the video coding device can generate a predicted 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 coding device can generate a residual sub - block from the target sub - block and the predicted sub - block (S734). The video coding device can transform and quantize the residual sub - block by using the same transform size as the target sub - block (S736). The video coding device can perform entropy coding on the quantized transform coefficients (S738). In addition, the video coding device can reconstruct the residual sub - block by applying inverse quantization / inverse transform processing to the quantized transform coefficients, and can add the reconstructed residual sub - block to the predicted sub - block to generate a reconstructed sub - block (S738). In particular, the pixels in the reconstructed sub - block can be used for intra - prediction of the next sub - block in the current block. Through this process, when horizontally split, the current block is sequentially processed in the downward direction starting from the sub - block including the upper - left sample of the current block, and when vertically split, the current block is sequentially processed in the right - hand direction.
[0146] In step S740, the video coding device can perform de - blocking filtering and other processing on the reconstructed current block, and can store the filtered current block in a buffer (e.g., Figure 1in the memory 190) for use as a reference image for inter prediction of unprocessed blocks to be encoded in the 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 through 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 the split flag 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, and 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 the 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 currently - to - be - reconstructed sub - block in multiple sub - blocks based on 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 reconstruction signal of the previous sub - block and the reconstruction 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 is a flowchart of a method for decoding an intra - prediction - coded current block from a 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 indicating whether to split a current block from a bitstream 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 transform size and the maximum transform size 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 transform size and the maximum transform size 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 through 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 split, and when the width of the current block is less than its height, the split direction may be determined to be vertical split.
[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). The 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 partitioning direction is horizontal or vertical. For example, when the partitioning 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 partitioning 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) sequentially in units of sub-blocks 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) for the sub-blocks. 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 the motion information signaled for the encoded block (CU) can be commonly used for all sub-blocks of the CU.
[0175] When reconstructing a 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, a video decoding apparatus can sequentially reconstruct the current block in units of sub-blocks in the following manner of processing a target sub-block to be reconstructed: generating an intra predicted sub-block and an inter predicted sub-block thereof; 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 a 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 highlight their independent realizability.
[0178] On the other hand, the various methods or functions described in the present invention can be implemented as instructions stored in a non-volatile recording medium, and the instructions can 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 disc 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 illustrative purposes, 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, for the sake of simplicity and clarity, exemplary embodiments of the present invention have been described. 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 clearly described above, but is limited by the claims and their equivalents.
Claims
1. A video decoding apparatus for reconstructing a current block using intra prediction, the video decoding apparatus 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 according to the width and height of the current block, the area of the current block, and the minimum transform size and the maximum transform size 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 a split direction between the horizontal split direction and the vertical split direction of the current block 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 by 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 deblocking filtering on a boundary that coincides with the boundary 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, the processor is further configured to determine an intra prediction mode of the current block, and perform intra prediction on each of the sub-blocks based on the intra prediction mode of the current block.
2. The video decoding apparatus 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 transform coefficient information corresponding to the target sub-block from the bitstream to reconstruct transform coefficients, and performing inverse quantization and inverse transform on the transform coefficients by 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 pixels in the reconstructed target sub-block are used for intra prediction of subsequent sub-blocks in the current block.
3. The video decoding device 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 1, wherein, Determining the intra prediction mode of the current block includes: selecting a preset number of intra prediction mode candidates from a plurality of available intra prediction modes; determining the intra prediction mode of the current block from the intra prediction mode candidates by using the intra prediction mode information of the current block, wherein the intra prediction mode candidates are selected in different ways according to whether the split direction is the horizontal split direction or the vertical split direction.
6. The video decoding apparatus according to claim 5, wherein, When the splitting direction is horizontal, among the multiple available intra prediction modes, the vertical orientation mode is selected as the intra prediction mode candidate prior to the horizontal orientation mode; When the splitting direction is vertical, among the multiple available intra prediction modes, the horizontal orientation mode is selected as the intra prediction mode candidate prior to the vertical orientation mode.
7. The video decoding device according to claim 2, wherein, Reconstructing the current block includes: Determining the motion vector of the target sub-block and generating an inter prediction sub-block of the target sub-block by utilizing the motion vector; and Generating a prediction sub-block of the target sub-block by calculating the 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.
8. A video coding apparatus for reconstructing a current block by utilizing intra prediction, the video coding apparatus comprising: A memory; A processor connected to the memory, the processor being configured to: Encode a splitting flag indicating whether the current block is split into multiple sub-blocks into a bitstream based on the width and height of the current block, the area of the current block, and the minimum transformation size and the maximum transformation size allowable 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 splitting information specifying the splitting direction into the bitstream; Encode the current block by sequentially encoding and reconstructing the sub-blocks by utilizing intra prediction; And Set a grid of N samples at regular intervals in the horizontal and vertical directions and perform deblocking filtering on the boundaries coinciding 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 transformation size, the processor is further configured not to encode the splitting flag into the bitstream, The processor is further configured to determine the intra prediction mode of the current block and perform intra prediction on each of the sub-blocks based on the intra prediction mode of the current block.
9. A method for storing a bitstream of encoded video data, the method comprising: Encoding video data into a bitstream by performing an encoding method; Storing the bitstream in a non-volatile computer-readable recording medium, wherein encoding the video data includes: Encoding a splitting flag indicating whether the current block is split into multiple sub-blocks into a bitstream based on the width and height of the current block, the area of the current block, and the minimum transformation size and the maximum transformation size allowable 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; Encoding splitting information specifying the splitting direction into the bitstream; Encoding the current block by sequentially encoding and reconstructing the sub-blocks by utilizing intra prediction; and Set a grid of N samples at regular intervals in the horizontal and vertical directions and perform deblocking filtering on the boundaries coinciding with the boundaries of the grid in the boundaries between the reconstructed sub-blocks of the current block, Among them, when the width and height of the current block are greater than the maximum transform size, the split flag is not encoded into the bitstream. When determining the intra prediction mode of the current block, intra prediction is performed for each of the sub-blocks based on the intra prediction mode of the current block.
Citation Information
Patent Citations
Range-gated depth camera assembly
KR1020190028356A