Video encoding / decoding method and device
The method improves video encoding/decoding performance by dividing blocks into sub-blocks for intra-frame prediction, using adaptive coding order to enhance prediction accuracy and efficiency in video processing systems.
Patent Information
- Application Number
- JP2024109796
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-04-01
- Filing Date
- 2024-07-08
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2039-04-01
AI Technical Summary
Existing video encoding/decoding methods lack sufficient research and development to meet the growing demand for improved performance and efficiency in video processing systems, particularly in intra-frame prediction and block unit encoding.
A method and apparatus for intra-frame prediction in block units, where the current block is divided into sub-blocks based on intra-block prediction mode and sub-block division mode, with complementary groups and candidate indexes used to select subblocks for intra prediction, allowing for adaptive coding order and improved prediction accuracy.
This approach enhances encoding/decoding performance by improving prediction accuracy and efficiency through adaptive intra-picture prediction in sub-block units, optimizing the coding order of subblocks.
Smart Images

Figure 0007815343000004 
Figure 0007815343000005 
Figure 0007815343000006
Abstract
Description
[Technical Field]
[0001] The present invention relates to a video encoding / decoding method and apparatus. [Background technology]
[0002] With the spread of the Internet and mobile devices and the development of information and communication technology, multimedia data Therefore, various systems are providing various services by using video prediction. There is a growing need for improved performance and efficiency of video processing systems to accomplish certain tasks. However, there are not enough research and development results to meet this demand. This is the reality.
[0003] As described above, in the conventional video encoding / decoding method and apparatus, video processing, particularly video coding, Therefore, there is a demand for performance improvements in image encoding or video decoding. Summary of the Invention [Problem to be solved by the invention]
[0004] The present invention aims to provide an intra-frame prediction method and device. The present invention aims to provide a method and apparatus for intra-frame prediction in block units. The object is to provide a method and apparatus for dividing data into blocks and determining the encoding order. [Means for solving the problem]
[0005] The present invention provides a method and apparatus for encoding / decoding a video signal, which is a method for encoding / decoding a video signal. Complementary groups are constructed, and the subblocks of the current block are selected based on the candidate groups and candidate indexes. and determining an intra prediction mode for the current block unit. The current block is divided into sub-blocks based on the intra-block prediction mode and the sub-block division mode. It is possible to perform internal predictions. [Effects of the Invention]
[0006] According to the present invention, encoding / decoding performance is improved by intra-picture prediction in sub-block units. Furthermore, according to the present invention, a group of candidates for the division form in sub-block units can be By efficiently configuring the above, the accuracy of prediction can be improved. According to [1], the coding order of subblocks is adaptively applied to improve the accuracy of intra prediction. The encoding / decoding efficiency can be improved. [Brief explanation of the drawings]
[0007] [Figure 1] 1 is a conceptual diagram of a video encoding and decoding system according to an embodiment of the present invention; [Figure 2] 1 is a block diagram illustrating the configuration of a video encoding device according to an embodiment of the present invention. [Figure 3] 1 is a block diagram of a video decoding device according to an embodiment of the present invention; [Figure 4] 10A and 10B are exemplary diagrams showing various division patterns that can be obtained by the block division unit of the present invention; [Figure 5] 1 is an exemplary diagram illustrating an intra-frame prediction mode according to an embodiment of the present invention; [Figure 6] 1 is an exemplary diagram illustrating a reference pixel configuration used in intra-frame prediction according to an embodiment of the present invention; [Figure 7] 1 is a conceptual diagram illustrating a current block of intra-frame prediction and blocks adjacent to the current block according to an embodiment of the present invention; [Figure 8] 1 shows various division forms of sub-blocks that can be obtained from a coding block. [Figure 9] 1 is a diagram illustrating an example of a reference pixel area used based on an intra-frame prediction mode according to an embodiment of the present invention; [Figure 10] 10 illustrates an example of a coding order that can be used in a diagonal up right direction prediction mode according to an embodiment of the present invention. [Figure 11] 10 illustrates an example of a coding order that can be used in horizontal mode according to one embodiment of the present invention. [Figure 12] 10 illustrates an example of a coding order that can be used in a diagonal down right direction prediction mode according to an embodiment of the present invention. [Figure 13] 10 illustrates an example of a coding order that can be used in a vertical mode according to an embodiment of the present invention. [Figure 14] 10 illustrates an example of a coding order that can be used in a diagonal down left mode according to an embodiment of the present invention. [Figure 15] 10 is a diagram illustrating an example of an encoding order taking into account an intra-frame prediction mode and a division type according to an embodiment of the present invention; DETAILED DESCRIPTION OF THE INVENTION
[0008] The present invention provides a method and apparatus for encoding / decoding a video signal, which is a method for encoding / decoding a video signal. Complementary groups are constructed, and the subblocks of the current block are selected based on the candidate groups and candidate indexes. and inducing an intra prediction mode in units of the current block. Intra prediction of the current block based on the intra prediction mode of the block and the division type of the sub-blocks can be accomplished.
[0009] MODE FOR CARRYING OUT THE INVENTION
[0010] The present invention can be modified in various ways and can have various embodiments, but the specific The present invention will be described in detail with reference to the accompanying drawings, in which: It is not intended to be limited to the form, and all modifications within the spirit and technical scope of the present invention are included. , equivalents or alternatives.
[0011] Terms such as first, second, A, B, etc. may be used to describe various components, The elements should not be limited to the terms. The terms should not be used to refer to one element as another element. For example, the first structure is used within the scope of the present invention. The constituent element can be named the second component, and similarly the second component can be named the first component. The term and / or may be used to refer to a combination of multiple related items or multiple Includes any of the related items.
[0012] When an element is referred to as being "coupled" or "connected" to another element, , may be directly connected or connected to other components, It should be understood that there may be additional components in between. When an element is referred to as being "directly coupled" or "directly connected" to another element, It should be understood that there are no further components in between.
[0013] The terms used in the present invention are merely used to describe specific embodiments, and No limitation is intended. The singular "a," "the," or "the" refers to the plural unless the context clearly dictates otherwise. In the present invention, the terms "comprise" or "have" are used in conjunction with the features described in the specification. Specify the presence of a feature, number, step, action, component, part, or combination thereof. and may include one or more other features, numbers, steps, operations, components, parts or It should be understood that the above does not preclude the possibility of the presence or addition of such combinations.
[0014] Unless otherwise defined, all terms used herein, including technical or scientific terms, are intended to be illustrative of the present invention. The same as what is commonly understood by a person of ordinary skill in the art to which it pertains Terms as defined in commonly used dictionaries are not intended to be limiting in the context of the relevant art. Unless otherwise clearly defined in the present invention, the meaning of the term "ideal" should be interpreted as being consistent with the meaning of the term "ideal." shall not be construed as excessively formal or overly formal.
[0015] Usually, one or more depending on the color format of the image. The color format can be configured to have a certain size. It consists of one or more pictures of different sizes. For example, in the YCbCr color configuration, 4:4:4, 4:2:2, 4: Supports color formats such as 2:0 and monochrome (composed of Y only) For example, in the case of YCbCr4:2:0, there is one luminance component (Y in this example) and two color components. Here, the color difference component and the luminance component are The aspect ratio can be 1:2. For example, in the case of 4:4:4, the horizontal and vertical As in the above example, the color space can be selected from one or more color spaces. If the picture is composed of multiple color spaces, the division into each color space can be performed.
[0016] The video can be divided into video types (e.g., picture type, slice type, tile type, etc.) ) can be classified as I, P, B, etc. I image type is a reference picture. It can mean video that is encoded / decoded by itself without using a reference picture. It can mean video that is encoded / decoded using a texture but allows only forward prediction. The B-picture type uses reference pictures for encoding / decoding and allows forward / backward prediction. However, some of the above types may be combined depending on the encoding / decoding settings. It can also support video types with other configurations (combining P and B).
[0017] The various encoding / decoding information generated in the present invention can be explicit or implicit. Implicit processing is possible, whereas explicit processing involves complex coding information. Selection information indicating one of a set of several candidates is given as a sequence, slice, tile, block, sub, or This can be generated in block form and recorded in a bitstream, and then coded by the decoder. Parses related information at the same level as the decoder and restores it to decoded information. Here, the implicit process can be understood as the process of decoding the encoding / decoding information. It can be understood that the encoder and decoder process data using the same process and rules.
[0018] FIG. 1 is a conceptual diagram of a video encoding and decoding system according to an embodiment of the present invention.
[0019] Referring to FIG. 1, a video encoding device 105 and a decoding device 100 are installed on a personal computer. PC (Personal Computer), notebook computer, personal Personal Digital Assistant (PDA), mobile Portable Multimedia Player (PMP) ayer), PlayStation Portable (PSP: PlayStation Por table), Wireless Communication Terminal terminal, smartphone, or TV. It can be a server terminal such as an application server or a service server, and can perform various functions. communication devices such as communication modems for communicating with wired and wireless communication networks; It stores various programs and data for inter- or intra-prediction for decoding. Memory 120, 125 for storing data, or for executing programs and performing calculations. and various processors 110, 115 for controlling the The device may include:
[0020] The video encoded into a bitstream by the video encoding device 105 can be displayed in real time or Non-real-time communication is performed via the Internet, short-range wireless communication networks, wireless LAN networks, Wi-Fi networks, or mobile communications networks. via a wired or wireless communication network such as a communication network, or via a cable or universal Various communication protocols such as Universal Serial Bus (USB) are supported. The image data is transmitted to the video decoding device 100 via a communication interface. The video can be decoded and restored to video and played back. The video coded into a bitstream is then transmitted via a computer-readable recording medium. The image data can be transmitted from the image decoder 105 to the video decoder 100.
[0021] The video encoding device and the video decoding device may be separate devices. Depending on the implementation, it can be made into one video encoding / decoding device. The configuration of a part of the video decoding device is substantially the same technical element as the configuration of a part of the video decoding device, It may be embodied to contain at least the same structure or to perform at least the same function.
[0022] Therefore, in the following detailed explanation of the technical elements and their operating principles, The video decoding device performs the same processing as the video encoding device. The following description refers to a video coding device, since it corresponds to a computer device that applies the method to decoding. This article will focus on the placement.
[0023] The computer device includes a program for implementing a video encoding method and / or a video decoding method. or a memory for storing software modules and a program executed by the memory; and a processor for decoding the video signal. The encoder and decoder may be called, respectively, a decoder.
[0024] FIG. 2 is a block diagram showing the configuration of a video encoding device according to an embodiment of the present invention.
[0025] Referring to FIG. 2, the video encoding device 20 includes a prediction unit 200, a subtraction unit 205, a conversion unit 21, and a 0, quantization unit 215, inverse quantization unit 220, inverse transformation unit 225, addition unit 230, filter unit 235, including an encoded picture buffer 240 and an entropy encoding unit 245 can be done.
[0026] The prediction unit 200 is a software module, which is a prediction module. module), and intra-frame prediction for the block to be coded. Intra Prediction or Inter Prediction The prediction unit 200 generates a prediction block from the current A predicted block can be generated by predicting the current block to be encoded. In other words, the prediction unit 200 predicts the pixel values ( pixel value) by intra-frame prediction or inter-frame prediction. A predicted block having a predicted pixel value of The prediction unit 200 can generate a prediction signal in an intra-frame prediction mode or an inter-frame prediction mode. The information required to generate the predicted block, such as information about the prediction mode, The prediction mode information is transmitted to the encoding unit, and the encoding unit encodes the prediction mode information. Here, the processing unit for which prediction is performed, the prediction method, and specific contents are determined. The processing unit can be determined by the encoding / decoding settings. For example, the prediction method, The prediction mode and the like can be determined in prediction units, and prediction can be performed in transform units.
[0027] In the inter-frame prediction unit, the motion prediction method is classified into a moving model and a non-moving motion model. In the case of the translational motion model, prediction is performed taking into account only translational motion, and in the case of the non-translational motion model, In the case of the driver, you can not only translate, but also rotate, perspective, and zoom in / out. Prediction can be performed by taking into account movements such as (input / output). In the case of a local motion model, one motion vector may be required, but in the case of a non-local motion model, In the case of a non-motion model, one or more motion vectors may be required. The object is applied to the current block's preset position, such as the top left corner or top right corner. The motion vector is used to predict the current block. The position of the region to be predicted can be acquired in pixel units or sub-block units. Depending on the motion model, some of the processes described below can be commonly applied, and some The process can be applied on an individual basis.
[0028] The inter-frame prediction unit includes a reference picture construction unit, a motion estimation unit, a motion compensation unit, a motion information determination unit, and a motion information encoding unit. The reference picture list (L0, L1) contains pictures coded before or after the center. A predicted block can be generated from the reference picture included in the reference picture list. Depending on the encoding settings, the current image is also composed of reference pictures, and the reference The image may be included in at least one of the reference picture lists.
[0029] In the inter-frame prediction unit, the reference picture construction unit may include a reference picture interpolation unit, Depending on the accuracy of the pixel, an interpolation process for a small number of unit pixels can be performed. For the chrominance components, an 8-tap DCT-based interpolation filter is applied, and for the chrominance components, a 4- tap DCT-based interpolation filters can be applied.
[0030] In the inter-frame prediction section, the motion estimation section selects the block with the highest correlation with the current block as the reference picture. It is a process of searching by FBMA (Full search-based bl ock matching algorithm), TSS(Three step s The motion compensation unit can use various methods such as motion estimation. It refers to the process of obtaining a predicted block.
[0031] In the inter prediction unit, the motion information determination unit is an overlay for selecting the optimal motion information of the current block. The motion information can be displayed in Skip Mode, Merge Mode, and Merge Mode, Competition Mode, etc. The motion information can be coded by a motion information coding mode, which is determined by a motion model. The supported modes can be combined and configured, and include skip mode (movement), skip Top mode (no movement), merge mode (movement), merge mode (no movement), competition mode (movement) ), competition mode (non-mobile) can be examples for this. Depending on the coding setting, Some of the modes may be included in the candidate set.
[0032] The motion information coding mode is a mode in which the motion information of the current block is coded by at least one candidate block. It is possible to obtain predicted values of information (motion vectors, reference pictures, prediction directions, etc.), When more than one candidate block is supported, optimal candidate selection information can be generated. The skip mode (no residual signal) and merge mode (with residual signal) use the predicted value as is. It can also be used as the current block's movement information, and in competition mode, the current block's movement information and the predicted value, difference value information can be generated.
[0033] The candidate set for the motion information predictor of the current block is adapted according to the motion information coding mode. The blocks spatially adjacent to the current block (e.g. For example, the left, top, top left, top right, bottom left block, etc.) of the candidate group. The motion information of temporally adjacent blocks can be included in the candidate set, and the spatial candidate can be The candidate set may include combinations of temporal candidates, motion information, and the like.
[0034] The temporally adjacent block is a block in another image corresponding to (or equivalent to) the current block. Including the block, the left, right, top, bottom, top left, top right, bottom left of the block The combined motion information may refer to a block located on the left side, the right bottom block, etc. The information is derived from the motion information of spatially adjacent blocks and the motion information of temporally adjacent blocks. , mean, median, etc.
[0035] There may be a priority order for forming a group of motion information predictor candidates. Therefore, it is possible to determine the procedures included in the prediction value candidate group configuration, and the candidates are selected based on the priority order. If the number of complements (determined by the motion information coding mode) is satisfied, the candidate group is formed. Here, the motion information of spatially adjacent blocks, the motion information of temporally adjacent blocks, The priority is determined in the order of motion information of the selected block, combined motion information of spatial and temporal candidates. However, other variations are possible.
[0036] For example, among spatially adjacent blocks, the left-top-top-top-bottom-top-top-left block The blocks can be included in the candidate group in the order of the blocks, such as the bottom right block. - The candidates can be included in the order of middle, right, bottom blocks, etc.
[0037] The subtractor 205 subtracts the predicted block from the current block to obtain a residual block. In other words, the subtraction unit 205 can generate the encoded The pixel values of each pixel in the current block to be predicted and the pixel values of each pixel in the predicted block generated by the prediction unit are The difference between the predicted pixel value of the pixel is calculated to obtain a block-shaped residual signal (residual s The subtraction unit 205 can generate a residual block that is a signal. The remaining blocks are generated by a unit other than the block unit obtained by the block division unit. It can also be achieved.
[0038] The transform unit 210 can transform a signal belonging to the spatial domain into a signal belonging to the frequency domain. The signal obtained by the transformation process is called the transformed coefficient (Transformed Coeff For example, the residual block having the residual signal transmitted from the subtractor is called The input signal can be transformed to obtain a transform block having transform coefficients. This is determined by the filter settings and is not limited to the residual signal.
[0039] The transformer performs Hadamard transform on the residual block. , Discrete Sine Transform (DST Based-Transform:Discrete Si ne Transform), Discrete Cosine Transform (DCT Based-Transform Using transformation techniques such as Discrete Cosine Transform However, it is not limited to this, and various conversion techniques that are improvements and modifications of this can be used. It can be used.
[0040] At least one of the conversion techniques may be supported, and at least one of each conversion technique may be supported. Each of the detail conversion techniques can support one detail conversion technique. It can be a transformation technique in which some of the basis vectors are configured differently in the algorithm.
[0041] For example, in the case of DCT, one or more detailed transformation techniques from DCT-1 to DCT-8 are supported. In the case of DST, one or more detailed conversion techniques from DST-1 to DST-V8 are supported. A group of candidate transformation techniques can be formed by forming a part of the detailed transformation techniques. As an example, DCT-2, DCT-8, and DST-7 are included in the candidate group of transformation techniques. The conversion can be performed.
[0042] The transformation can be performed horizontally / vertically. For example, using the DCT-2 transformation technique. 1D transformation is performed horizontally using the DST-7 transformation technique, and 1D transformation is performed vertically using the DST-7 transformation technique. By performing a full 2D transformation, the pixel values in the spatial domain are converted to the frequency domain. It is possible.
[0043] Can conversion be performed using a fixed conversion technique? Encoding / Decoding Settings The conversion technique can be adaptively selected to perform the conversion. In this case, the conversion technique can be selected using either an explicit or implicit method. The horizontal and vertical direction conversion technique selection information or conversion technique set selection information is Information can occur in units such as blocks. If it is implicit, the image type (I / P / B), color components, block size, shape, intra-frame prediction mode, etc. You can define settings, which allow you to select predefined conversion techniques. do.
[0044] In addition, some of the conversion may be omitted depending on the encoding settings. Or it implicitly means that one or more of the horizontal / vertical units can be omitted.
[0045] The transform unit also transmits information required to generate a transform block to the encoding unit. The information can be encoded into a bitstream, which The decoder then parses the information and performs an inverse transformation. It can be used to a certain extent.
[0046] The quantization unit 215 can quantize the input signal. The signal obtained by this is called the quantized coefficient. For example, a residual block having residual transform coefficients transmitted from a transform unit is quantized. The input signal is coded as follows: which is not limited to the residual transform coefficients.
[0047] The quantization unit performs dead zone uniform threshold quantization on the transformed residual block. ne Uniform Threshold Quantization), quantization weight Value matrix (Quantization Weighted Matrix) It can be quantized using, but not limited to, quantization techniques, and improvements and modifications thereof. A variety of quantization techniques can be used.
[0048] Depending on the coding settings, the quantization process can be omitted. For example, , the quantization parameter is 0. That is, the quantization process is omitted (inverse As another example, the compressibility of the image can be improved by quantization depending on the image characteristics. If the quantization function is not available, the quantization process can be omitted. The area in which the quantization process is omitted in the block (M × N) is the entire area or a part of the area (M / 2×N / 2, M×N / 2, M / 2×N, etc.), and the quantization omission selection information is implicit. It can be determined implicitly or explicitly.
[0049] The quantization unit transmits information necessary to generate a quantization block to the encoding unit and encodes it. The resulting information can be stored in a bitstream and then decoded. The decoder then parses the information and converts it into an inverse quantity. It can be used in the process of maturation.
[0050] In the above example, it is assumed that the residual block is transformed and quantized by the transformer and quantizer. As described above, the residual signal is transformed to generate a residual block having transform coefficients, and quantized. The residual signal of the residual block can be quantized without being converted into transform coefficients. It can only perform the conversion and quantization processes. This can be determined by the encoder settings.
[0051] The inverse quantization unit 220 inversely quantizes the residual block quantized by the quantization unit 215. That is, the inverse quantization unit 220 inversely quantizes the quantized frequency coefficient sequence to generate a signal having frequency coefficients. Generate a residual block.
[0052] The inverse transform unit 225 inversely transforms the residual block that has been inversely quantized by the inverse quantization unit 220. That is, the inverse transform unit 225 inversely transforms the frequency coefficients of the dequantized residual block to obtain the image. A residual block having prime values, i.e., a reconstructed residual block, is generated. Here, the inverse transform The conversion unit 225 performs an inverse conversion by using the conversion method used in the conversion unit 210 inversely. can be done.
[0053] The adder 230 receives the predicted block predicted by the predictor 200 and the decoded block by the inverse transformer 225. The current block is restored by adding the original residual block. the reference picture (or reference block) in the coded picture buffer 240; When encoding the block following the current block or other future blocks or pictures can be used as a reference picture.
[0054] The filter unit 235 includes a deblocking filter, a Sample Adapter (SAO), tive Offset), ALF (Adaptive Loop Filter), etc. The deblocking filter may include one or more post-processing filter steps: The block distortion caused by the boundary between blocks can be removed from the restored picture. ALF is used to deblock blocks after they are filtered through a deblocking filter. Filtering can be performed based on the value obtained by comparing the restored image with the original image. SAO performs pixel-by-pixel filtering on the residual blocks to which the deblocking filter has been applied. This post-processing filter can restore the offset difference from the original image. It can be applied to any picture or block.
[0055] The coded picture buffer 240 stores the blocks reconstructed through the filter unit 235. The coded picture buffer 240 can store either a block or a picture. The reconstructed block or picture is provided to a prediction unit 200 that performs intra-frame prediction or inter-frame prediction. It is possible.
[0056] The entropy coding unit 245 encodes the generated quantized frequency coefficient sequence in various scanning methods. The quantized coefficient sequence is generated by scanning the image data with the quantized coefficient sequence, and then encoded using an entropy coding technique. The scan pattern can be zigzag, diagonal, or raster. r) and can be set to one of various patterns. It can generate coded data containing the coding information and output it as a bit stream. do.
[0057] FIG. 3 is a block diagram of a video decoding device according to an embodiment of the present invention.
[0058] Referring to FIG. 3, the video decoding device 30 includes an entropy decoding unit 305, a prediction unit 31, and a 0, the inverse quantization unit 315, the inverse transformation unit 320, the adder / subtractor 325, the filter 330, and the decoding unit It may comprise a picture buffer 335.
[0059] The prediction unit 310 further includes an intra-frame prediction module and an inter-frame prediction module. It can be done in.
[0060] First, when a video bitstream transmitted from the video encoding device 20 is received, the encoding The tropy decoding unit 305 can then transmit the tropy data to the tropy decoder 305.
[0061] The entropy decoding unit 305 decodes the bitstream and converts the quantized coefficients and each component into a The decoding unit can decode the decoding data including the decoding information transmitted to the decoding unit.
[0062] The prediction unit 310 generates a prediction block based on the data transmitted from the entropy decoding unit 305. A lock can be generated here. Based on the reference image, a reference picture is constructed using the default construction technique. You can also configure the list.
[0063] The inter-picture prediction unit includes a reference picture construction unit, a motion compensation unit, and a motion information decoding unit. Some of them perform the same process as the encoder, and some of them perform the reverse process. can be done.
[0064] The inverse quantization unit 315 receives the bitstream and outputs it to the entropy decoding unit 305. The decoded quantized transform coefficients can be dequantized by:
[0065] The inverse transform unit 320 performs an inverse transform technique such as an inverse DCT, an inverse integer transform, or a similar concept. It can be applied to the coefficients to generate a residual block.
[0066] Here, the inverse quantization unit 315 and the inverse transform unit 320 are the same as those of the transform unit of the video encoding device 20 described above. The processes performed by the quantization unit 210 and the quantization unit 215 are performed in reverse, and can be implemented in various ways. For example, the same process and inverse transform shared by the transform unit 210 and the quantization unit 215 can be used. It is also possible to receive information about the transformation and quantization process from the video coding device 20 (e.g., Transform size, transform shape, quantization type, etc.) to reverse the transformation and quantization process. This can be done.
[0067] The residual block that has undergone the inverse quantization and inverse transform processes is converted into a predicted block derived by the prediction unit 310. The image block can be added to the image block to generate a reconstructed image block. This can be done by subtractor 325.
[0068] The filter 330 performs blocking (bl) on the restored image block as needed. You can also apply a deblocking filter to remove the "locking" effect. ,Addition of other loop filters before and after the decoding process to improve the video quality. It can also be used additively.
[0069] The restored and filtered image blocks are stored in the decoded picture buffer 335. It can be done.
[0070] Although not shown in the drawing, the video encoding / decoding device includes a picture dividing unit and a block dividing unit. It may further include:
[0071] The picture splitter splits the picture into a color space (e.g., YCbCr, RGB, or XY Z, etc.), tiles, slices, basic coding units (or maximum coding units, Coding T Divide (or partition) the product into at least one processing unit such as a Container Transport Unit (CTU) The block division unit divides the basic coding unit into at least one processing unit (for example, Encoding, prediction, transform, quantization, entropy and in-loop filter units) It is possible.
[0072] The basic coding unit is obtained by dividing a picture at regular intervals in the horizontal and vertical directions. Based on this, division into tiles, slices, etc. can be performed. The division units such as tiles and slices are not limited to the above. It can be configured as an integer multiple, but exceptional cases occur in division units located on the image boundary. This may result in an adjustment of the basic coding block size.
[0073] For example, a picture can be partitioned into basic coding units and then split into said units. Alternatively, a picture can be partitioned into said units and then divided into basic coding units. In the present invention, the description will be made assuming that the partitions and division order of each unit are the former case, but this is not limited to this. The latter case is possible depending on the encoding / decoding settings. The size of the unit can be modified to suit the division unit (tile, etc.). That is, it is possible to support basic coding blocks having different sizes for each division unit. This means that
[0074] In the present invention, the case where a picture is divided into basic coding units is used as a basic setting, and the following examples will be explained. The basic setting is that the picture is not divided into tiles or slices or the picture is This can mean that the image is one tile or one slice. As mentioned above, each division unit (tile, slice, etc.) is first partitioned, and then the obtained unit is used to When dividing the image into basic coding units (i.e., each division unit is an integer multiple of the basic coding unit), In such cases, various embodiments described below can be applied in the same manner or with modifications. It should be understood that
[0075] In the case of slices, at least one slice is divided into two slices. It can consist of a single block, and in the case of tiles, it can consist of spatially adjacent blocks. It can be constructed from a rectangular bundle of blocks, and supports additional division units, Slices and tiles can be used for parallel processing etc. For this reason, references between division units are restricted (i.e., (i.e., cannot be referenced).
[0076] Slicing generates division information for each unit based on the information about the starting position of consecutive blocks. In the case of tiles, it can generate information about horizontal and vertical dividing lines or Tile position information (e.g., top left, top right, bottom left, bottom right) can be generated. Cut.
[0077] Here, slices and tiles are divided into multiple units depending on the encoding / decoding settings. can be done.
[0078] For example, some units is a unit ( i.e., including tile headers or slice headers), and some units can be a unit that does not contain configuration information, or some unit Ha sign It can be a unit that cannot refer to other units during the encoding / decoding process, and some units rank can be a unit that can be referred to. Also, some units Other Units of Can be a hierarchical relationship involving some units is another unit can have an equal relationship with
[0079] Here, A and B can be a slice and a tile (or a tile and a slice). Alternatively, A and B can consist of one slice and one tile. For example, A is a slice. Rice / Tile <Type 1>, and B has a structure like Slice / Tile <Type 2> It is possible.
[0080] Here, Type 1 and Type 2 can each be one slice or tile. Alternatively, Type 1 (including Type 2) can be a set of slices or tiles (a set of slices or tiles). Type 1 can be a set of tiles, and Type 2 can be a single slice or tile. Cut.
[0081] As already mentioned above, the present invention is based on the assumption that a picture is composed of one slice or tile. However, if two or more division units are generated, the above explanation will be repeated later. This can be understood by applying it to the embodiment described below. Also, A and B are the division units. It is also possible to combine examples A and B of each example. .
[0082] On the other hand, the block division unit acquires information about the basic coding unit from the picture division unit. The basic coding unit is a unit that is used for prediction, transformation, quantization, etc. during the video coding / decoding process. Here, a basic coding unit can refer to a basic (or starting) unit for a color. -format (in this example, YCbCr) to one luminance basic coding block (or, The largest coding block (Coding Tree Block, CTB) and two basic chrominance Each block can be coded by the color format. The size of the coding block can be determined by the division process. g Block. CB) can be obtained. The coding block is It can be understood as a unit that cannot be further divided into coding blocks, and division into sub-units In the present invention, the blocks are not limited to squares, but can be triangular. It can be understood as a broad concept that includes various shapes such as round, circular, etc. , the case of a rectangle will be explained.
[0083] The following description applies to a single color component, but the ratio of the color format (e.g. For example, in the case of YCbCr4:2:0, the ratio of the horizontal and vertical lengths of the luminance and color difference components is 2:1. It should be understood that the present invention can be modified and applied to other color components. Block division dependent on other color components (e.g., Cb / Cr depending on Y block division result) Although it is possible to divide the blocks independently for each color component, Also, a common block division setting (considering that it is proportional to the length ratio) ), but it is also possible to use separate block division settings for each color component. It needs to be taken into consideration and understood.
[0084] In the block division part, the blocks can be expressed as M × N, and the maximum value of each block is The maximum and minimum values can be obtained within a range. For example, the maximum value of a block can be set to 256x256. ,If the minimum value is determined to be 4x4, 2 m ×2 n size block (in this example, m and n are 2 or an integer from 1 to 8) or 2 m ×2 m size block (in this example, m and n range from 2 to 128) (integer) or m×m size block (in this example, m and n are integers between 4 and 256) Here, m and n may be the same or different, and the maximum value Ranges that support blocks such as and minimum values can occur more than once.
[0085] For example, information about maximum and minimum block sizes may be generated. In some partition settings, information about the maximum and minimum block sizes is generated. In the former case, the maximum and minimum sizes that can occur in the image can be calculated. It can be range information, and in the latter case, the maximum and minimum values that can be generated by some division settings. Here, the division setting can be information about the image type (I / P / B), color components (YCbCr, etc.), block type (encoding / prediction / transform / quantization etc.), partition type (Index or Type), partition method (Tree method: QT, B T, TT, etc., and in the index method, SI2, SI3, SI4, etc.) This can be done.
[0086] Also, restrictions on the ratio of width to height that a block can have (block shape) can exist and boundary value conditions can be set for it. Only blocks below the threshold value (k) can be supported, and k is A / B (A is horizontal and vertical). Defined by the ratio of width to height (A is the longer or the same value among width and height, B is the other value) It can be a real number greater than or equal to 1, such as 1, 5, 2, 3, 4, etc. It supports restrictions on the shape of a block in an image, or it supports split settings. It can support one or more constraints.
[0087] In summary, the blocks are based on the range and conditions explained above and the division settings described below. It is possible to decide whether to support division. For example, by dividing a block (parent block) If the block conditions for supporting the candidate (child block) are met, the corresponding division is supported. If this is not met, the division may not be supported.
[0088] The block division unit is set in relation to each component of the video encoding device and the video decoding device. This process allows the size and shape of the block to be determined. The set block may be defined differently depending on the component. is the prediction block, and in the case of the transform part, it is the transform block ( Transform Block, and Quantization Block for the quantization part. This can be achieved by using the following: In the present invention, block units according to other components can be additionally defined. The following explanation focuses on the case where the input and output are rectangular. However, some components may have other shapes (e.g. For example, triangles) can be input / output.
[0089] The size and shape of the initial (or starting) block of the block division part are determined from the upper unit. The initial block may be divided into smaller size blocks, Once the optimal size and shape of the block is determined, the block is divided into sub-units. Here, the upper unit is the coding block, and the lower unit is the The block may be a predicted block or a transformed block, but is not limited thereto, and various modifications are possible. Once the initial block of the lower unit is determined as in the above example, Then, a division process can be performed to find blocks of optimal size and shape.
[0090] In summary, the block division unit divides the basic coding block (or the largest coding block) into smaller blocks. The coding block can be divided into at least one coding block. The prediction block / transform block / quantization block can be divided into The block can be divided into at least one transform block / quantization block, and the transform block The block can be divided into at least one quantization block. Blocks have subordinate relationships (i.e., defined by higher and lower units) with other blocks. For example, a prediction block may be a transform block. It can be a super-unit or a unit independent of the conversion block, depending on the type of block. Therefore, various relationship settings are possible.
[0091] Depending on the encoding / decoding settings, it can be determined whether or not to combine upper and lower units. Here, the connection between units does not involve division from a higher unit to a lower unit, but rather involves the block of the higher unit. The encoding / decoding process (e.g., prediction unit, transform unit, inverse unit) of the sub-units into blocks (size and shape) This means that the division process is shared among multiple units, It can mean that the division information occurs in one unit (e.g., a higher unit) within it. Cut.
[0092] As an example, (when a coding block is combined with a prediction block and a transformation block), The prediction, transformation, and inverse transformation processes can be performed in the transformation block.
[0093] As an example, (when a coding block is combined with a prediction block), A transform block that is equal to or smaller than the coding block can be obtained. The conversion and inverse conversion processes can be performed in a single step.
[0094] As an example, (when a coding block is combined with a transform block), The prediction process can be performed with one or smaller prediction blocks, and the coding block The conversion and inverse conversion processes can be performed in a single step.
[0095] As an example, (when a prediction block is combined with a transformation block) The prediction process can be performed on a prediction block that is equal to or smaller than the prediction block. Transformation and inverse transformation processes can be performed.
[0096] As an example (when no blocks are combined), the coding block may be the same or different from the The prediction process is performed on smaller prediction blocks, which are the same or smaller than the coding block. The transformation block can perform transformation and inverse transformation processes.
[0097] In the above examples, various cases regarding coding, prediction, and transformation blocks have been described, but the present invention is not limited to these. I can't.
[0098] The combinations between the units can be fixed in the image or can be various codes. In this case, the encoding / decoding factor can be taken into consideration to support adaptive setting. Decoding elements include video type, color components, coding mode (Intra / Inter), division settings, block size / shape / position, horizontal to vertical ratio, prediction related information (e.g., screen Intra-frame prediction mode, inter-frame prediction mode, etc.), transformation-related information (e.g., transformation technique selection information, etc.) ), quantization-related information (e.g., quantization region selection information, quantized transform coefficient coding information, etc. ) etc.
[0099] As mentioned above, when a block of the optimum size and shape is found, the mode for this is Mode information (e.g., partition information) can be generated. Mode information indicates which blocks belong to which regions. The information generated by the components (for example, prediction-related information and conversion-related information) is also included in the bitstream. It can be recorded in a video stream and transmitted to the decoder, and the decoder can It can be parsed and used in the video decoding process.
[0100] The following explains the division method, and for the sake of convenience, we assume that the initial block is a square. However, this can be applied in the same or similar way when the initial block is rectangular. And it is not limited to this.
[0101] The block splitter can support various types of splitting, such as tree-based splitting. splitting or index-based splitting, and other methods may be supported. Tree-based division can be performed using various types of information (e.g., whether division is possible, tree type, division direction, etc.). The division form can be determined based on the index, etc. The division form can be determined based on index information.
[0102] FIG. 4 is an example diagram showing various division patterns that can be obtained by the block division unit of the present invention. In this example, the division form shown in Figure 4 is obtained by one division execution (or process). However, it is not limited to this case, and it is also possible to acquire it by multiple division operations. Also, additional divisions not shown in FIG. 4 are possible.
[0103] (tree-based splitting)
[0104] In the tree-based partitioning of the present invention, the tree method is a quad tree. ee.QT), Binary Tree (Binary Tree.BT), Ternary Tree (Ternary Tree.TT) etc. can be supported. Single tree splitting if supported, multi-tree splitting if two or more tree methods are supported It can be said that.
[0105] In the case of QT, the block is divided into two parts horizontally and vertically (i.e., into four parts). In the case of BT, the block is divided into two in one direction, horizontally or vertically. In the case of TT, the blocks are arranged in one direction, horizontally or vertically. This means a three-division method (h~m).
[0106] In the case of QT, the division direction is limited to one of the horizontal and vertical directions and divided into four. It is also possible to support the scheme (o, p). In addition, in the case of BT, the scheme with equal size is Only (b, c) or only non-uniform size methods (d~g) are supported. In the case of TT, the division is biased in a specific direction. (1:1:2, 2:1:1, etc., from left to right or from top to bottom) Only methods (h, j, k, m) are supported, or methods (such as 1:2:1) are supported. Only i and l) can be supported, or both can be combined. Also supports the method (q) of dividing the direction into 4 parts horizontally and vertically (i.e., 16 parts) It is possible.
[0107] Among the tree methods, there is a method of dividing the image into z-sections limited to the horizontal division direction (b, d, e , h, i, j, o) or limiting it to the vertical division direction and z-division (c, f, g, k, l, m, p) or a combination of both methods. Here, z can be an integer of 2 or more, such as 2, 3, or 4.
[0108] In the present invention, the explanation will be given assuming that QT supports n, BT supports b and c, and TT supports i and l. .
[0109] Depending on the encoding / decoding settings, more than one method can be supported in the tree division. For example, can you support QT, can you support QT / BT, QT / BT / TT can be supported.
[0110] In the above example, the basic tree division is QT, and depending on whether other trees are supported, BT and TT are used. This is an example of the case where the additional division method includes Information about whether other trees are supported (bt_enabled_flag, tt_enab led_flag, bt_tt_enabled_flag, etc. Has a value of 0 or 1 0 means no support, 1 means support) depends on encoding / decoding settings. It is either implicitly determined by the sequence, or explicitly determined in units of sequences, pictures, slices, tiles, etc. It can be determined explicitly.
[0111] The split information is information about whether splitting is possible (tree_part_flag or qt_pa rt_flag, bt_part_flag, tt_part_flag, bt_tt_ part_flag, which can have a value of 0 or 1, where 0 means no splitting and 1 means Also, depending on the division method (BT and TT), the division direction ( dir_part_flag. or bt_dir_part_flag, tt_dir_ part_flag, bt_tt_dir_part_flag, which has a value of 0 or 1 0 for horizontal, 1 for vertical) can be added, which can be information that can be generated when performing the division.
[0112] When multiple tree divisions are supported, various division information configurations are possible. Depth level (i.e., the supported split depth is set to 1 or more, and recursive Although division is possible, for the sake of convenience, we will explain how the division information is structured. Let us explain this by assuming an example.
[0113] In example (1), we check the information about whether or not the division is possible. Here, if the division is not carried out, If so, the division is terminated.
[0114] If splitting is performed, the selection information for the split type (e.g., tree_i dx. If it is 0, it is QT, if it is 1, it is BT, if it is 2, it is TT). Here, Depending on the division type, the division direction information is further checked and the next step (when the division depth reaches the maximum) is selected. If you can split it up again for some reason, you can start again from the beginning. If you can't split it up, , and then move on to the next step (finishing the division).
[0115] In example (2), we check the information about whether or not some tree methods (QT) can be split. If the division is not performed, some tree methods (BT) Check the information about whether or not the division is possible. If you do not want to divide the Check the information about whether or not the split is possible in the Lee Method (TT). If you do not want to split the If so, the division is terminated.
[0116] If a partial tree-based (QT) split is to be performed, proceed to the next step. Also, if some tree-based (BT) division is performed, division direction information is confirmed. If the tree splitting method (TT) is used, If so, the division direction information is checked and the process moves to the next step.
[0117] In example (3), check the information about whether or not some tree methods (QT) can be split. Here, if no splitting is performed, some tree methods (BT and TT) can be split. If the division is not to be carried out, the division is terminated. .
[0118] If a partial tree-based (QT) split is to be performed, proceed to the next step. In addition, if some tree-based (BT and TT) division is performed, the division direction Verify the information and move on to the next step.
[0119] The above examples show cases where tree splitting priority exists (examples 2 and 3) or does not exist (example 1). ), but various modifications are possible. Also, in the above example, the division of the current stage is This is an example that explains the case where the division result is unrelated, but the division of the current stage is the division result of the previous stage. Dependent settings are also possible.
[0120] For example, in the cases of 1 to 3, some tree-based division (QT) was performed in the previous stage. If the current stage is reached, the same tree method (QT) division can be supported even at the current stage. This can be done.
[0121] On the other hand, some tree-based divisions (QT) were not performed in the previous stage, and other tree-based divisions were performed. If you have completed (BT or TT) and moved to the current stage, some tree-based division ( Except for QT, some tree-based divisions (BT and TT) will be included in the current and subsequent stages. It is also possible to set it up to support this.
[0122] In this case, it means that the tree structure supporting block division is adaptive. This means that the above-mentioned division information configuration can be configured differently ( The example below is assumed to be the third example. In other words, in the previous example, the tree method (QT) If the allocation was not carried out in the previous stage, some tree methods (QT) are not considered in the current stage. In addition, the splitting process can be performed by the related tree method. For example, information on whether or not it can be divided, information on the direction of division, etc. <qt>So, regarding whether it can be split? information) can be removed and configured.
[0123] The above example is for the case where block division is allowed (for example, the block size is between the maximum and minimum values). (Exists within the range between the maximum depth and the maximum allowable depth of each tree method, etc.) This is the case for adaptive partition information construction for block partitioning restrictions (e.g. For example, if the size of a block is not within the range between the maximum and minimum values, and the tree method It is possible to construct adaptive division information even when the division depth reaches the maximum depth.
[0124] As previously mentioned, in the present invention, tree-based partitioning can be performed in a recursive manner. For example, if the division flag of a coding block with a division depth of k is 0, the coding block The coding of the block is performed in coding blocks with a division depth of k. If the split flag of the lock is 1, the coding of the coding block is split to the split depth by the split method. N sub-coding blocks, where N is an integer equal to or greater than 2, such as 2, 3, or 4, where k+1 is the number of sub-coding blocks. ) to carry out the project.
[0125] The sub-coding block is further set to coding block (k+1), and the above process is carried out. The hierarchical division method can be used to divide the image into sub-coding blocks (k+2). This can be determined by splitting settings such as range and splitting allowable depth.
[0126] Here, the bitstream structure for expressing the division information is one or more scan methods. For example, the bit stream of the division information can be selected based on the division depth order. It is possible to configure a bitstream of segmentation information based on whether it can be segmented or not. can.
[0127] For example, if the division depth is used as the basis, the division information at the current level depth is calculated based on the first block. After obtaining the information, it obtains the division information at the next level of depth. When this happens, the additional division information for the blocks divided based on the first block is acquired first. Other additional scanning methods may be considered.
[0128] (Index-based division)
[0129] In the index-based splitting of the present invention, CSI (Constant Split Index) Supports the VSI (Variable Split Index) method and the VSI (Variable Split Index) method. It is possible.
[0130] The CSI method is a method of obtaining k sub-blocks by dividing in a given direction. where k can be an integer equal to or greater than 2, such as 2, 3, or 4. In particular, Regardless of the size and shape, the size and shape of the sub-block are determined based on the k value. Here, the predetermined direction may be a horizontal, vertical, or diagonal direction. (Upper left → lower right, or lower left → upper right, etc.) Directions can be combined.
[0131] The index-based CSI division method of the present invention divides the CSI into z segments in either the horizontal or vertical direction. It can contain candidates to be split, where z is an integer greater than or equal to 2, such as 2, 3, or 4. and one of the horizontal and vertical lengths of each sub-block is the same and the other is the same. The ratio of the horizontal to vertical lengths of the sub-blocks can be A1:A2:...:A Z in Yes, A1~A Z can be an integer greater than or equal to 1, such as 1, 2, or 3.
[0132] It can also contain candidates that are divided into x and y parts horizontally and vertically. Here, x and y can be integers greater than or equal to 1, such as 1, 2, 3, or 4, but x and y If a is 1 at the same time (because a already exists), it can be restricted. The horizontal and vertical ratios of the blocks are the same, but we also include candidates that are different. It can also include.
[0133] In addition, some diagonal directions (upper left → lower right) or some diagonal directions (lower left → upper right) The candidate can be divided into w pieces in one direction (lateral direction), where w is 2 or more, such as 2 or 3. can be an integer.
[0134] Referring to FIG. 4, the symmetrical division type (b) and the asymmetrical division type (c) are shown depending on the length ratio of each sub-block. The division patterns can be divided into general division patterns (d, e), and division patterns that are biased in a specific direction (k, m). It can be divided into a centrally located division type (k). The division form is defined by various coding / decoding elements including the form of sub-blocks. The splitting schemes supported by the encoding / decoding settings can be implicitly or explicitly Therefore, index-based division can be determined based on the supported division type. A set of candidates in the formula can be determined.
[0135] On the other hand, the VSI method uses a fixed width (w) or height (h) of the sub-block. It can be a method of obtaining one or more sub-blocks by dividing in the w and h directions. can be an integer equal to or greater than 1, such as 1, 2, 4, 8, etc. In particular, the size of the block The number of sub-blocks is determined based on the shape and the value of w or n. It can be.
[0136] The index-based VSI division method of the present invention selects one of the horizontal and vertical lengths of the sub-block. Alternatively, the horizontal and vertical dimensions of the sub-blocks can be fixed. The horizontal and vertical lengths of the sub-blocks are fixed, so the candidates can be divided. It may have features that allow for equal division in the horizontal or vertical direction, but is not limited to this. stomach.
[0137] The block before division is M × N, and the horizontal length of the sub-block is fixed (w) or the vertical length is If the horizontal and vertical lengths are fixed (w, h), the sub-blocks obtained are The number of locks is (M*N) / w, (M*N) / h, and (M*N) / w / h, respectively. This can be done.
[0138] Depending on the encoding / decoding setting, only the CSI method or only the VSI method can be supported. It can support both methods and provide implicit or explicit information about the method supported. can be determined explicitly.
[0139] The present invention will be described assuming that the CSI scheme is supported.
[0140] Depending on the encoding / decoding settings, the index splitting may include two or more candidates. It can be configured.
[0141] For example, construct a set of candidates such as {a, b, c}, {a, b, c, n}, {a~g, n}. The candidate group can be divided into two parts horizontally or vertically, or both horizontally and vertically. Many blocks are created based on general statistical characteristics, such as blocks that are divided into two in each direction. Examples may include block types that are predicted to occur.
[0142] Or, {a, b}, {a, o}, {a, b, o} or {a, c}, {a, p}, { a, c, p}. The candidate groups are arranged in the horizontal and vertical directions. The candidate group includes candidates that are divided into 2 or 4 in the vertical direction. The candidate group is predicted to have many divisions in a specific direction. Examples include the block form that can be measured.
[0143] Alternatively, we can construct candidate sets such as {a, o, p} or {a, n, q}. The candidate group is predicted to have many divisions with a size smaller than the block before division. Examples include block forms such as:
[0144] Alternatively, we can construct a set of candidates such as {a, r, s}. From the blocks, the best division results can be obtained from the rectangles using other methods (tree method). This may be an example including a non-rectangular division form.
[0145] As in the above example, various candidate group configurations are possible, and one or more candidate group configurations can be coded in various ways. / Decoding factors can be taken into consideration and supported.
[0146] Once the candidate group configuration is complete, various division information configurations are possible.
[0147] For example, a candidate consisting of an undivided candidate (a) and a divided candidate (b~s) Index selection information can occur in groups.
[0148] Or, information indicating whether division is possible (whether the division form is a or not) can be generated. If a split is performed (not a), the candidate is composed of candidates (b~s) to be split. Index selection information can be generated in the complement group.
[0149] The division information may be configured in various ways other than the above description. In the candidate group, the index of each candidate is coded by various methods such as fixed length binary coding and variable length binary coding. If the number of candidates is two, then One bit can be assigned to the index selection information, and if there are three or more, the index selection One or more bits can be allocated to the selection information.
[0150] Unlike tree-based partitioning, index-based partitioning is expected to occur more frequently. The method may be a method of selectively configuring the division forms into a candidate group.
[0151] The number of bits required to represent index information is determined according to the number of supported candidates. Since the number of partitions can be increased, it is not a hierarchical partition (recursive partition) based on a tree. This method can be suitable for one-level division (e.g., the division depth is limited to 0). It can be a method that supports one division operation, and can be obtained by index-based division. The obtained sub-blocks may be in a manner that does not allow further division.
[0152] Here, if further division into homogeneous blocks with smaller sizes is not possible (for example, For example, the coding block obtained by the index division method is further divided into coding blocks. It can mean that a block cannot be further divided into other types of blocks (e.g. , division of coding blocks into coding blocks as well as prediction blocks is not possible) Of course, the present invention is not limited to the above examples, and other variations are possible.
[0153] Next, when determining block division settings based on the block type among the encoding / decoding elements, This section explains the case.
[0154] First, the coding block can be obtained through a division process, where the division process is A tree-based partitioning method can be used, and depending on the type of tree, a (no spl) in Figure 4 It), n(QT), b, c(BT), i, l(TT) and other division forms may be obtained. Depending on the encoding / decoding settings, each tree such as QT / QT+BT / QT+BT+TT can be -A wide variety of combinations are possible.
[0155] The following example is a prediction block based on the coding block obtained by the above process. The final process of dividing the replacement blocks is shown, and predictions are made based on the size of each division. Assume that a transformation and inverse transformation process is performed.
[0156] In example (1), the prediction block is set to the same size as the coding block and the prediction process is performed. The size of the coding block (or prediction block) remains the same as the transformation block. The transformation and inverse transformation processes can be performed by setting the predicted block and the transformed block. In this case, there is no division information generated separately from the information set based on the coding block.
[0157] In example (2), the prediction block is set to the same size as the coding block and the prediction process is performed. For transform blocks, the coding block (or predicted block) is used as the basis. The transformation blocks can be obtained through the division process, and based on the obtained size, Transformation and inverse transformation processes can be performed.
[0158] Here, the division process can use a tree-based division method, and the diagram is based on the type of tree. Splitting of 4 into a (no split), b, c (BT), i, l (TT), n (QT), etc. Depending on the encoding / decoding settings, the format can be QT / BT / QT+BT / Q Various combinations of tree types are possible, such as T+BT+TT.
[0159] Here, the division process can use an index-based division method, and the index type This will result in split patterns such as a (no split), b, c, and d in Figure 4. Depending on the encoding / decoding settings, various candidates such as {a, b, c} and {a, b, c, d} can be generated. Complementary group construction is possible.
[0160] In the case of a predicted block, for example (3), a division process is performed based on the coding block to obtain a predicted block. A measurement block can be acquired and a prediction process can be performed based on the acquired size. In the case of a transform block, the size of the coding block is set as it is, and the transform and inverse transform are In this example, the predicted block and the transformed block are independent of each other. This can be equivalent to the case where there is a relationship.
[0161] Here, the division process can use an index-based division method, and the index type This will result in splitting patterns such as a (no split), b~g, n, r, and s in Figure 4. Depending on the encoding / decoding settings, it can be {a, b, c, n}, {a~g, n}, {a , r, s}.
[0162] In the case of a predicted block, for example (4), a division process is performed based on the coding block to obtain a predicted block. A measurement block can be acquired and a prediction process can be performed based on the acquired size. For transform blocks, the size of the prediction block is set as is and the transform and inverse transform are performed. In this example, the transformation block is performed using the obtained prediction block size. It can be set to the block size or vice versa (remaining the conversion block size) (setting the predicted block in
[0163] Here, the division process can use a tree-based division method, and depending on the tree type, Split forms such as a (no split), b, c (BT), and n (QT) can occur. Depending on the encoding / decoding settings, various tree types such as QT / BT / QT+BT can be Combinations are possible.
[0164] Here, the division process can use an index-based division method, and the index type This results in split patterns such as a (no split), b, c, n, o, and p in Figure 4. Depending on the encoding / decoding settings, you can }, {a, p}, {a, b, c}, {a, o, p}, {a, b, c, n}, {a, b, c , n, p}. The VSI method can be used alone or in combination with the CSI method to form a candidate group. .
[0165] In the case of a predicted block, for example (5), a division process is performed based on the coding block to obtain a predicted block. A measurement block can be acquired and a prediction process can be performed based on the acquired size. In addition, in the case of a transform block, a division process is performed based on the coding block, and a prediction is performed. The measurement block can be obtained, and the transformation and inverse transformation processes are performed based on the obtained size. In this example, the prediction block and the transformation block are calculated based on the coding block. This may be the case when carrying out each division.
[0166] Here, the partitioning process can use either a tree-based partitioning method or an index-based partitioning method. The candidate group can be constructed in the same or similar manner as in the fourth example.
[0167] The above examples are some of the cases that may occur depending on whether each type of block is divided. However, the present invention is not limited to this and various modifications are possible. It is possible to determine block division settings by taking into account not only the type but also various encoding / decoding factors. Cut.
[0168] Here, the encoding / decoding elements are video type (I / P / B), color components (YCbCr ), block size / shape / position, block width / length ratio, block type (code block, prediction block, transform block, quantization block, etc.), segmentation state, coding model mode (Intra / Inter), prediction related information (intra-frame prediction mode, inter-frame prediction mode ), transformation-related information (transformation technique selection information, etc.), quantization-related information (quantization domain selection information, etc.) , quantized transform coefficient coding information, etc.
[0169] In the video encoding method according to an embodiment of the present invention, the intra prediction is configured as follows: The intra-frame prediction of the prediction unit includes a reference pixel configuration stage, a prediction block generation stage, and a prediction The video encoding device may include a mode determination step and a prediction mode encoding step. is a reference pixel construction step, a prediction block generation step, a prediction mode determination step, and a prediction mode code. The present invention includes a reference pixel constructing unit, a prediction block generating unit, and a prediction mode encoding unit for implementing a coding step. Some of the above steps can be omitted or other steps can be omitted. Steps can be added and can be changed to other orders than those listed above.
[0170] FIG. 5 is an exemplary diagram illustrating an intra-frame prediction mode according to an embodiment of the present invention.
[0171] Referring to FIG. 5, 67 prediction modes are selected as a prediction mode candidate group for intra prediction. Of these, 65 are directional and 2 are non-directional (DC However, the present invention is not limited to this and various configurations are possible. Here, the directional mode can be either gradient (e.g., dy / dx) or angle information (Degr ee). In addition, all or part of the prediction modes may be classified as luminance components or color components. The prediction mode candidate set for the difference component can be included, and additional modes other than the difference component can be included. can be included in the candidate group.
[0172] In the present invention, the direction of the directional mode means a straight line. The curved direction mode can also be configured as a prediction mode. In addition, in the non-directional mode, the neighboring blocks (e.g., The average (or weighted average, etc.) of pixels in the left, top, upper left, upper right, lower left block, etc. ) and the DC mode, which obtains the predicted block from the surrounding blocks by linear interpolation. A planar mode can be included in which a prediction block is obtained by
[0173] In DC mode, the reference pixels used to generate the predicted block are the left, upper, Various combinations such as left side + upper side, left side + lower left side, upper side + upper right side, left side + upper side + lower left side + upper right side It can be obtained from blocks consisting of a combination of image types, color components, block sizes, The reference pixel acquisition block is based on the encoding / decoding settings defined by the size / shape / position etc. The lock position can be determined.
[0174] In the case of Planar mode, the pixels used to generate the predicted block are the reference pixels. The area is made up of the reference pixels (for example, the left side, the top side, the top left side, the top right side, the bottom left side, etc.). It can be obtained from unstructured areas (e.g., right side, bottom, bottom right, etc.) and For regions that are not composed of pixels (i.e., not coded), the region composed of reference pixels is Implicitly using one or more pixels from the region (e.g., exact copy, weighted average, etc.) or at least one pixel in the area that does not consist of reference pixels. Therefore, the information about the pixel structure can be generated explicitly. A predicted block can be generated using a region that does not consist of reference pixels and a region that does not consist of reference pixels. do.
[0175] The present invention may include additional non-directional modes other than those described above. The explanation will be focused on the non-directional modes of DC and Planar, but modifications can be made to other cases. It can also be used.
[0176] FIG. 5 shows prediction modes that can be fixedly supported regardless of the block size. Also, supported prediction modes may differ from those shown in FIG. 4 depending on the block size.
[0177] For example, the number of prediction mode candidates is adaptive (for example, the angles between prediction modes are equally spaced). However, the angles are set differently. Based on the directional mode, 9, 17, 33, 65, 129, etc. ) or the number of prediction mode candidates is fixed but other configurations (e.g., directional modes) are used. The grain size can be varied depending on the grain size (e.g., grain size, angle, non-directional grain, etc.).
[0178] Also, FIG. 5 shows that the prediction modes are fixedly supported regardless of the block type. Also, the prediction modes supported depending on the block type may differ from those shown in FIG. .
[0179] For example, the number of prediction mode candidates is adaptive (for example, depending on the ratio of the width and height of the block). (The number of prediction modes derived horizontally or vertically is set to be small or large depending on the In this case, the number of prediction mode candidates is fixed, but other configurations (e.g., horizontal and vertical block configurations) are possible. (More precisely set prediction modes derived horizontally or vertically depending on the ratio) can be done.
[0180] Alternatively, the prediction mode with the longer block length may have more bits than the block length. The prediction mode with a shorter block length can support fewer predictions, and the prediction mode with a longer block length can support fewer predictions. In this case, the prediction mode interval is set to the mode located to the right of the 66th mode in Figure 5 (for example, the 50th mode). Modes with angles of +45 degrees or more based on the mode. In other words, numbers such as 67 to 80 Modes with 18th mode) or modes located to the left of mode 2 (for example, mode 18) Modes with angles of -45 degrees or more, i.e., modes with numbers such as -1 to -14. This is determined by the ratio of the width and height of the block. and the opposite situation is possible.
[0181] In the present invention, the prediction mode is fixed (regardless of any encoding / decoding elements) as shown in FIG. The following description will be focused on prediction modes that are supported by the coding setting. It is also possible to set a prediction mode that is suitable for the image.
[0182] In addition, when classifying prediction modes, horizontal and vertical modes (modes 18 and 50), Diagonal mode (Diagonal up right <2nd>, Diagonal Down right (No. 34), Diagonal down left (No. 66) etc.) can be used as a reference, which can be a certain direction (or angle of 45 degrees, 90 degrees, etc.) This can be a classification method performed by:
[0183] In addition, some of the directional modes located at both ends (modes 2 and 66) are predicted. This can be the reference mode for the prediction mode classification, and it is the intra prediction mode shown in Figure 5. This is an example of a possible case when the prediction mode configuration is adaptive. For example, if the second mode is smaller than 2, the reference mode may be changed. It will be replaced by a mode with a higher number (-2, -1, 3, 4, etc.) or by the 66th mode. Modes with numbers less than or greater than 66 (64, 66, 67, 68, etc.) It can be done.
[0184] Also, additional prediction modes for color components (color copy mode, color mode) The color copy mode can be included in the prediction mode candidate group. A prediction method related to the method of obtaining data for generating a prediction block from an area located within the The color mode can be a predicted mode from a region located in another color space. It can be a prediction mode related to the method of obtaining the mode.
[0185] FIG. 6 is an example for explaining a reference pixel configuration used in intra-frame prediction according to an embodiment of the present invention. The size and shape (M×N) of the prediction block are obtained by the block division unit. It is possible.
[0186] Intra-frame prediction is generally performed in units of prediction blocks. Depending on the setting of the division section, it can be performed in units of coding blocks, transform blocks, etc. After checking the block information, the reference pixel construction unit selects the reference pixels to be used for predicting the current block. Here, the reference pixels are stored in a temporary memory (for example, an array <array> It can be managed by the primary, secondary array, etc., and for each intra-screen prediction process of a block The size of the temporary memory can be determined by the configuration of the reference pixels. .
[0187] In this example, the left, top, top left, top right, and bottom left blocks are set as the current block. The following description will be made on the assumption that the block is used for lock prediction, but the present invention is not limited to this and may be used for other block configurations. The candidate set can also be used to predict the current block. For example, the neighboring blocks for the reference pixel The group of lock candidates can be, for example, a raster or Z scan. Depending on the order, some of the candidates may be removed or other block candidates (e.g. , right side, bottom, bottom right block, etc.)
[0188] In addition, if some prediction modes (color copy modes) are supported, other colors A part of the space can be used for predicting the current block, so it can also be considered as a reference pixel. This can be taken into consideration.
[0189] FIG. 7 is a schematic diagram showing blocks adjacent to a target block of intra prediction according to an embodiment of the present invention. In detail, the left side of FIG. 10 shows the blocks adjacent to the current block in the current color space. The left side shows the corresponding blocks in other color spaces, and the right side shows the corresponding blocks in other color spaces. Therefore, the blocks adjacent to the current block in the current color space are the basic reference pixel configuration. The following explanation will be given assuming the following case.
[0190] As shown in Figure 6, the reference pixels used for predicting the current block are: left, top, top left, top right The adjacent pixels in the left and right blocks (Ref_L, Ref_T, Ref_TL, R in Fig. 6) ef_TR, Ref_BL), where the reference pixel is the current block. The pixel line is composed of the pixels of the adjacent block closest to the block (a in Fig. 6, which is expressed as the reference pixel line). It is common to create a pixel in this way, but other pixels (b in Figure 6 and other pixels on the outer lines) are also considered. The pixel can be configured as a reference pixel.
[0191] The pixels adjacent to the current block can be classified into at least one reference pixel line. The pixel closest to the current block is ref_0 {e.g., the boundary pixel of the current block and the pixel Pixels whose distance from the pixel is 1. p(-1,-1)~p(2m-1,-1), p(-1, 0) to p(-1, 2n-1)}, the next adjacent pixel {e.g., the boundary pixel of the current block The distance between the element and the pixel is 2. p(-2, -2)~p(2m, -2), p(-2, -1)~ p(-2, 2n)} is ref_1, the next adjacent pixel {e.g., the boundary of the current block The distance between pixels is 3. p(-3,-3)~p(2m+1,-3), p(-3,- 2)~p(-3, 2n+1)} can be divided into ref_2 etc. That is, currently Classifying the reference pixel lines according to the distance between the boundary pixels of the block and the adjacent pixels can be done.
[0192] Here, the number of supported reference pixel lines may be N or more, where N is a number ranging from 1 to 5. It can be an integer equal to or greater than 1. Here, the reference pixel line closest to the current block Generally, the reference pixel line candidate group is included in the order from , but is not limited to this. For example, if N is 3,<ref_0、ref_1、ref_2> The candidate group is sequentially or<ref_0、ref_1、ref_3> , <ref_ 0, ref_2, ref_3>,<ref_1、ref_2、ref_3> Sequentially like this Alternatively, the candidate group may be configured by excluding the most adjacent reference pixel line. .
[0193] The prediction is performed using all the reference pixel lines in the candidate group or a part of the reference pixel lines. You can use one or more of these to make predictions.
[0194] For example, one of multiple reference pixel lines is selected according to the encoding / decoding settings, and the corresponding reference pixel is Intra-prediction can be performed using a pixel line, or multiple reference pixel lines can be used. Select two or more of the reference pixel lines and use the corresponding reference pixel lines (for example, Intra-frame prediction can be performed by applying weighted averages to the data.
[0195] Here, the selection of the reference pixel line can be determined implicitly or explicitly. For example, If implicit, the image type, color components, block size / shape / position, etc. Determined by encoding / decoding settings defined by one or a combination of two or more In the explicit case, reference pixel line selection information is generated in units such as blocks. This means that you can.
[0196] In the present invention, the case where intra-frame prediction is performed using the most adjacent reference pixel line will be mainly described. However, the same or similar application applies to the various embodiments described below when multiple reference pixel lines are used. It should be understood that this is possible.
[0197] For example, the nearest reference pixel line is used for intra-frame prediction in sub-block units, which will be described later. It is possible to support the setting of implicitly determining the information only when the above-mentioned information is taken into consideration. , and can perform intra-frame prediction in sub-block units using the preset reference pixel lines. , the reference pixel line can be selected by an implicit process. The line may refer to, but is not limited to, the nearest reference pixel line.
[0198] Alternatively, a reference pixel line is adaptively selected for intra-frame prediction in sub-block units. and a sub-block is formed by selecting various reference pixel lines including the most adjacent reference pixels. It can perform intra-frame prediction for each frame, taking into account various encoding / decoding factors. The reference pixel line determined by the above method can be used to perform intra-frame prediction in sub-block units. The reference pixel line can be selected by an implicit or explicit process.
[0199] The reference pixel configuration unit for intra-frame prediction of the present invention includes a reference pixel generation unit, a reference pixel interpolation unit, and a reference pixel It may include a filter portion, etc., and may comprise all or part of the above-mentioned components. .
[0200] Check the availability of reference pixels in the reference pixel configuration section and use them. Here, the reference pixels can be classified into usable reference pixels and unusable reference pixels. A feature is deemed unusable if it satisfies at least one of the following conditions:
[0201] For example, if it is located outside the picture boundary, it is divided into the same division unit as the current block (e.g., Units that cannot be referenced with each other, such as slices and tiles. Even if the units are different, if they have mutually referable characteristics, they can be used as exceptions even if they are not the same division unit. If it does not belong to the process, if any of the following conditions is satisfied: In other words, if any of the above conditions is not met, it is deemed unusable. It can be judged as usable.
[0202] You can also restrict the use of reference pixels by encoding / decoding settings. For example, Even if it is determined that it is possible to use it based on the above conditions, it is possible to use limited intra-frame prediction (e.g., co The reference pixel is determined by whether or not the ensemble_intra_pred_flag is performed. Use of the limited in-screen prediction can be restricted. - When trying to perform robust encoding / decoding, the block is restored by referencing other images. Locking can be performed when it is desired to prohibit the use of a pixel as a reference pixel.
[0203] If constrained intra prediction is deactivated (e.g., I video type, or P or B Video type (constrained_intra_pred_flag=0), reference image All prime candidate blocks can be used.
[0204] Or, if limited intra-picture prediction is activated (e.g., P or B picture type, c onstrained_intra_pred_flag=1), reference pixel candidate block is assumed to be a condition for determining whether it can be used or not depending on the coding mode (Intra or Inter). However, the condition can also be determined by a variety of other encoding / decoding factors.
[0205] Since the reference pixel is composed of one or more blocks, the possibility of the reference pixel is confirmed. If you classify them, there are three types: <all can be used>, <some can be used>, and <no can be used>. In the remaining cases, except for the case where all the blocks are usable, the remaining blocks are unusable candidate blocks. The reference pixel of the lock position can be filled or generated.
[0206] If the reference pixel candidate block is available, the pixel at the corresponding position is used as the reference pixel of the current block. The pixel data can be directly copied or stored in the memory. The reference pixel memory can be stored through processes such as filtering and reference pixel interpolation. In addition, if the reference pixel candidate block is unavailable, the reference pixel generated by the reference pixel generation process is used. The pixel thus obtained can be included in the reference pixel memory of the current block.
[0207] The following are examples of generating reference pixels for unavailable block locations using various methods.
[0208] For example, any pixel value can be used to generate a reference pixel. The value is a pixel value range (e.g., a pixel value range based on bit depth or pixel distribution within the image). A pixel value (for example, the minimum, maximum, or median value of the pixel value range) belonging to the pixel value range In detail, when all the reference pixel candidate blocks are unavailable, can be an applicable example.
[0209] Alternatively, reference pixels can be generated from areas of the video that have already been coded / decoded. In particular, the unusable block is referenced by at least one usable block adjacent to the unusable block. Pixels can be generated by at least one of methods such as extrapolation, interpolation, and copying. can be used.
[0210] After the reference pixel interpolation unit completes the construction of the reference pixels, the reference pixels are linearly interpolated to form a decimal point. Alternatively, the reference pixel filtering process described below can be used to generate unit reference pixels. After this, a reference pixel interpolation process can be performed.
[0211] Here, horizontal, vertical and some diagonal modes (e.g. Diagonal up rig ht, Diagonal down right, Diagonal down lef Modes with a 45 degree difference between vertical and horizontal directions, such as t. Corresponds to modes 2, 34, and 66 in Figure 5. ), in the case of non-directional mode, color copy mode, etc., the interpolation process is not performed, and In the case of the mode (other diagonal mode), an interpolation process can be performed.
[0212] Prediction mode (e.g., directionality of prediction mode, such as dy / dx) and reference and predicted pixels The pixel position to be interpolated depends on the position of the pixel (i.e., which decimal unit is to be interpolated). Here, regardless of the precision of the decimal point, , one filter (e.g., to determine the length of the filter coefficients or filter taps) The mathematical formula used for this assumes the same filter, but with decimal precision < 1 / 3, e.g. 2, 7 / 32, 19 / 32) or multiple filters (e.g., filter coefficients or filter taps) The mathematical formula used to determine the length is a filter (assuming a filter is partitioned) It can be selected and applied depending on the unit.
[0213] In the former case, integer unit pixels are used as input for the interpolation of fractional unit pixels. In the latter case, the input pixels are different for each step (for example, in the case of 1 / 2 units). In the case of 1 / 4 units, integer and 1 / 2 unit pixels must be used. The present invention will be described mainly in terms of the former case.
[0214] Perform fixed or adaptive filtering for reference pixel interpolation This allows you to change the encoding / decoding settings (e.g. video type, color components, block One or more of the following: position / size / shape, ratio of horizontal to vertical length of block, prediction mode, etc. The combination of
[0215] Fixed filtering can perform reference pixel interpolation using one filter. Adaptive filtering uses one of multiple filters to perform reference pixel interpolation. It can be done.
[0216] Here, in the case of adaptive filtering, multiple filters are used depending on the encoding / decoding settings. One of the two can be determined implicitly or explicitly. The filter types are 4-tap DCT-IF filter, 4-tap cubic Filter, 4-tap Gaussian filter, 6-tap Wiener filter, 8- It can be composed of tap Kalman filters and is supported by color components. The filter candidates are defined differently (e.g., some of the filter types are the same, but others are different). or whether the filter taps are short or long).
[0217] The reference pixel filter reduces the degradation remaining from the encoding / decoding process. Therefore, filtering can be performed on the reference pixels to improve the accuracy of the prediction. The filter used is a low-pass filter. It can be, but is not limited to, the encoding / decoding settings (derived from the above description). It is possible to determine whether or not filtering is applied by the filter. When applying filtering, either fixed or adaptive filtering is applied. It is possible.
[0218] Fixed filtering does not perform reference pixel filtering or uses only one filter. This means applying reference pixel filtering using the adaptive filtering algorithm. Whether filtering is applied or not is determined by the encoding / decoding settings. If there are two or more types of target, you can choose one of them.
[0219] Here, the filter type is a 3-tap filter such as [1, 2, 1] / 4, or [2 Various filter coefficients, such as 5-tap filters like [3, 6, 3, 2] / 16, Supports multiple filters, differentiated by filter tap length, etc. .
[0220] The reference pixel interpolation unit and the reference pixel filter unit introduced in the reference pixel configuration step are used to This is a necessary configuration for improving accuracy. The above two processes are performed independently. However, a configuration that combines the two processes (i.e., processing with one filtering) is also possible. theory) is also possible.
[0221] A prediction block generating unit generates a prediction block by at least one prediction mode. The reference pixels can be used based on the prediction mode. Depending on the prediction mode, extrapolation and other methods (directional modes) may be used. You can use interpolation, averaging (DC), or copying (C opy) and other methods (non-directional modes).
[0222] The prediction mode determination unit performs an overlay to select the optimal mode from a group of multiple prediction mode candidates. Generally, block distortion (e.g., the difference between the current block and the restored block) stortion. SAD(Sum of Absolute Difference) , SSD (Sum of Square Difference, etc.) and the corresponding mode The rate-distortion technique is used to consider the amount of generated bits. The optimum mode can be determined in terms of the encoding cost. The predicted block generated based on the prediction mode can be sent to a subtraction unit and an addition unit.
[0223] To determine the optimal prediction mode, all prediction modes in the prediction mode candidate group are searched. The optimal value can be determined by searching for the optimal value or by other decision processes for the purpose of reducing the amount of calculation / complexity. For example, in the first stage, all of the intra-frame prediction mode candidates are selected. In the second stage, some modes that show good performance in terms of image quality degradation are selected. The optimal prediction mode is selected by taking into consideration not only the degradation of image quality but also the amount of generated bits. In addition to the above method, various methods can be used to reduce the amount of calculation / complexity. can be applied.
[0224] In addition, the prediction mode determination unit may generally be configured to be included only in the encoder. , which may be included in the decoder depending on the encoding / decoding settings. For example, The prediction method includes template matching or the intra prediction mode of the current block. In the latter case, the prediction mode is implicitly determined at the decoder. It can be understood that a method of acquisition was used.
[0225] The prediction mode encoding unit encodes the prediction mode selected by the prediction mode determination unit. The index information corresponding to the prediction mode in the prediction mode candidate group is coded. Alternatively, the prediction mode can be predicted and information about it can be coded. In the former case, it can be a method applied to the luminance component, and in the latter case, to the chrominance components. The method may be, but is not limited to, a method applied to the above.
[0226] When predicting and encoding a prediction mode, the predicted value (or prediction information) of the prediction mode is MPM is a single prediction model. It can be configured in one prediction mode or in multiple prediction modes, The number of MPMs (k, where k is an integer greater than or equal to 1, such as 1, 2, 3, or 6) is determined based on the number of candidate groups. When an MPM consists of multiple prediction modes, the MPM candidate set and It can be said that.
[0227] MPM candidates can be supported under fixed settings or under various encoding / decoding conditions. The elements can support adaptive configuration. Examples of adaptive configuration are: The candidate group configuration is determined by which reference pixel layer to use among a plurality of reference pixel layers. Intra prediction can be performed in units of blocks or in units of sub-blocks. For the sake of convenience, we will use one setting. We assume that the MPM candidates are constructed under the specified conditions, and we consider not only the MPM candidates but also other intra-frame predictions. It should be understood that the candidate set configuration for the modes can also be adaptive.
[0228] MPM is a concept that helps to efficiently encode prediction modes. In the prediction mode of the block, a group of candidates can be formed in a prediction mode with a high probability of occurrence.
[0229] For example, the MPM candidate group may be a preset prediction mode (or a statistically frequently occurring prediction mode). DC, Planar, Vertical, Horizontal, some diagonal modes, etc.), adjacent blocks (left The prediction modes can be configured as follows: side, top, top-left, top-right, bottom-left block, etc. Here, the prediction modes of the adjacent blocks are L0 to L3 (left side blocks) in FIG. , T0~T3 (upper block), TL (upper left block), R0~R3 (upper right block) ), and can be obtained from B0~B3 (bottom left blocks).
[0230] In an adjacent block (e.g., the left block), two or more sub-block positions (e.g., If a group of MPM candidates can be constructed from L0, L2, etc., they are prioritized in a predefined order. The prediction mode of the corresponding block is configured into a candidate group according to the rank (e.g., L0-L1-L2, etc.). Alternatively, a set of MPM candidates can be constructed from two or more sub-block positions. If this is not possible, the sub-block corresponding to a predefined position (e.g., L0) is The prediction modes can be organized into candidate groups. In particular, the L3, L4, and L5 blocks can be selected from the neighboring blocks. The prediction modes at positions T3, TL, R0, and B0 are selected as the prediction modes for the corresponding adjacent blocks. The above description is about selecting the prediction modes of neighboring blocks as candidates. This is a partial example of constructing a complement group, but is not limited to this. Assume that the prediction modes of the device are organized into a set of candidates.
[0231] In addition, if one or more prediction modes are configured in the MPM candidate group, one of the already included Modes derived from the above prediction modes can also be added to the MPM candidate group. In detail, if the kth mode (directional mode) is included in the MPM candidate group, the corresponding mode Inducible modes (modes with intervals of +a, -b based on k. a and b are 1, 2, 3, or other integers greater than or equal to 1) can be additionally included in the candidate MPMs.
[0232] There may be a priority for constructing MPM candidates, and the prediction model of the neighboring blocks may be MPM candidates are configured in the order of mode, preset prediction mode, induced prediction mode, etc. The process of constructing the MPM candidate set is to select the maximum number of MPM candidates according to the priority. If the prediction mode matches the one already included in the above process, The corresponding prediction mode is not included in the candidate group, and the procedure moves to the next priority candidate. It can include.
[0233] Next, it is assumed that the MPM candidate group is composed of six prediction modes.
[0234] For example, LT-TL-TR-BL-Planar-DC-Vertical-Horizontal-Diagonal mode The candidate group can be configured in the order of, for example, the prediction mode of the adjacent block. This may be the case when a previously configured prediction mode is to be additionally configured. .
[0235] Or LT-Planar-DC-<L+1> - <l-1>-<T+1> - <T -1>-Candidates can be constructed in the order of vertical-horizontal-diagonal mode, etc. The prediction mode of the adjacent block and a part of the preset prediction mode are configured preferentially. This is derived under the assumption that a prediction mode with a similar direction to the lock prediction mode occurs. This may be the case when you want to configure some of the pre-set prediction modes. .
[0236] The above examples are only a few examples of MPM candidate group configurations, and are not limited to these. Examples are possible.
[0237] The MPM candidate set is unary binarized based on the index within the candidate set. arization), Truncated Rice Binaryization Binarization can be used, i.e., a small integer. Candidates with higher indices are assigned shorter bits, and candidates with higher indices are assigned shorter bits. A long length of bits can be allocated to represent the mode bits.
[0238] Modes that could not be included in the MPM candidate group are classified into the non-MPM candidate group. In addition, depending on the encoding / decoding settings, the non-MPM candidate group may contain two or more candidates. It can be classified into complements.
[0239] Next, there are 67 modes in the prediction mode candidate group, including directional and non-directional modes. The MPM candidate group consists of 61 prediction modes, with 6 MPM candidates supported. This assumes the following case.
[0240] If the non-MPM candidate group consists of one member, it is included in the MPM candidate group construction process. Since the remaining prediction modes are those that could not be selected, an additional candidate group construction process is required. Therefore, fixed length binary coding (Fi) is performed based on the index in the non-MPM candidate set. truncated length binarization, truncated unary binarization (T It is possible to use binarization such as runcated unary binarization. can.
[0241] Assuming that the non-MPM candidate group consists of two or more candidates, in this example, -MPM candidate group is non-MPM_A (hereinafter, candidate group A) and non-MPM_B (hereinafter, A candidate group (p items, more than the number of MPM candidate groups) is classified into B candidate group (q items, A The number of candidates is more than the number of candidates. Here, we can add the process of constructing the A candidate group.
[0242] For example, having even spacing among the directional modes (e.g., 2nd, 4th, 6th modes, etc.) Some prediction modes to be configured as candidate group A or pre-configured prediction modes (e.g., MPM candidates) A mode derived from a prediction mode included in the group can be configured. The remaining prediction modes from the M candidate group configuration and the A candidate group configuration can be configured into the B candidate group. No additional candidate group construction process is required. Binary coding such as fixed length binarization or truncated unary binarization can be used.
[0243] The above example is a partial case where the non-MPM candidate group is composed of two or more. There is no limitation and various modifications are possible.
[0244] Next, a process for predicting and encoding a prediction mode will be described.
[0245] The prediction mode of the current block matches the MPM (or some mode in the MPM candidate set). You can check the information (mpm_flag) about the
[0246] If it matches an MPM, the MPM index is determined by the MPM configuration (one or more). Then, the current block's code can be checked. Complete the encryption process.
[0247] If the non-MPM candidate group does not match the MPM, and if the non-MPM candidate group consists of one non-MPM, You can check the MPM index information (remaining_idx). Then, the encoding process of the current block is completed.
[0248] If there are multiple non-MPM candidates (two in this example), Information on whether the prediction mode of matches some prediction modes in the candidate set A (non_m pm_flag).
[0249] If it matches candidate group A, candidate group A index information (non_mpm_A_idx) If it does not match the A candidate group, the B candidate group index information (rem After that, the coding process of the current block is Complete.
[0250] When the prediction mode candidate group configuration is fixed, the prediction mode supported by the current block, the neighboring The prediction modes supported by the selected block and the preset prediction modes have the same prediction number index. You can use the
[0251] On the other hand, if the prediction mode candidate group configuration is adaptive, the prediction mode supported by the current block is The prediction modes supported by adjacent blocks and the preset prediction mode have the same prediction number. You can use the same index or a different prediction number index. Please refer to Figure 4.
[0252] In the prediction mode encoding process, the prediction mode candidate group unification ( For example, if the prediction mode of the current block is -5, It is one of the prediction mode candidates for mode 61, and the prediction modes of the adjacent blocks are 2 to 61. It can be one of the prediction mode candidates for the 66th mode. In this case, the adjacent block Some of the prediction modes of the block (mode 66) are not supported by the prediction mode of the current block. Therefore, a process of unifying these modes is performed during the prediction mode encoding process. That is, when supporting a fixed intra-frame prediction mode candidate group configuration, This is a process that is not required when supporting adaptive intra-frame prediction mode candidate group configuration. This may be a desired process, and a detailed description thereof will be omitted.
[0253] Unlike the method using the MPM, the prediction mode in the prediction mode candidate group is indexed. The encoding can be performed by allocating a memory space.
[0254] For example, the prediction modes are assigned indices according to predefined priorities. Once the prediction mode of the block is selected, the method of encoding the corresponding index corresponds to it. This is because a fixed group of prediction mode candidates is configured and a fixed index is assigned to the prediction mode. This means that a resource is assigned.
[0255] Alternatively, when the prediction mode candidate set is adaptively configured, the fixed index Therefore, the prediction mode can be adjusted by adaptive prioritization. When the prediction mode of the current block is selected, the corresponding index is assigned to the block. This allows for adaptive construction of prediction mode candidates. The prediction modes are efficiently coded by different indexes assigned to the prediction modes depending on the composition. That is, the adaptive priority is used as the prediction mode for the current block. Assign candidates with high probability of being selected to indices where short mode bits occur. This is because.
[0256] Next, the prediction mode candidate group is set to the preset prediction mode (directional mode and non-directional mode), Supports 8 prediction modes including color copy mode and color mode (color difference component ) is assumed.
[0257] For example, the preset prediction modes are Planar, DC, horizontal, vertical, and diagonal modes (this In the example, Diagonal down left) supports 4 modes and 1 color mode ( C) and three color copy modes (CP1, CP2, CP3) are supported. The basic order of indexes assigned to prediction modes is preset prediction mode - color copy Mode - can be given as color mode etc.
[0258] Here, the preset prediction modes are the directional mode, the non-directional mode, and the color copy mode. The modes can be easily classified into prediction modes, which are classified into prediction methods. In the case of the mode, it can be a directional mode or a non-directional mode, which is a preset prediction There may be overlaps with the mode. For example, if the color mode is In the case of the mode, there may be a case where it overlaps with the vertical mode, which is one of the preset prediction modes.
[0259] When the number of prediction mode candidates is adaptively adjusted according to the encoding / decoding setting, the overlap If this happens, you can adjust the number of candidates (from 8 to 7). If the number of prediction mode candidates is fixed, and if the overlap occurs, other candidates are used. The index can be assigned by adding and considering the complement. In addition, the adaptive prediction mode candidate group may include a variable mode such as a color mode. Therefore, adaptive index allocation can be performed. This case can be considered as an example of adaptive prediction mode candidate group configuration.
[0260] Next, we will explain how to assign indexes adaptively depending on the color mode. Decks are Planar(0)-Vertical(1)-Horizontal(2)-DC(3)-CP1(4) -CP2(5)-CP3(6)-C(7) are assumed to be assigned in this order. If the mode does not match the preset prediction mode, the index assignment is performed in the above order. This is assumed.
[0261] For example, if the color mode is a preset prediction mode (Planar, vertical, horizontal, DC mode ) matches the prediction mode that matches the color mode index (7). The index of the matching prediction mode (one of 0 to 3) is the same as the preset prediction mode. The Diagoanal down left is filled. If the mode is horizontal, then Planar(0)-Vertical(1)-Diagoanal n left(2)-DC(3)-CP1(4)-CP2(5)-CP3(6)-horizontal( 7) can be performed.
[0262] Or, if the color mode matches one of the preset prediction modes, the 0th index is used. The prediction mode that matches the frame is filled in, and the color mode index (7) The preset prediction mode (Diagoanal down left) is satisfied. If the filled prediction mode is not the existing 0th index (i.e., Plan If you are not in ar mode, you can adjust the existing index configuration. Specifically, when the color mode is DC mode, DC(0)-Planar(1)-Vertical(2 )-Horizontal(3)-CP1(4)-CP2(5)-CP3(6)-Diagonal do An index assignment such as wn left(7) can be performed.
[0263] The above examples are only a few examples of adaptive index allocation, and are not limited to these. Various modifications are possible. Also, fixed length binarization is performed based on the index within the candidate group. Binary evolution, such as unary binary evolution, truncated unary binary evolution, and truncated rice binary evolution can be used.
[0264] Next, an index is assigned to a prediction mode belonging to the prediction mode candidate group, and encoding is performed. Another example will be described.
[0265] For example, the prediction mode, prediction method, etc. are classified into a plurality of prediction mode candidate groups, and the corresponding This corresponds to a method of assigning an index to a prediction mode belonging to a candidate group and encoding it. In this case, the candidate group selection information coding can be performed prior to the index coding. As an example, there are prediction modes that perform prediction in the same color space, such as directional mode and non-directional mode. A mode and a color mode can belong to one candidate group (hereinafter referred to as S candidate group), and other color modes can belong to one candidate group (hereinafter referred to as S candidate group). The color copy mode, which is a prediction mode that predicts in the -space, is one candidate group (hereinafter referred to as candidate D). group).
[0266] Next, the prediction mode candidate group includes the preset prediction mode, color copy mode, and color mode. It is assumed that nine prediction modes including (chrominance component) are supported.
[0267] For example, the preset prediction modes are Planar, DC, horizontal, vertical, and diagonal modes. It supports four modes, one color mode (C) and four color copy modes (CP1, CP2, S candidates are assumed to support the preset prediction mode and color model. The D candidate group is composed of color copy modes. There can be four candidates for
[0268] The S candidate set is an example of an adaptively configured prediction mode candidate set, and the adaptive index An example of allocation has been described above, so a detailed explanation will be omitted. Since it is an example of a prediction mode candidate group, a fixed index assignment method can be used. For example, an index such as CP1(0)-CP2(1)-CP3(2)-CP4(3) Box allocation can be accomplished.
[0269] Based on the index within the candidate set, fixed length binarization, unary binarization, truncated You can use binary conversion such as unary binary conversion and truncated rice binary conversion. The present invention is not limited to the above examples, and various modifications are possible.
[0270] Candidate group construction such as MPM for prediction mode coding can be performed on a block-by-block basis. Alternatively, the candidate group construction process can be omitted, and a predetermined candidate group can be used or various candidates can be used. This is useful for reducing complexity and other purposes. The configuration can be such that it can provide support for the purpose.
[0271] In one example (1), a predefined set of candidates is used or the encoding / decoding settings are used. One of several predefined candidate sets can be used. For example, in the case of MPM candidates: {Planar-DC-Vertical-Horizontal-Diagonal down left<6 in Figure 5 6>-Diagonal down right<34 in Figure 5>} Alternatively, adjacent blocks in the MPM candidate set can be used. A set of candidates formed when none are available can be applied to this example.
[0272] In one example (2), we can use a set of candidates for blocks that have already been coded. The blocks that have been coded are then stored in the coding order (predetermined scanning method, e.g., z-scan, ve Selection should be based on the following: vertical scan, horizontal scan, etc. Or you can select adjacent blocks such as the left, top, top left, top right, bottom left, etc. of the current block. However, adjacent blocks can be selected from the current block. The division unit that can be referenced (for example, each block can be referenced even if the slice or tile to which it belongs is different) attributes. For example, tiles that belong to the same tile group but are different tiles. It can be limited to the location to which it belongs, and the division unit that cannot be referenced (for example, the slot to which each block belongs) When the slices or tiles are different but have attributes that cannot be referenced to each other. If the block belongs to a group, the block in question can be excluded from the candidates. do.
[0273] Here, the adjacent blocks can be determined based on the state of the current block. For example, if the current block is a square, among the blocks located according to the first priority You can borrow (or share) a set of available blocks, or you can borrow (or share) a set of available blocks. If the block is rectangular, the available block among the blocks located by the second priority Here, depending on the ratio of the horizontal length to the vertical length of the block, the second or A third priority can be supported. The priority for selecting a candidate block to borrow is , left-top-top-top-bottom-top-left, top-left-top-top-top-bottom-left, etc. Here, the first to third priorities may all have the same configuration or all may have the same configuration. Some of the components may have different configurations or some of the components may have the same configuration.
[0274] The candidate set of the current block is selected from the neighboring blocks only if it is above / exceeds the predetermined threshold. or adjacent only if it is below a certain threshold. The boundary value allows borrowing from a candidate group. The boundary value can be defined as the minimum or maximum size of a block. It can be expressed as horizontal (W), vertical (H), W×H, W*H, etc., where W and H are 4, It can be an integer of 8, 16, 32 or more.
[0275] In example (3), a common candidate set is constructed from the upper blocks of a given block. A lower block within a higher block can use the corresponding candidate set. Here, the number of sub-blocks can be an integer greater than or equal to 1, such as 1, 2, 3, or 4. do.
[0276] Here, the upper block is the ancestor block (including the parent block) of the lower block. or a block constructed from a bundle of arbitrary blocks, where: An ancestor block is a block that is created in a previous stage of the division process to obtain a lower block (difference in division depth). For example, in Figure 4b, 4N × The parent block of the 0th and 1st subblocks of 2N can represent 4N×4N in Figure 4a. .
[0277] The candidates for the upper block are selected from the lower block only if they are greater than or equal to the first boundary value. or less than / below a predetermined second threshold. A borrow from a lower block can only be performed if
[0278] Here, the boundary value is defined as the minimum or maximum size of a block that allows borrowing of candidates. Only one or both of the boundary values can be supported. The boundary value can be expressed as the width (W), height (H), W×H, W*H, etc. of the block. The W and H can be integers of 8, 16, 32, 64 or more.
[0279] On the other hand, the candidates for the lower block are only considered to be the upper block if they are equal to or greater than the third boundary value. Or, if the borrowing amount is less than or equal to the fourth threshold, Only the upper block can borrow from the lower block.
[0280] Here, the boundary value is defined as the minimum or maximum size of a block that allows borrowing of candidates. Only one or both of the boundary values can be supported. The boundary value can be expressed as the width (W), height (H), W×H, W*H, etc. of the block. The W and H can be integers of 4, 8, 16, 32 or more.
[0281] Here, is the first boundary value (or the second boundary value) greater than the third boundary value (or the fourth boundary value)? They can be identical.
[0282] Selective use of candidate group borrowing (or sharing) according to any one of the above-described embodiments. The candidate group can be selectively used based on a combination of at least two of the embodiments 1 to 3. The detailed configuration of each embodiment can also be selected based on one of the candidate groups. It can be used selectively, and can be used selectively by combining one or more detailed configurations. can be done.
[0283] In addition, the attributes of the blocks involved in the borrowing of the candidate group (size / shape / position / Information about the division status (division method, division type, division depth, etc.) It is also possible to explicitly handle coding elements such as video type, color components, etc. The information and encoding / decoding settings can act as input variables to the complement borrowing settings. The borrowing of the candidate group can be accomplished based on the above.
[0284] The prediction related information generated by the prediction mode coding unit is transmitted to the coding unit and is then used for bitstream analysis. It can be included in the stream.
[0285] In the video decoding method according to an embodiment of the present invention, the intra prediction can be configured as follows. The intra-frame prediction of the prediction unit includes a prediction mode decoding step, a reference pixel construction step, and a prediction block. The video decoding apparatus may further include a prediction mode decoding step, A prediction mode decoding unit that implements a reference pixel construction step and a prediction block generation step, The process can be configured to include a pixel construction unit and a predicted block generation unit. Some steps may be omitted or other steps may be added, and the steps may not be in the order listed above. Other orders can be changed.
[0286] The reference pixel construction unit and the prediction block generation unit of the video decoding device are Since the prediction mode decoding unit has the same function as the prediction mode decoding unit, detailed description thereof will be omitted. This can be achieved by using the method used in the encoding unit in reverse.
[0287] (Sub-block-based intra-picture prediction)
[0288] FIG. 8 shows various sub-block divisions that can be obtained based on the coding block. Here, the coding block is called the parent block, and the sub-blocks can be child blocks. Here, a sub-block can be a unit for which prediction or transformation is performed. In this example, we assume that one prediction information is shared between sub-blocks. , one prediction mode is generated and used for each sub-block.
[0289] Referring to FIG. 8, the coding order of the sub-blocks is determined by various combinations of a to p in FIG. For example, z-scan (left → right, top → bottom), vertical l scan (top → bottom), horizontal scan (left → right), inverse vertical scan (bottom → top), inverse horizontal s It can be in one of the following orders, such as can (right → left).
[0290] The encoding order may be the order already agreed to by the video unit / decoder, or The coding order of the sub-blocks may be determined taking into account the division direction of the parent block. For example, if a parent block is divided horizontally, the coding order of the sub-blocks is v A vertical scan can be determined. The parent block is split vertically. In this case, the coding order of the sub-blocks can be determined as horizontal scan. Cut.
[0291] When encoding is performed in sub-block units, the reference data used for prediction is closer to the original data. Only one prediction mode can be generated and this can be obtained in a sub-block. This is an efficient method because it is a method of sharing information.
[0292] For example, referring to FIG. 8(b), when encoding is performed in parent block units, the lower right sub-block A block can perform prediction using pixels adjacent to the parent block. When encoding in block units, the lower right sub-block is encoded in a predetermined encoding order (in this example, zs Since there are upper left, upper right, and lower left sub-blocks restored by The prediction can be performed using neighboring pixels rather than a block.
[0293] For intra-frame prediction by optimal division considering video characteristics, one or more likely occurrences are Candidates can be formed based on the partitioning pattern.
[0294] In this example, we assume that the partition information is generated using an index-based partitioning method. The candidate groups can be configured in various division forms such as:
[0295] Specifically, a candidate group can be configured into N divided forms, where N is The candidate set may be an integer greater than or equal to 2. The candidate set may be any of the seven candidates shown in FIG. It may include a combination of at least two of the division forms.
[0296] The parent block is determined by selectively using one of the plurality of division forms belonging to the candidate group. The selection can be made by signaling in the video coding device. This can be done based on an index that is generated by the parent block. Alternatively, the selection may be performed by a video decoding device. The device may also consider the attributes of the parent block. Position, size, shape, width, ratio of width to height, length of either width or height, division Depth, video type (I / P / B), color components (e.g., luminance, chrominance), intra-frame prediction mode the value of the code, whether the intra prediction mode is non-directional, the angle of the intra prediction mode, the reference image The block may refer to a coding block. means a predicted block and / or a transformed block that can be coded or that corresponds to a coded block. The position of the block can be determined by the boundary of a given image (or a fragment of an image) of the parent block. Here, the image (or fragment image) means that the parent block is Belonging picture, slice group, tile group, slice, tile, CTU column ( CTU row), it can mean at least one of the CTUs.
[0297] In example (1), candidate groups such as {a to d} and {a to g} in Figure 8 can be constructed. This can be a candidate group configuration that takes into account various division forms. Then, we can assign different binary bits to each index (alphabet (Assuming that the indexes are assigned in order. This is also assumed in the next example.)
[0298] [Table 1] In Table 1, bin type 1 is an example of binarization that takes into account all possible division forms. In bin type 2, the bit indicating whether or not division is possible (the first bit) is assigned first. If it is assigned and divided (the first bit is 1), it is not divided among the possible division forms. This can be an example of binarization that removes only candidates that match.
[0299] In example (2), we can construct candidate sets such as {a, c, d} and {a, f, g} in Figure 8. This is a candidate group configuration that takes into account division in a specific direction (horizontal or vertical). Assuming the case of {a, f, g}, we can assign various binary bits to each index. can be assigned.
[0300] [Table 2] Table 2 above is an example of binarization assigned based on the block attributes, among which This is an example of a block type. When the lock is square, assign one bit if it is not divided horizontally or vertically. This can be an example of allocating two bits when the signal is divided in the direction.
[0301] In the case of bin type 2, when the parent block is longer horizontally in the rectangle, the horizontal direction For example, if the number is divided into two, one bit is allocated to the number and the remaining two bits are allocated to the number. In type 3, when the parent block is long vertically in the rectangle, it is divided vertically. This can be an example of assigning 1 bit if the parent block is used, and 2 bits if the parent block is used. If it is determined that further splitting such as in the form of a lock is likely to occur, a shorter bit is used. This may be an example of allocating, but is not limited to this, and includes variations including the opposite case. It is possible.
[0302] In example (3), a set of candidates such as {a, c, d, f, g} in Figure 8 can be constructed. This can be another example of candidate group construction that takes into account division in a specific direction.
[0303] [Table 3] In Table 3, bin type 1 assigns the flag (first bit) indicating whether or not division is possible. Then, a flag for distinguishing the number of divisions is assigned. If the lag (second bit) is 0, the number of divisions is 2, and if it is 1, the number of divisions is 4. The subsequent flag can be a flag that represents the split direction. If it is 0, it is a horizontal division, and if it is 1, it is a vertical division. The description is given by way of example only and is not limiting, and various modifications, including opposite configurations, are possible. do.
[0304] The division information may be a structure that is supported in a general situation, but may be a structure that is supported in an encoding / decoding environment. It is possible to change to other settings depending on the circumstances. Supporting the creation of a partition or substituting a partition form represented by partition information for another partition form. can be done.
[0305] For example, there may be a division form that is not supported by the block attributes. Since the block attributes were mentioned in the previous example, we will not go into detail here. A block can refer to at least one of a parent block and a sub-block.
[0306] For example, the supported division pattern is {a, f, g} in FIG. 8, and the parent block size is 4. Assume that the number of blocks is M×4N. If the minimum value condition of a block in an image, a given value of the parent block If the boundary of the image (or fragment image) does not support some division types For the following example, the minimum horizontal length of a block in the image is 2M. and the minimum block width is assumed to be 4*M*N.
[0307] First, we can reconstruct the candidate set by removing the unobtainable division forms. The candidates that can be obtained are 4M×4N, 4M×N, M×4N, and the candidates that cannot be obtained (4 The candidate set to be reconstructed excluding (M×N) can be 4M×4N, 4M×N. In this case, binarization can be performed again on the candidates in the reconstructed candidate set. The flag (1 bit) can be set to 4M×4N or 4M×N.
[0308] In another example, the candidate set can be reconstructed with candidates that replace unobtainable partition forms. In the example, the division that cannot be achieved can be a vertical division (4 divisions). ,The vertical division pattern is maintained by substituting other division patterns (e.g., 2M×4N) to the candidate group. This allows you to reconstruct the existing flag structure based on the existing division information. It is possible.
[0309] As in the previous example, the number of candidates is adjusted or the candidates are restructured by replacing existing candidates. The above examples only include explanations of some cases, and various modifications are possible. be.
[0310] (Sub-block coding order)
[0311] Various sub-block coding orders can be set as shown in FIG. It can be implicitly determined by the encoding / decoding settings. Type, color components, parent block size / shape / position, block width / height ratio, prediction Mode-related information (e.g., intra-frame prediction mode, reference pixel position used, etc.), division status, etc. etc. can be included in the encoding / decoding element.
[0312] Alternatively, explicit manipulation of the coding order of the sub-blocks is possible. A candidate group is formed from candidates that are likely to occur depending on the division form, and selection information for one of them is Therefore, the coding order candidates supported by the division type can be adaptively generated. It can be configured.
[0313] As in the above example, the sub-blocks are coded using a fixed coding order. However, a method of applying an adaptive coding order is also possible.
[0314] Referring to FIG. 8, various encoding orders are generated by assigning various orders a to p shown in the figure. The positions and numbers of sub-blocks obtained by each division type are Since the division format can be different, it is important to configure the encoding order specific to the division format. In addition, the division into sub-blocks is not performed in the division form shown in FIG. Therefore, there is no need to explicitly specify the coding order. When processing information, the division information is checked first, and then subblocks are created based on the selected division information. It is possible to generate information about the coding order of blocks.
[0315] Referring to (c) of Figure 8, a vertical scan in which 0 and 1 are applied to a and b is and inverse scans where 1 and 0 are applied can be supported as candidates. A one-bit flag can be generated to select one of these.
[0316] Or, referring to (b) of Figure 8, z-scan where 0 to 3 are applied to a to d, 1, 3, 0, and 2 are applied, and the z-scan is rotated 90 degrees to the left, 3 and 2, respectively. Inverse z-scans with , 1, and 0 applied, and 2, 0, 3, and 1 applied, respectively. It is possible to support z-scan rotated 90 degrees to the right, and you can select one of them. It is possible to generate one or more flags for
[0317] Next, a case where the coding order of sub-blocks is implicitly determined will be described. In the case of obtaining the division forms (c) {or (f)} and (d) {or (g)} in FIG. 8, (See FIG. 5 for prediction modes.)
[0318] For example, the intra-screen prediction mode is vertical mode, horizontal mode, diagonal down Right direction mode (modes 19 to 49), Diagoanal down l eft direction mode (number 51 and above), diagonal up right direction mode (17th or lower), vertical scan, horizontal scan an can be determined.
[0319] Or, if the intra-screen prediction mode is Diagonal down left mode ( 51 or higher), vertical scan, inverse horizon A ntall scan can be determined.
[0320] Or, the intra-screen prediction mode is Diagonal up right mode (1 7 or lower), inverse vertical scan, horizon A tal scan can be determined.
[0321] An example of this is the encoding order according to a predetermined scan order. The scan order is z-scan, vertical scan, horizontal scan. n. Alternatively, the position and distance of the pixel referenced during intra-frame prediction. For this purpose, the scan order can be determined by the inverse s can be additionally considered.
[0322] FIG. 9 shows a reference pixel area used based on an intra-frame prediction mode according to an embodiment of the present invention. Referring to FIG. 9, the area referenced according to the direction of the prediction mode is a shading area. You can check that it has been processed.
[0323] In Figure 9(a), the areas adjacent to the parent block are the left, top, top left, top right, and bottom left areas. Figure 9(b) shows the diagonal up right direction mode. The left and bottom left regions are referred to in the horizontal mode, and the left region is referred to in the horizontal mode. (d) in Figure 9 is referred to in the diagonal down right direction mode. The left, top, and top-left regions are referred to in vertical mode, and (e) in Figure 9 shows the top region referred to in vertical mode. (f) in Figure 9 is referred to as the diagonal down left mode. The upper and upper right regions are shown.
[0324] When prediction is performed using neighboring reference pixels (or reconstructed pixels of a sub-block), The coding order of the blocks can be predefined without signaling any additional related information. There may be an advantage that the division may have various forms, which may be referred to as Based on the region (or prediction mode), the following examples can be given:
[0325] FIG. 10 shows a prediction mode in the diagonal up right direction according to an embodiment of the present invention. 10 shows an example of the coding order that can be used in a block. Examples of how priorities are assigned to checks can be seen in Figure 10 (a) to (g). Cut.
[0326] FIG. 11 illustrates a coding order that can be had in horizontal mode according to one embodiment of the present invention. An example is shown in FIG. 11, where a sub-block adjacent to the left is assigned a precedence order. This can be confirmed in (a) to (g).
[0327] FIG. 12 shows a prediction of the diagonal down right direction according to an embodiment of the present invention. An example of the coding order that can be used in the mode is shown below. Examples of how priorities are assigned to blocks can be seen in Figure 12 (a) to (g). Cut.
[0328] FIG. 13 illustrates a coding order that can be had in vertical mode according to one embodiment of the present invention. An example is shown in FIG. 13, in which a sub-block adjacent to the upper side is assigned a precedence order. This can be confirmed in (a) to (g).
[0329] FIG. 14 shows a diagonal down left direction mode according to one embodiment of the present invention. 10 shows an example of a coding order that can be used in the above example. Examples of how priorities are assigned to blocks can be seen in (a) to (g) of FIG. 14.
[0330] The above example is an example of defining the coding order from adjacent regions where coding / decoding has been completed. Other variations are possible. Also, other encoding / decoding elements may define the encoding order. A wide variety of configurations are possible.
[0331] FIG. 15 shows a coding order taking into account an intra-frame prediction mode and a division type according to an embodiment of the present invention. In detail, the intra prediction mode is implicitly set for each division type. The coding order of the sub-blocks can be determined. In this case, an example of candidate group reconstruction, which is replaced by another division form, is explained. For this purpose, we assume that the parent block is 4M x 4N.
[0332] Referring to FIG. 15(a), a 4M×N format is used for sub-block-based intra prediction. In this example, the image can be divided into two parts in the inverse vertical scan order. If a 4MxN division is not possible, the 2 The division into M×2N division forms can be performed. In this case, the coding order is as shown in FIG. Since it is shown on the front, detailed explanation will be omitted. If 2Mx2N form cannot be obtained, , and then the division into 4M×2N forms of the next priority can be performed. It is possible to support division by priority, and based on this, division by sub-block unit If all predefined division patterns cannot be obtained, The parent block cannot be divided into sub-blocks, so coding is performed on the parent block. We can see that.
[0333] Referring to FIG. 15(b), the M×4N format is used for sub-block-based intra prediction. As shown in FIG. 15(a), the coding order is predicted based on each division type. In this example, it is assumed that the order is 2M×2N, 2M×4N. It is possible.
[0334] Referring to (c) of FIG. 15, a 2M×2N format is used for sub-block-based intra prediction. In this example, it can be understood that the order is 4M x 2N, 2M x 4N. It is possible.
[0335] Referring to (d) of FIG. 15, for sub-block-based intra prediction, the 4M×N format is used. In this example, it is understood that the order is 2M x 2N, 4M x 2N. It is possible.
[0336] Referring to (e) of FIG. 15, for sub-block-based intra prediction, the M×4N format is used. In this example, it is understood that the order is 2M x 2N, 2M x 4N. It is possible.
[0337] In the above example, if there is an unobtainable division form, division into other forms is performed in a predetermined order. This is just one example of support, and various modifications are possible.
[0338] For example, if you support the division forms {4M×4N, M×4N, 4M×N}, If Mx4N or 4MxN form is unavailable, it will be replaced with 2Mx4N or 4Mx2N form. It is possible that this is the case.
[0339] As in the previous example, the sub-block division setting is determined based on various encoding / decoding factors. The coding / decoding elements are already derived from the sub-block division explanation above. Since it can be derived, detailed description will be omitted.
[0340] Also, when the division of the sub-blocks is determined, prediction and conversion can be performed as is. As mentioned above, the intra-frame prediction mode is determined for each parent block. predictions can be carried out.
[0341] In addition, the transformation and inverse transformation determine the related settings based on the parent block, and are determined by the parent block. According to the settings, it is possible to perform sub-block unit transform and inverse transform. determines the relevant settings based on the sub-block, and then performs sub-block-level changes according to the settings. Transformation and inverse transformation can be performed based on one of the settings. It is possible.
[0342] The method of the present invention is in the form of program instructions that can be executed by various computer means. The present invention can be embodied in a computer-readable medium and recorded on the computer-readable medium. may include, alone or in combination, program instructions, data files, data structures, etc. The program instructions recorded on the computer readable medium may be specially adapted for the present invention. designed and constructed in accordance with the principles of the present invention or known to those skilled in the art of computer software. It can also be something that can be used.
[0343] Examples of computer-readable media include ROM (Read Only Memory), AM, flash memory, etc. It may include a hardware device specially configured to store and execute the program. Examples of program instructions include functions such as those produced by a compiler. Not only machine code but also interpreters are used to The hardware device described above may include high-level language code that can be executed by a computer. The device includes at least one software module for performing the operations of the present invention. can be configured to operate in conjunction with one another, and vice versa.
[0344] In addition, the above-described methods or devices may be realized by combining all or part of their configurations or functions. The components may be implemented separately or in a separate manner.
[0345] Although the present invention has been described above with reference to preferred embodiments, those skilled in the art will appreciate that The present invention is not limited to the above and is not intended to be limiting unless expressly stated otherwise. It will be understood that various modifications and variations can be made to the description. [Industrial Applicability]
[0346] The present invention can be used to encode / decode video. < / array> < / qt>
Claims
1. An image decoding method executed by an image decoding device, comprising: performing intra prediction to generate a predicted block for the coding block; generating a residual block of the coded block; reconstructing the coded block based on the predicted block and the residual block; Prepared for this, the coded block is reconstructed by adding the predicted block and the residual block; performing the intra prediction includes interpolating reference samples; Interpolating the reference samples further comprises: determining whether to perform fixed filtering or adaptive filtering based on an intra-frame prediction mode of the coding block, wherein the fixed filtering uses one interpolation filter predefined in the image decoding device, and the adaptive filtering selectively uses one of a plurality of interpolation filters predefined in the image decoding device; determining a filter from the plurality of interpolation filters based on the intra prediction mode of the coding block when the adaptive filtering is performed; Including, Image decoding method.
2. The plurality of interpolation filters comprises at least one of a 4-tap cubic filter or a 4-tap Gaussian filter. The image decoding method according to claim 1.
3. An image coding method executed by an image coding device, comprising: performing intra prediction to generate a predicted block for the coding block; generating a residual block of the coding block based on the predicted block; encoding the residual block to encode the encoded block; Prepared for this, the residual block is generated by subtracting the predicted block from the coded block; performing the intra prediction includes interpolating reference samples; Interpolating the reference samples further comprises: determining whether to perform fixed filtering or adaptive filtering based on an intra-frame prediction mode of the coding block, wherein the fixed filtering uses one interpolation filter predefined in the image coding device, and the adaptive filtering selectively uses one of a plurality of interpolation filters predefined in the image coding device; determining a filter from the plurality of interpolation filters based on the intra prediction mode of the coding block when the adaptive filtering is performed; Including, Image encoding method.
4. A method for transmitting a bitstream, comprising: performing intra prediction to generate a predicted block for the coding block; generating a residual block of the coding block based on the predicted block; encoding the bona fide residual block and encoding the encoded block into the bitstream; Send the bitstream, Prepared for this, the residual block is generated by subtracting the predicted block from the coded block; performing the intra prediction includes interpolating reference samples; Interpolating the reference samples further comprises: determining whether to perform fixed filtering or adaptive filtering based on an intra-frame prediction mode of the coding block, wherein the fixed filtering uses one interpolation filter predefined in the image coding device, and the adaptive filtering selectively uses one of a plurality of interpolation filters predefined in the image coding device; determining a filter from the plurality of interpolation filters based on the intra prediction mode of the coding block when the adaptive filtering is performed; Including, method.
Citation Information
Patent Citations
Image encoding method, image decoding method, image encoder, image decoder, and program thereof
JP2013098957A
Improved Interpolation Filters for Intra Prediction in Video Coding
JP2019530351A
Processing of reference samples used for intra prediction of picture blocks - Patents.com
JP2020509714A
Video coding method and apparatus utilizing adaptive interpolation filter
US20190253707A1
Intra prediction device, image encoding device, image decoding device, and program
WO2019189904A1