A split-block encoding method for video encoding, a split-block decoding method for video decoding, and a recording medium for implementing the same.
The method enhances video encoding efficiency by allowing both intra-screen and inter-screen predictive coding for subdivided blocks, using variable block-size transforms, addressing inefficiencies in conventional methods for super macroblocks.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- KOREA ADVANCED INST OF SCI & TECH
- Filing Date
- 2024-11-29
- Publication Date
- 2026-06-30
AI Technical Summary
Conventional video encoding methods face reduced coding efficiency when dealing with super macroblocks or larger coding units due to the limitation of applying only intra-screen or inter-screen predictive coding, which is inefficient for high-definition and ultra-high-definition video coding.
A method that allows for the selection of both intra-screen and inter-screen predictive coding modes for subdivided blocks, along with the application of square or non-square transformation kernels based on block size, to enhance coding efficiency.
This approach increases encoding flexibility and efficiency by enabling both intra-screen and inter-screen predictions, particularly for super macroblocks, using variable block-size transforms, thereby improving coding performance.
Smart Images

Figure 0007882928000004 
Figure 0007882928000005 
Figure 0007882928000006
Abstract
Description
Technical Field
[0001] The present invention relates to a method for encoding and decoding an input screen in units of blocks in video encoding and decoding, and a method for encoding and decoding the divided blocks by simultaneously using intra-screen and inter-screen predictive encoding. In particular, the encoding efficiency can be improved, and the encoding efficiency can be further improved by encoding a block video signal by using squared conversion or non-squared conversion depending on the size of the divided block. The present invention relates to a method for encoding and decoding divided blocks using intra-screen and inter-screen prediction in video encoding.
Background Art
[0002] Video compression / encoding technologies jointly standardized by ISO / IEC and ITU-T, such as ISO / IEC 14496-10 (MPEG-4 Part 10 Advanced Video Coding) or H.264 and ISO / IEC 14496-10 Amendment 3 (MPEG-4 Scalable Video Coding) standards, the VC-1 SMPTE standard, and other Audio Video coding Standard (AVS) standards, etc., have made much progress in video data compression efficiency.
[0003] Thus, there can be various factors contributing to the improvement of video compression efficiency. In particular, different from the existing video encoding standards (such as MPEG-1 Video, MPEG-2 Video, MPEG-4 Part 2 Visual, H.261, H.263, etc.) which divide the size of the screen to be encoded into macroblocks (16×16 pixels) and then perform predictive encoding on them, the macroblocks are further subdivided and divided into units of 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4, and predictive encoding is performed on these lower-level blocks. The block that generates cost minimization from the perspective of rate distortion cost is set to the optimal block mode for encoding.
[0004] Thus, by more effectively predicting subtle movements and complex image motion, and significantly reducing the resulting residual signals, compression efficiency can be greatly improved.
[0005] Figure 1 is a diagram showing the division block types of 16x16 macroblock units for encoding in conventional H.264 / AVC encoders, illustrating the seven motion prediction block division types used in H.264.
[0006] As shown in Figure 1, block-based predictive coding schemes typically divide the input video into 16x16 macroblock units for coding. In particular, the ISO / IEC 14496-10 (MPEG-4 Advanced Video Coding) or H.264 standard divides the macroblock into seven subblocks, and predictive coding is performed by selecting the block that minimizes the rate distortion cost, as shown in Figure 1.
[0007] For a 16x16 macroblock to be encoded, if the subblocks are divided, when encoding within the screen, the macroblock will either perform predictive encoding within the screen in a single 16x16 pixel unit, or it will be divided into subblocks and perform predictive encoding within the screen in four 8x8 blocks, or predictive encoding within the screen in sixteen 4x4 blocks.
[0008] Generally, in low-resolution video coding, such in-screen predictive coding techniques are efficient because they reduce the number of cases for various block modes. However, they present problems in high-definition (HD) and ultra-high-definition (UHD) video coding. Specifically, in the case of super macroblocks with a size of 32x32 or larger, which are an extension of the 16x16 macroblock that is the coding unit block, applying in-screen predictions based on 16x16, 8x8, or 4x4 blocks to the modes of all divided blocks within the super macroblock, as in existing methods, results in reduced coding efficiency.
[0009] In other words, a notable aspect of conventional split-block-based predictive coding methods is that all split blocks are coded through intra-screen or inter-screen predictive coding. That is, instead of applying both intra-screen and inter-screen predictive coding for split blocks, only one method is selected and applied. While applying only one of the intra-screen or inter-screen coding methods can simplify the syntax representing the block coding mode and potentially improve coding efficiency in image or video compression at HD resolution or lower, it can act as a factor that reduces coding efficiency when the coding unit is a super-macroblock or larger than a macroblock. [Overview of the project] [Problems that the invention aims to solve]
[0010] The present invention was made to solve the aforementioned problems, and its objective is to provide a more effective predictive coding method by extending the intra-screen or inter-screen predictive coding selection method to sub-divided blocks of divided blocks during video coding, thereby enabling selection of both intra-screen and inter-screen predictive coding modes, and by selectively applying a square or non-square transformation kernel based on the block size to the residual signal after motion compensation of the divided blocks to perform coding.
[0011] Another object of the present invention is to provide a recording medium that can be read by a computer on which the above method is implemented. [Means for solving the problem]
[0012] To achieve the above objective, a segmented block coding method for video coding according to one aspect of the present invention includes the steps of: dividing an input screen into coding unit blocks; dividing the coding unit blocks into subblocks; and coding the subblocks using one or more of the following methods: predictive coding within a screen or predictive coding between screens.
[0013] A segmented block coding method in video coding may further include the steps of: selectively applying a variable block-size transform kernel to the residual signal through the coding unit block and subblocks according to the block size to perform a transformation; quantizing the transformed residual signal; and entropy coding the result.
[0014] The residual signal passed through the aforementioned lower block can be coded by selectively applying one or more de-blocking filters depending on the block size and coding type.
[0015] The size of the coding unit block is an N*N square, and the coding unit block can be divided into one or more subblocks of any size, either squared or non-squared.
[0016] When encoding the aforementioned square or non-square subblocks using in-screen predictive coding, one of one or more in-screen predictive coding methods can be selected to perform the encoding.
[0017] When performing predictive coding within a screen or between screens on the aforementioned square or non-square lower blocks, entropy coding can be performed by scanning the quantized transformation coefficients selected by the block size. When performing predictive coding within a screen or between screens on the aforementioned square or non-square subblocks, entropy coding can be performed by selectively applying one or more scan methods to the quantized transformation coefficients according to the block size.
[0018] The lower blocks of the aforementioned square can be transformed by applying a square transformation kernel.
[0019] When applying a square transformation kernel to the lower block of the square to perform the transformation, the horizontal pixel count and vertical pixel count of the lower block of the square can be compared, and a square transformation kernel corresponding to the smaller or identical pixel count can be applied.
[0020] The aforementioned non-square lower blocks can be transformed by applying a non-square transformation kernel.
[0021] When applying a non-square transformation kernel to the non-square lower block to perform the transformation, the horizontal pixel count and vertical pixel count of the non-square lower block can be compared, and a non-square transformation kernel corresponding to the smaller or identical pixel count can be applied. When applying a non-square conversion kernel to the non-square lower block to perform the conversion, the horizontal pixel count and vertical pixel count of the non-square lower block are compared, and a square conversion kernel corresponding to the larger pixel count size is applied sequentially to the input signal.
[0022] Furthermore, a split-block coding method for video coding according to another aspect of the present invention may include: (a) inputting a screen to be coded; (b) dividing the input screen into coding unit blocks; (c) dividing each input coding unit block into subblocks; (d) performing predictive coding within the screen and predictive coding between screens on the coding unit blocks and their subblocks, and selecting one block type from among them; and (e) using the prediction results of the block type to perform predictive coding within the screen and / or between screens on the coding unit blocks and their subblocks.
[0023] Furthermore, a segmented block coding method in video coding according to yet another aspect of the present invention includes: (a') the step of inputting a screen to be coded; (b') the step of dividing the input screen into coding unit blocks; (c') the step of determining whether the current input screen performs inter-screen predictive coding; (d') the step of initializing the order of the lower blocks of the coding unit block to be coded in the input screen if the current input screen is inter-screen predictive coding; (e') the step of selecting the block mode of the coding unit block to be coded; (f') the step of determining whether to perform both intra-screen and inter-screen predictive coding for the selected block mode; and (g') the step of performing intra-screen and inter-screen predictive coding for the selected block mode. When encoding is performed together, the process includes: (h') a step of performing predictive encoding within and between screens for the selected block mode; (h') a step of saving the predictive encoding result and rate distortion cost value from step (g'); (i') a step of comparing the rate distortion costs for each block mode if the selected block mode is the final mode, selecting the final block mode for the encoding unit block and determining the encoding; (j') a step of determining whether the current encoding unit block is the final block on the current input screen; and (k') a step of determining whether the current input screen is the final screen if the current encoding unit block is the final block on the current input screen, and repeating steps (a') to (j') until the current input screen becomes the final screen.
[0024] After the (c’) stage, if the current input screen is not a prediction between screens, it can further include a stage of performing in-screen predictive coding.
[0025] After the (f’) stage, if predictive coding both within the screen and between screens is not performed for the selected block mode, it can further include a stage of performing predictive coding between screens for the selected block mode.
[0026] After the (g’) stage, if predictive coding between screens is performed for the selected block mode, it can further include a stage of obtaining a residual signal through motion prediction and compensation execution, converting the selected block using this residual signal, quantizing this, and then entropy coding the result.
[0027] After the (g’) stage, if predictive coding within the screen is performed for the selected block mode, it can further include a stage of obtaining a residual signal through in-screen predictive coding, converting the selected block using this residual signal, quantizing this, and then entropy coding the result.
[0028] When converting the selected block using the residual signal, it can further include a stage of selectively applying a conversion kernel according to the block size to perform the conversion.
[0029] Furthermore, a video decoding method by a segmented block coding method according to yet another embodiment of the present invention includes the steps of: (A) inputting a bitstream to be decoded; (B) determining whether the input bitstream is a prediction between screens; (C) performing a prediction coding within a screen if the input bitstream is a prediction between screens; (D) interpreting a slice if the input bitstream is a prediction between screens; (E) interpreting a unit coding block within a slice; (F) decoding the coding mode of a unit coding sub-segment block; and (G) sub-segment coding block The division block can perform prediction within a screen and / or prediction decoding between screens, which may include the steps of: (H) interpreting whether or not the division block is a prediction between screens; (I) performing prediction decoding between screens if the division block is a prediction between screens; (J) configuring the result of the division block decoding with unit decoded block pixels; (K) configuring the result of the decoded unit block with slice pixels; and (K) configuring the result of the slice pixel configuration with a screen.
[0030] In step (C) above, if the unit coding block is a super macroblock of a size of 16x16 macroblocks or larger, the step may further include decoding the sub-divided block coding mode corresponding to that size and performing predictive decoding within the screen.
[0031] The (C) step may further include a step of performing predictive decoding within the screen by applying a deblocking filter corresponding to the size of the sub-divided blocks.
[0032] The (C) step may further include a step of applying a de-blocking filter based on the size of the sub-divided blocks to perform predictive decoding within the screen.
[0033] In step (F) above, if the unit coding block is a super macroblock of a size of 16x16 macroblocks or larger, the step of decoding the sub-partition block coding mode corresponding to that size may be further included.
[0034] The (H) step may further include a step of applying a square or non-square transformation corresponding to the size of the sub-partition block to the kernel to decode the encoded quantization transformation coefficients and performing predictive decoding within the screen.
[0035] The (H) step may further include a step of applying an inverse quantization method based on the size of the sub-partition block and the decoding mode conditions of the peripheral decoding block to decode the encoded quantization transformation coefficients and perform predictive decoding within the screen.
[0036] The (H) step may further include a step of performing predictive decoding between screens by applying a deblocking filter corresponding to the size of the sub-divided block.
[0037] Furthermore, the present invention provides a segmented block decoding method for video decoding, characterized in that the input video bitstream is encoded in unit coding blocks, and the lower blocks of the unit coding blocks are encoded using one or more of the in-screen predictive coding and inter-screen predictive coding, and the method includes a step of decoding the video bitstream. The present invention also provides a segmented block decoding method for video decoding, comprising the steps of: (a) inputting a screen bitstream to be decoded; (b) interpreting the input screen bitstream in slice units; (c) interpreting the decoding unit blocks of the slices; (d) decoding the sub-segmented block coding mode of the unit decoding block; and (e) using the segmented sub-block type result to perform intra-screen predictive decoding and / or inter-screen predictive decoding on its lower blocks, including the decoding unit block. In another embodiment of the present invention, a computer-readable recording medium is provided which contains a program that allows the above method to be executed by a computer. [Effects of the Invention]
[0038] The present invention, when encoding a unit block pixel value in video encoding, applies one or more in-screen predictive encoding and inter-screen predictive encoding to a divided subblock or its lower divided block, thereby enabling the divided block to be encoded in either an in-screen or inter-screen predictive encoding mode. This increases the flexibility of encoding mode selection and improves encoding efficiency, as the unit block or its sub-divided block is predictively encoded using both in-screen and inter-screen prediction.
[0039] Furthermore, in the present invention, in predictive coding based on divided blocks, each divided block can apply both in-screen and inter-screen predictions to the lower subdivided block, and by selectively applying a variable block-size transform kernel size according to the size of the divided block and performing coding, the coding efficiency can be greatly improved. [Brief explanation of the drawing]
[0040] [Figure 1] This diagram shows the division block types of 16x16 macroblock units for encoding in a conventional H.264 / AVC encoder. [Figure 2] This figure illustrates super macroblock unit blocks and segmented block types for predictive coding within or between screens in an encoder according to one embodiment of the present invention. [Figure 3] This flowchart illustrates a segmented block encoding method for video encoding according to one embodiment of the present invention. [Figure 4]This flowchart illustrates a method for decoding a bitstream encoded using a video segmentation block method according to one embodiment of the present invention. [Modes for carrying out the invention]
[0041] Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings. First, when assigning reference numerals to the components in each drawing, it should be noted that, for the same components, the same reference numerals will be used as much as possible, even if they are shown in other drawings. Furthermore, when describing the present invention, if it is determined that a specific explanation of related known functions or configurations would obscure the gist of the present invention, such detailed explanation will be omitted.
[0042] Figure 2 illustrates super macroblock unit blocks and divided block types for predictive coding within or between screens in an encoder according to one embodiment of the present invention. Figure 2 shows an example of super macroblocks and block division types with a macroblock size of 16 × 16 pixels or larger applied in one embodiment of the present invention.
[0043] As can be seen in Figure 2, by dividing a super macroblock into subblocks, performing an in-screen or inter-screen predictive coding process on each divided block, and encoding the super macroblock in such a way that the final coding mode can be a mixture of in-screen or inter-screen predictive coding modes, the coding efficiency of the video can be increased very effectively. In fact, during coding, it is possible to select a block mode that minimizes the rate distortion cost, as shown in Equation 1.
[0044]
number
[0045] Here, J MODEis the rate distortion function for the block coding mode, s is the pixel input of the original block to be coded, r is the reference image pixel input, QP is the quantization parameter, λ is the mode-dependent Lagrange multiplier, and MODE indicates the partitioned block mode type.
[0046] Furthermore, when applying transform coding to residual signals of increased-size super macroblocks, coding efficiency can be increased by selectively applying square transform kernels of 16x16 or larger sizes (larger than the existing 4x4 and 8x8), or non-square transform kernels of 16x8, 8x16 or larger sizes for non-square transforms, depending on the size of the divided block.
[0047] When applying a square transformation kernel of 16x16 size or larger to a super macroblock, the calculation can be performed as shown in Equation 2.
[0048]
number
[0049] Here, X represents the NxN input video signal matrix, A represents the NxN square transformation kernel matrix, and Y represents the transformation coefficient matrix. If the divided subblock is a non-square block, the transformation is performed as shown in Equation 3.
[0050]
number
[0051] Here, if the input video signal X is an Mx(M / 2) matrix, A1 represents the MxM square transformation kernel matrix, A2 represents the (M / 2)x(M / 2) square transformation kernel matrix, and Y represents the transformation coefficient matrix.
[0052] In one embodiment of the present invention, when applying a square or non-square kernel transformation, it is preferable to compare the smaller of the horizontal or vertical pixel counts of the divided block with the size of the kernel and apply a kernel that is the same size or smaller to perform the transformation encoding.
[0053] Figure 3 is a flowchart showing a segmented block coding method for video coding according to one embodiment of the present invention.
[0054] Referring to Figure 3, first, the order of screen i for encoding is initialized (i=0) (S101). Then, screen i is input according to the order for encoding (S102).
[0055] Next, the input screen i is divided into encoding unit blocks (S103). In one embodiment of the present invention, the encoding unit blocks can be macroblocks or supermacroblocks.
[0056] Next, it is checked whether the current screen i performs inter-screen predictive coding (S104). If the current screen i is not inter-screen predictive coding, intra-screen predictive coding is performed (S105). Otherwise, if the current screen i is inter-screen predictive coding, the order of the coding unit blocks j encoded within a single screen i is initialized (j=0) (S106).
[0057] Next, the unit block j to be encoded is divided into lower blocks (S107). Then the order of the lower block modes k is initialized (k=0) (S108). One block mode is selected from the lower block modes k (S109).
[0058] The system checks whether prediction can be performed within and between screens for the lower block modes encoded in the coding unit block (S110). If prediction is to be performed between screens and within a screen, the system performs coding within and between screens (S111); otherwise, it performs only prediction coding between screens (S112). The system then saves the prediction coding result and the rate distortion cost value, which are the results of the coding execution (S113).
[0059] Check whether the lower block mode k is the final block mode (S114). If the lower block mode k is not the final block mode, repeat steps S109 to S113 for the next block mode. On the other hand, if the lower block mode k is the final block mode, determine the optimal division block mode and make the final selection of the encoded result (S115).
[0060] Then, it is determined whether the current coding unit block j is the last block on the current screen i (S116). If the current coding unit block j is not the last block, the next coding unit block is input, and steps S107 to S115 are repeated.
[0061] At step S116, if the encoded unit block j is the last block on the current screen i, check whether the current screen i is the final screen (S117). If the current screen i is the final screen, terminate the algorithm; otherwise, return to step S102, input the next screen, and repeat steps S102 to S116.
[0062] Figure 4 is a flowchart showing a method for decoding a bitstream encoded by a video segmentation block method according to one embodiment of the present invention.
[0063] Referring to Figure 4, first, the order of screen i for decoding is initialized (i=0) (S201). Then, for decoding, the screen encoded bitstream i is input according to the order (S202).
[0064] Next, it is checked whether the input screen bitstream i is inter-screen predictive coding (S203). If the current screen bitstream i is not inter-screen predictive coding, predictive decoding within a screen is performed (S207). Otherwise, if the current input screen bitstream i is inter-screen predictive coding, the order of slices j to be decoded within a single screen i is initialized (j=0) (S204).
[0065] Next, slice information is interpreted for the input screen bitstream (S205). The order of the unit decoding blocks j to be decoded within each slice in one screen i is initialized (k=0) (S206). In one embodiment of the present invention, the decoding unit blocks can be macroblocks or supermacroblocks.
[0066] Next, after interpreting the information of each unit coding block (S208), the order of the partitioned subblocks within the unit coding block is initialized (m=0) (S209). Then, the coding mode of the partitioned subblocks within the unit coding block is decoded (S210). After checking whether the partitioned subblock is a predictive coding block between screens (S211), if it is a predictive coding block between screens, predictive decoding between screens is performed (S213), and if it is a predictive coding block within a screen, predictive coding within a screen is performed (S212).
[0067] Subsequently, the sub-divided block pixel values are restored using the sub-divided block decoding results (S214). Then, it is checked whether the current sub-divided block m is the final block (S215). If it is the final sub-divided block, the unit decoded block pixel values are constructed (S216). Otherwise, the process returns to step S210 and steps S210 to S214 are performed in order to decode the next divided sub-block.
[0068] After that, it is checked whether the current unit coding block k is the final unit coding block (S217). If it is the final unit coding block, slice pixels are constructed (S218). Otherwise, the process returns to step S208 and steps S208 to S216 are performed. After that, it is checked whether the current slice j is the final slice (S219). If it is the final slice, screen pixels are constructed (S220). Otherwise, steps S205 to S218 are performed. After that, it is determined whether the current screen i is the final screen (S221). If it is the final screen, the process ends. Otherwise, the process returns to step S202, inputs the next screen bitstream, and steps S202 to S220 are performed.
[0069] In video encoding according to an embodiment of the present invention, the input video is divided into encoding unit blocks, and each encoding unit block is further divided into lower-level blocks. When encoding each sub-divided block, one or more predictions within the screen and predictions between screens are selectively used to perform the encoding.
[0070] Thus, the encoding mode of the encoding unit block can be a mixture of inter-screen prediction and intra-screen prediction sub-block modes, and at the same time, encoding efficiency can be improved by selectively applying variable kernel transformations through the divided blocks.
[0071] Furthermore, the video decoding according to the embodiment of the present invention can decode a compressed bitstream with improved encoding efficiency by performing the reverse process of the encoding process.
[0072] In another embodiment of the present invention, the segmented block coding method in video coding described above can be embodied as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all types of recording devices on which data that can be read by a computer system is stored.
[0073] For example, computer-readable recording media include ROM (Read Only Memory), RAM, CD-ROM, magnetic tape, hard disk, floppy disk, portable storage devices, non-volatile memory (Flash Memory), optical data storage devices, and also include those that are realized in the form of carrier waves (for example, transmission over the Internet).
[0074] Furthermore, computer-readable recording media can be distributed across computer systems connected by a computer network, and stored and executed as distributed, readable code.
[0075] Although preferred embodiments of the predictive coding method within a screen and / or between screens in the video coding according to the present invention have been described above, and the reverse process, the decoding method, these embodiments are illustrative and not limiting. A person with ordinary skill in the art to which the present invention pertains will understand that various changes and modifications can be made without departing from the spirit of the invention and the scope of rights presented in the appended claims.
[0076] Sequence List Free Text Encoding, decoding, inter-screen prediction, intra-screen prediction, transformation kernel, square transformation kernel, non-square transformation kernel, quantization, MPEG, rate distortion cost, H.264 / MPEG-4 Part 10 Advanced Video Coding
Claims
1. A method for video encoding, In the stage of encoding video data into coding unit (CU) blocks, The aforementioned coding unit (CU) block is divided into a first subcoding unit (CU), The step is that at least one of the first sub-coded units (CUs) is divided into a second sub-coded unit (CU), The stage of encoding the encoding mode corresponding to each lower coding unit (CU), Based on the encoding mode, the step of selectively performing either in-screen prediction or inter-screen prediction for the corresponding lower-level encoding unit, The step of converting the residual signal in the corresponding lower coding unit, A variable-size transformation kernel is selectively applied to the corresponding lower coding unit. The variable-size conversion kernel is selected according to the size of the corresponding lower coding unit, A method comprising steps, wherein the selected variable-size conversion kernel is smaller than the size of the corresponding lower coding unit.
2. A computer-readable non-temporary recording medium for recording software that encodes a video stream, wherein the software is In the stage of encoding video data into coding unit (CU) blocks, The aforementioned coding unit (CU) block is divided into a first subcoding unit (CU), The step is that at least one of the first sub-coded units (CUs) is divided into a second sub-coded unit (CU), The stage of encoding the encoding mode corresponding to each lower coding unit (CU), Based on the encoding mode, the step of selectively performing either in-screen prediction or inter-screen prediction for the corresponding lower-level encoding unit, The step of converting the residual signal in the corresponding lower coding unit, A variable-size transformation kernel is selectively applied to the corresponding lower coding unit. The variable-size conversion kernel is selected according to the size of the corresponding lower coding unit, A computer-readable non-temporary recording medium that encodes the video stream by causing a computer to perform a process including steps, wherein the selected variable-size conversion kernel is smaller than the size of the corresponding lower encoding unit.