Abstract: A method for decoding an image according to the present invention may comprise: a step inducing spatial merge candidates of a current block; a step of creating a merge candidate list for the current block on the basis of the spatial merge candidates; a step of obtaining motion information of the current block on the basis of the merge candidate list; and a step of performing motion compensation on the current block by using the motion information. Here, if the current block is not in a predefined shape or is not equal to or greater than a predefined size, the spatial merge candidates of the current bock may be induced base on a block, including the current block, which is in the predefined shape or equal to or greater than the predefined size.
1. A method of decoding a video, the method comprising: 5 obtaining a prediction sample of a transform block by performing intra prediction; obtaining a residual coefficient of the transform block; inverse quantizing the residual coefficient; determining whether an inverse-transform is skipped for the transform block; obtaining a residual sample of the transform block by applying or skipping the inverse-transform for the transform block; and obtaining a reconstruction sample by summing the prediction sample and the residual sample, wherein when it is determined that the inversetransform is not skipped for the transform block, obtaining the residual sample comprises: 20 determining a transform type of the transform block based on a transform set; and performing the inverse-transform based on the determined transform type, and wherein a transform skip flag specifying whether the inverse-transform is skipped or not is not parsed from a bitstream when a coding block including the transform block is partitioned into vertically or horizontally, and wherein when the coding block is partitioned into vertically or horizontally, skipping the inversetransform for the transform block is not allowed.
2. The method of claim 1, wherein the transform set is selected among a plurality of transform set candidates, and wherein a type or a number of transform type candidates included in one of the transform set candidates is different from another of the transform set candidates. 10 3. The method of claim 1, wherein the inversetransform comprises a horizontal inverse-transform and a vertical inverse-transform.
4. The method of claim 1, wherein the transform type of the current block is adaptively determined based on at least one of a size, a shape or a number of samples of the transform block.
5. A method of encoding a video, the method comprising: obtaining a prediction sample of a transform block by performing intra prediction; obtaining a residual sample the transform block; determining whether a transform is skipped for the transform block; obtaining a residual coefficient of the transform block by applying or skipping the transform for the transform block; quantizing the residual coefficient of the transform block; and obtaining a reconstruction sample by summing the prediction sample and the residual sample, wherein when it is determined that the transform is not skipped for the transform block, obtaining the residual coefficient comprises: determining a transform type of the transform block based on a transform set; and performing the transform based on the determined transform type, and wherein a transform skip flag specifying whether the transform is skipped or not is not encoded into a bitstream when a coding block including the transform block is partitioned into vertically or horizontally, and wherein when the coding block including the transform block is partitioned into vertically or horizontally, skipping the transform for the transform block is not allowed.
6. The method of claim 5, wherein the transform set is selected among a plurality of transform set candidates, and wherein a type or a number of transform type candidates included in one of the transform set candidates is different from another of the transform set candidate.
7. The method of claim 5, wherein the transform comprises a horizontal transform and a vertical 30 transform. 8. The method of claim 5, wherein the transform type of the current block is adaptively determined based on at least one of a size, a shape or a number of samples of the transform block.
Title of Invention: Video signal processing method and apparatus
technical field
[One]
The present invention relates to a video signal processing method and apparatus.
background
[2]
Recently, the demand for high-resolution and high-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images is increasing in various application fields. As the image data becomes higher resolution and higher quality, the amount of data relatively increases compared to the existing image data. The storage cost will increase. High-efficiency image compression techniques can be used to solve these problems that occur as image data becomes high-resolution and high-quality.
[3]
Inter-screen prediction technology that predicts pixel values included in the current picture from pictures before or after the current picture with image compression technology, intra-picture prediction technology that predicts pixel values included in the current picture using pixel information in the current picture, Various techniques exist, such as entropy encoding technology in which a short code is assigned to a value with a high frequency of occurrence and a long code is assigned to a value with a low frequency of occurrence.
[4]
Meanwhile, as the demand for high-resolution images increases, the demand for stereoscopic image content as a new image service is also increasing. A video compression technique for effectively providing high-resolution and ultra-high-resolution stereoscopic image content is being discussed.
DETAILED DESCRIPTION OF THE INVENTION
technical challenge
[5]
An object of the present invention is to provide a method and apparatus capable of effectively performing transform/inverse transform in encoding/decoding a video signal.
[6]
An object of the present invention is to provide a method and apparatus capable of adaptively determining a transform type of a current block from among a plurality of transform type candidates when encoding/decoding a video signal.
[7]
An object of the present invention is to provide a method and apparatus capable of individually determining transform types of vertical and horizontal transforms in encoding/decoding a video signal.
[8]
The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. will be able
means of solving the problem
[9]
A video signal decoding method and apparatus according to the present invention obtains a transform coefficient of a current block, inverse quantizes the transform coefficient, determines a transform set for the current block, and selects any one of a plurality of transform type candidates. It may be determined as the transform type of the current block, and the inverse-quantized transform coefficient may be inversely transformed based on the determined transform type.
[10]
A video signal encoding method and apparatus according to the present invention obtains a transform coefficient of a current block, inverse quantizes the transform coefficient, determines a transform set for the current block, and selects any one of a plurality of transform type candidates. It may be determined as the transform type of the current block, and the inverse-quantized transform coefficient may be inversely transformed based on the determined transform type.
[11]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the transform set of the current block may be determined by index information indicating at least one of a plurality of transform sets.
[12]
In the method and apparatus for encoding/decoding a video signal according to the present invention, at least one of the types or the number of transform type candidates of each of the plurality of transform sets may be different.
[13]
In the method and apparatus for encoding/decoding a video signal according to the present invention, at least one of the type or number of transform type candidates included in the transform set may be determined differently depending on whether transform skip is allowed.
[14]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the inverse transform includes a horizontal transform and a vertical transform, and a transform set for the horizontal transform and a transform set for the vertical transform may be independently determined.
[15]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the transform set for the horizontal transform and the transform set for the vertical transform may be determined according to an intra prediction mode of the current block.
[16]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the transform type of the current block may be adaptively determined based on at least one of a size, a shape, and a number of samples of the current block.
[17]
The features briefly summarized above with respect to the invention are merely exemplary aspects of the detailed description of the invention that follows, and do not limit the scope of the invention.
Effects of the Invention
[18]
According to the present invention, it is possible to effectively perform transform/inverse transform on an encoding/decoding target block.
[19]
According to the present invention, the transform type of the current block may be adaptively determined from among a plurality of transform type candidates.
[20]
According to the present invention, it is possible to individually determine the transformation types of vertical and horizontal transformations.
[21]
The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. will be.
Brief description of the drawing
[22]
1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
[23]
2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
[24]
3 illustrates an example of hierarchically dividing a coding block based on a tree structure as an embodiment to which the present invention is applied.
[25]
4 is a diagram illustrating a partition type in which binary tree-based partitioning is allowed as an embodiment to which the present invention is applied.
[26]
5 is a diagram illustrating an example in which only a specific type of binary tree-based partitioning is allowed as an embodiment to which the present invention is applied.
[27]
6 is a diagram for explaining an example in which information related to the allowed number of binary tree divisions is encoded/decoded as an embodiment to which the present invention is applied.
[28]
7 is a diagram illustrating a partition mode applicable to a coding block as an embodiment to which the present invention is applied.
[29]
8 is a flowchart illustrating a process of acquiring a residual sample according to an embodiment to which the present invention is applied.
[30]
9 is a diagram illustrating whether vertical and horizontal transforms use the same transform set for 33 intra prediction modes.
[31]
Modes for carrying out the invention
[32]
Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numerals have been used for like elements.
[33]
Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
[34]
When a component is referred to as being “connected” or “connected to” another component, it is understood that the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present in the middle.
[35]
The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It is to be understood that this does not preclude the possibility of addition or existence of numbers, steps, operations, components, parts, or combinations thereof.
[36]
Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals are used for the same components in the drawings, and repeated descriptions of the same components are omitted.
[37]
[38]
1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
[39]
Referring to FIG. 1 , the image encoding apparatus 100 includes a picture division unit 110 , prediction units 120 and 125 , a transform unit 130 , a quantization unit 135 , a rearrangement unit 160 , and an entropy encoding unit ( 165 ), an inverse quantization unit 140 , an inverse transform unit 145 , a filter unit 150 , and a memory 155 .
[40]
Each of the constituent units shown in FIG. 1 is independently illustrated to represent different characteristic functions in the image encoding apparatus, and does not mean that each constituent unit is composed of separate hardware or one software constituent unit. That is, each component is listed as each component for convenience of description, and at least two components of each component are combined to form one component, or one component can be divided into a plurality of components to perform a function, and each of these components Integrated embodiments and separate embodiments of components are also included in the scope of the present invention without departing from the essence of the present invention.
[41]
In addition, some of the components are not essential components for performing essential functions in the present invention, but may be optional components for merely improving performance. The present invention can be implemented by including only essential components to implement the essence of the present invention, except for components used for performance improvement, and a structure including only essential components excluding optional components used for performance improvement Also included in the scope of the present invention.
[42]
The picture divider 110 may divide the input picture into at least one processing unit. In this case, the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). The picture splitter 110 divides one picture into a combination of a plurality of coding units, prediction units, and transformation units, and combines one coding unit, prediction unit, and transformation unit based on a predetermined criterion (eg, a cost function). can be selected to encode the picture.
[43]
For example, one picture may be divided into a plurality of coding units. In order to split a coding unit in a picture, a recursive tree structure such as a quad tree structure may be used. A coding in which one image or a largest coding unit is used as a root and is divided into other coding units. A unit may be divided having as many child nodes as the number of divided coding units. A coding unit that is no longer split according to certain restrictions becomes a leaf node. That is, if it is assumed that only square splitting is possible for one coding unit, one coding unit may be split into up to four different coding units.
[44]
Hereinafter, in an embodiment of the present invention, a coding unit may be used as a unit for performing encoding or may be used as a meaning for a unit for performing decoding.
[45]
A prediction unit may be split in the form of at least one square or rectangle of the same size within one coding unit, and one prediction unit among the split prediction units within one coding unit is a prediction of another. It may be divided to have a shape and/or size different from that of the unit.
[46]
When a prediction unit for performing intra prediction based on a coding unit is generated, if it is not the minimum coding unit, intra prediction may be performed without dividing the prediction unit into a plurality of prediction units NxN.
[47]
The prediction units 120 and 125 may include an inter prediction unit 120 performing inter prediction and an intra prediction unit 125 performing intra prediction. Whether to use inter prediction or to perform intra prediction for a prediction unit may be determined, and specific information (eg, intra prediction mode, motion vector, reference picture, etc.) according to each prediction method may be determined. In this case, a processing unit in which prediction is performed and a processing unit in which a prediction method and specific content are determined may be different. For example, a prediction method and a prediction mode may be determined in a prediction unit, and prediction may be performed in a transformation unit. A residual value (residual block) between the generated prediction block and the original block may be input to the transform unit 130 . Also, prediction mode information, motion vector information, etc. used for prediction may be encoded by the entropy encoder 165 together with a residual value and transmitted to a decoder. When a specific encoding mode is used, it is also possible to encode the original block as it is without generating a prediction block through the predictors 120 and 125 and transmit it to the decoder.
[48]
The inter prediction unit 120 may predict a prediction unit based on information on at least one of a picture before or after a picture of the current picture, and in some cases, prediction based on information of a partial region in the current picture for which encoding has been completed Units can also be predicted. The inter prediction unit 120 may include a reference picture interpolator, a motion prediction unit, and a motion compensator.
[49]
The reference picture interpolator may receive reference picture information from the memory 155 and generate pixel information of integer pixels or less in the reference picture. In the case of luminance pixels, a DCT-based 8-tap interpolation filter in which filter coefficients are different to generate pixel information of integer pixels or less in units of 1/4 pixels may be used. In the case of a color difference signal, a DCT-based 4-tap interpolation filter in which filter coefficients are different to generate pixel information of integer pixels or less in units of 1/8 pixels may be used.
[50]
The motion prediction unit may perform motion prediction based on the reference picture interpolated by the reference picture interpolator. As a method for calculating the motion vector, various methods such as Full search-based Block Matching Algorithm (FBMA), Three Step Search (TSS), and New Three-Step Search Algorithm (NTS) may be used. The motion vector may have a motion vector value of 1/2 or 1/4 pixel unit based on the interpolated pixel. The motion prediction unit may predict the current prediction unit by using a different motion prediction method. Various methods, such as a skip method, a merge method, an AMVP (Advanced Motion Vector Prediction) method, an intra block copy method, etc., may be used as the motion prediction method.
[51]
The intra prediction unit 125 may generate a prediction unit based on reference pixel information around the current block, which is pixel information in the current picture. When a neighboring block of the current prediction unit is a block on which inter prediction is performed, and thus a reference pixel is a pixel on which inter prediction is performed, a reference pixel included in the block on which inter prediction is performed is a reference pixel of the block on which intra prediction is performed. information can be used instead. That is, when the reference pixel is not available, the unavailable reference pixel information may be replaced with at least one reference pixel among the available reference pixels.
[52]
In intra prediction, the prediction mode may have a directional prediction mode in which reference pixel information is used according to a prediction direction and a non-directional mode in which directional information is not used when prediction is performed. A mode for predicting luminance information and a mode for predicting chrominance information may be different, and intra prediction mode information used for predicting luminance information or predicted luminance signal information may be utilized to predict chrominance information.
[53]
When intra prediction is performed, if the size of the prediction unit and the size of the transformation unit are the same, intra prediction for the prediction unit based on the pixel present at the left side, the pixel present at the upper left corner, and the pixel present at the upper side of the prediction unit can be performed. However, when the size of the prediction unit is different from the size of the transformation unit when intra prediction is performed, intra prediction may be performed using a reference pixel based on the transformation unit. In addition, intra prediction using NxN splitting may be used only for the smallest coding unit.
[54]
The intra prediction method may generate a prediction block after applying an adaptive intra smoothing (AIS) filter to a reference pixel according to a prediction mode. The type of AIS filter applied to the reference pixel may be different. In order to perform the intra prediction method, the intra prediction mode of the current prediction unit may be predicted from the intra prediction mode of the prediction unit existing around the current prediction unit. When the prediction mode of the current prediction unit is predicted using mode information predicted from the neighboring prediction unit, if the intra prediction mode of the current prediction unit and the neighboring prediction unit are the same, the current prediction unit and the neighboring prediction unit are used using predetermined flag information It is possible to transmit information indicating that the prediction modes of , and if the prediction modes of the current prediction unit and the neighboring prediction units are different from each other, entropy encoding may be performed to encode prediction mode information of the current block.
[55]
In addition, a residual block including residual information that is a difference value from the original block of the prediction unit that is predicted based on the prediction unit generated by the prediction units 120 and 125 may be generated. The generated residual block may be input to the transform unit 130 .
[56]
The transform unit 130 converts the original block and the residual block including residual information of the prediction units generated by the prediction units 120 and 125 to DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT and It can be converted using the same conversion method. Whether to apply DCT, DST, or KLT to transform the residual block may be determined based on intra prediction mode information of a prediction unit used to generate the residual block.
[57]
The quantization unit 135 may quantize values transformed in the frequency domain by the transform unit 130 . The quantization coefficient may change according to blocks or the importance of an image. The value calculated by the quantization unit 135 may be provided to the inverse quantization unit 140 and the rearrangement unit 160 .
[58]
The reordering unit 160 may rearrange the coefficient values on the quantized residual values.
[59]
The rearranging unit 160 may change the two-dimensional block form coefficient into a one-dimensional vector form through a coefficient scanning method. For example, the rearranging unit 160 may scan from DC coefficients to coefficients in a high frequency region using a zig-zag scan method and may change it into a one-dimensional vector form. A vertical scan for scanning a two-dimensional block shape coefficient in a column direction and a horizontal scan for scanning a two-dimensional block shape coefficient in a row direction may be used instead of the zig-zag scan according to the size of the transform unit and the intra prediction mode. That is, it may be determined whether any of the zig-zag scan, the vertical scan, and the horizontal scan is used according to the size of the transform unit and the intra prediction mode.
[60]
The entropy encoding unit 165 may perform entropy encoding based on the values calculated by the reordering unit 160 . For entropy encoding, various encoding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be used.
[61]
The entropy encoder 165 receives the residual value coefficient information, block type information, prediction mode information, division unit information, prediction unit information and transmission unit information, motion of the coding unit from the reordering unit 160 and the prediction units 120 and 125 . Various information such as vector information, reference frame information, interpolation information of a block, and filtering information may be encoded.
[62]
The entropy encoder 165 may entropy-encode the coefficient values of the coding units input from the reordering unit 160 .
[63]
The inverse quantizer 140 and the inverse transform unit 145 inversely quantize the values quantized by the quantizer 135 and inversely transform the values transformed by the transform unit 130 . The residual values generated by the inverse quantizer 140 and the inverse transform unit 145 are combined with the prediction units predicted through the motion estimation unit, the motion compensator, and the intra prediction unit included in the prediction units 120 and 125 and restored. You can create a Reconstructed Block.
[64]
The filter unit 150 may include at least one of a deblocking filter, an offset correcting unit, and an adaptive loop filter (ALF).
[65]
The deblocking filter may remove block distortion caused by the boundary between blocks in the reconstructed picture. In order to determine whether to perform deblocking, it may be determined whether to apply the deblocking filter to the current block based on pixels included in several columns or rows included in the block. When a deblocking filter is applied to a block, a strong filter or a weak filter can be applied according to the required deblocking filtering strength. In addition, in applying the deblocking filter, horizontal filtering and vertical filtering may be concurrently processed when performing vertical filtering and horizontal filtering.
[66]
The offset correcting unit may correct an offset from the original image in units of pixels with respect to the image on which the deblocking has been performed. In order to perform offset correction on a specific picture, a method of dividing pixels included in an image into a certain number of regions, determining the region to be offset and applying the offset to the region, or taking edge information of each pixel into account can be used to apply
[67]
Adaptive loop filtering (ALF) may be performed based on a value obtained by comparing the filtered reconstructed image and the original image. After dividing pixels included in an image into a predetermined group, one filter to be applied to the corresponding group is determined, and filtering can be performed differentially for each group. As for information on whether to apply ALF, the luminance signal may be transmitted for each coding unit (CU), and the shape and filter coefficients of the ALF filter to be applied may vary according to each block. Also, the ALF filter of the same type (fixed type) may be applied regardless of the characteristics of the block to be applied.
[68]
The memory 155 may store the reconstructed block or picture calculated through the filter unit 150 , and the stored reconstructed block or picture may be provided to the predictors 120 and 125 when inter prediction is performed.
[69]
[70]
2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
[71]
Referring to FIG. 2 , the image decoder 200 includes an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inverse transform unit 225, prediction units 230 and 235, and a filter unit ( 240) and a memory 245 may be included.
[72]
When an image bitstream is input from an image encoder, the input bitstream may be decoded by a procedure opposite to that of the image encoder.
[73]
The entropy decoding unit 210 may perform entropy decoding in a procedure opposite to that performed by the entropy encoding unit of the image encoder. For example, various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied to the method performed by the image encoder.
[74]
The entropy decoder 210 may decode information related to intra prediction and inter prediction performed by the encoder.
[75]
The reordering unit 215 may perform rearrangement based on a method of rearranging the entropy-decoded bitstream by the entropy decoding unit 210 by the encoder. Coefficients expressed in a one-dimensional vector form may be restored and rearranged in a two-dimensional block form. The reordering unit 215 may receive information related to coefficient scanning performed by the encoder and perform the reordering by performing a reverse scanning method based on the scanning order performed by the corresponding encoder.
[76]
The inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the reordered coefficient values of the blocks.
[77]
The inverse transform unit 225 may perform inverse transforms, ie, inverse DCT, inverse DST, and inverse KLT, on the transforms performed by the transform unit, ie, DCT, DST, and KLT, on the quantization result performed by the image encoder. Inverse transform may be performed based on a transmission unit determined by the image encoder. The inverse transform unit 225 of the image decoder may selectively perform a transformation technique (eg, DCT, DST, KLT) according to a plurality of pieces of information such as a prediction method, a size of a current block, and a prediction direction.
[78]
The prediction units 230 and 235 may generate a prediction block based on the prediction block generation related information provided from the entropy decoding unit 210 and previously decoded block or picture information provided from the memory 245 .
[79]
As described above, when intra prediction is performed in the same manner as in the operation of the image encoder, when the size of the prediction unit and the size of the transformation unit are the same, the pixel present at the left side of the prediction unit, the pixel present at the upper left corner, and the upper side exist Intra prediction is performed on the prediction unit based on the pixel can In addition, intra prediction using NxN splitting may be used only for the smallest coding unit.
[80]
The prediction units 230 and 235 may include a prediction unit determiner, an inter prediction unit, and an intra prediction unit. The prediction unit determiner receives various information such as prediction unit information input from the entropy decoder 210, prediction mode information of the intra prediction method, and motion prediction related information of the inter prediction method, and divides the prediction unit from the current coding unit, and predicts It may be determined whether the unit performs inter prediction or intra prediction. The inter prediction unit 230 uses information required for inter prediction of the current prediction unit provided from the image encoder, and predicts the current based on information included in at least one picture before or after the current picture including the current prediction unit. Inter prediction may be performed on a unit. Alternatively, inter prediction may be performed based on information of a pre-restored partial region in the current picture including the current prediction unit.
[81]
In order to perform inter prediction, a motion prediction method of a prediction unit included in a corresponding coding unit based on a coding unit is selected from among skip mode, merge mode, AMVP mode, and intra block copy mode. You can decide which way to go.
[82]
The intra prediction unit 235 may generate a prediction block based on pixel information in the current picture. When the prediction unit is a prediction unit on which intra prediction is performed, intra prediction may be performed based on intra prediction mode information of the prediction unit provided by the image encoder. The intra prediction unit 235 may include an adaptive intra smoothing (AIS) filter, a reference pixel interpolator, and a DC filter. The AIS filter is a part that performs filtering on the reference pixel of the current block, and may be applied by determining whether to apply the filter according to the prediction mode of the current prediction unit. AIS filtering may be performed on the reference pixel of the current block by using the prediction mode and AIS filter information of the prediction unit provided by the image encoder. When the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter may not be applied.
[83]
When the prediction mode of the prediction unit is a prediction unit that performs intra prediction based on a pixel value obtained by interpolating the reference pixel, the reference pixel interpolator may interpolate the reference pixel to generate a reference pixel of a pixel unit having an integer value or less. When the prediction mode of the current prediction unit is a prediction mode that generates a prediction block without interpolating the reference pixel, the reference pixel may not be interpolated. The DC filter may generate the prediction block through filtering when the prediction mode of the current block is the DC mode.
[84]
The reconstructed block or picture may be provided to the filter unit 240 . The filter unit 240 may include a deblocking filter, an offset correcting unit, and an ALF.
[85]
Information on whether a deblocking filter is applied to a corresponding block or picture and information on whether a strong filter or a weak filter is applied when the deblocking filter is applied may be provided from the video encoder. The deblocking filter of the image decoder may receive deblocking filter-related information provided from the image encoder, and the image decoder may perform deblocking filtering on the corresponding block.
[86]
The offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction applied to the image during encoding and information on the offset value.
[87]
ALF may be applied to a coding unit based on information on whether ALF is applied, ALF coefficient information, etc. provided from the encoder. Such ALF information may be provided by being included in a specific parameter set.
[88]
The memory 245 may store the reconstructed picture or block to be used as a reference picture or reference block, and may also provide the reconstructed picture to an output unit.
[89]
As described above, hereinafter, in the embodiment of the present invention, a coding unit is used as a term for a coding unit for convenience of description, but it may also be a unit for performing decoding as well as coding.
[90]
In addition, the current block denotes an encoding/decoding target block, and depending on the encoding/decoding step, a coding tree block (or coding tree unit), a coding block (or a coding unit), a transform block (or a transform unit), or a prediction block (or prediction unit) and the like.
[91]
[92]
One picture may be divided into square or non-square basic blocks and encoded/decoded. In this case, the basic block may be referred to as a coding tree unit. A coding tree unit may be defined as a coding unit having the largest size allowed in a sequence or a slice. Whether the coding tree unit is square or non-square, or information related to the size of the coding tree unit may be signaled through a sequence parameter set, a picture parameter set, a slice header, or the like. A coding tree unit may be divided into smaller-sized partitions. In this case, when a partition generated by dividing a coding tree unit is referred to as a depth 1, a partition generated by dividing a partition having a depth 1 may be defined as a depth 2 . That is, a partition generated by dividing a partition having a depth k in a coding tree unit may be defined as having a depth k+1.
[93]
A partition of an arbitrary size generated as the coding tree unit is divided may be defined as a coding unit. The coding unit may be divided recursively or divided into basic units for performing prediction, quantization, transform, in-loop filtering, or the like. For example, a partition of an arbitrary size generated as a coding unit is divided may be defined as a coding unit or a transform unit or a prediction unit that is a basic unit for performing prediction, quantization, transform, or in-loop filtering.
[94]
Partitioning of the coding tree unit or the coding unit may be performed based on at least one of a vertical line and a horizontal line. In addition, the number of vertical or horizontal lines partitioning the coding tree unit or coding unit may be at least one. For example, by using one vertical line or one horizontal line, the coding tree unit or coding unit is divided into two partitions, or by using two vertical lines or two horizontal lines, the coding tree unit or the coding unit is divided into three partitions. can be divided Alternatively, by using one vertical line and one horizontal line, the coding tree unit or coding unit may be divided into four partitions having a length and a width of 1/2.
[95]
When a coding tree unit or a coding unit is divided into a plurality of partitions using at least one vertical line or at least one horizontal line, the partitions may have a uniform size or different sizes. Alternatively, one partition may have a size different from that of the other partitions.
[96]
In the embodiments described below, it is assumed that a coding tree unit or a coding unit is divided into a quad tree or binary tree structure. However, it is also possible to divide the coding tree unit or coding unit using a larger number of vertical lines or a larger number of horizontal lines.
[97]
3 illustrates an example of hierarchically dividing a coding block based on a tree structure as an embodiment to which the present invention is applied.
[98]
The input image signal is decoded in units of a predetermined block, and a basic unit for decoding the input image signal as described above is called a coding block. A coding block may be a unit for performing intra/inter prediction, transformation, and quantization. Also, a prediction mode (eg, an intra prediction mode or an inter prediction mode) may be determined for each coding block, and prediction blocks included in the coding block may share the determined prediction mode. The coding block may be a square or non-square block having any size in the range of 8x8 to 64x64, and may be a square or non-square block having a size of 128x128, 256x256 or more.
[99]
Specifically, the coding block may be hierarchically divided based on at least one of a quad tree and a binary tree. Here, the quad-tree-based splitting may refer to a method in which a 2Nx2N coding block is split into four NxN coding blocks, and the binary tree-based splitting may refer to a method in which one coding block is split into two coding blocks. Even if binary tree-based division is performed, a square coding block may exist at a lower depth.
[100]
Binary tree-based partitioning may be performed symmetrically or asymmetrically. The coding block divided based on the binary tree may be a square block or a non-square block such as a rectangle. As an example, the partition type in which binary tree-based partitioning is allowed is 2NxN (horizontal non-square coding unit) or Nx2N (vertical non-square coding unit), which is symmetric, as in the example shown in FIG. 4 , asymmetric It may include at least one of asymmetric nLx2N, nRx2N, 2NxnU, or 2NxnD.
[101]
In binary tree-based partitioning, either one of a symmetrical or an asymmetrical partition may be allowed limitedly. In this case, configuring the coding tree unit as a square block may correspond to quad tree CU partitioning, and configuring the coding tree unit as a symmetric non-square block may correspond to binary tree partitioning. Configuring the coding tree unit into a square block and a symmetric non-square block may correspond to quad and binary tree CU partitioning.
[102]
Binary tree-based partitioning may be performed on a coding block for which quad-tree-based partitioning is no longer performed. The quad-tree-based partitioning may not be performed any more for the coding block partitioned on the binary tree-based basis.
[103]
In addition, the division of the lower depth may be determined depending on the division type of the upper depth. For example, when binary tree-based splitting is permitted in two or more depths, only binary tree-based splitting in the same form as that of binary tree splitting of an upper depth may be allowed in a lower depth. For example, when binary tree-based division in the form of 2NxN is performed at the upper depth, the division based on the binary tree of the form of 2NxN may be performed also at the lower depth. Alternatively, when the binary tree-based division in the Nx2N form is performed at the upper depth, the Nx2N binary tree-based segmentation may be allowed at the lower depth as well.
[104]
Conversely, in the lower depth, it is also possible to allow only the binary tree-based split of a different form than that of the upper depth binary tree.
[105]
For a sequence, slice, coding tree unit or coding unit, it may be limited to use only a specific type of binary tree-based partitioning. As an example, it may be limited to allow only binary tree-based splitting in the form of 2NxN or Nx2N for the coding tree unit. The allowed partition type may be predefined in the encoder or decoder, or information about the allowed or disallowed partition type may be encoded and signaled through a bitstream.
[106]
5 is a diagram illustrating an example in which only a specific type of binary tree-based partitioning is allowed. Fig. 5(a) shows an example in which only Nx2N binary tree-based partitioning is allowed, and Fig. 5(b) shows a limited example in which only 2NxN binary tree-based partitioning is allowed. Information indicating quad-tree-based partitioning to implement the quad-tree or binary tree-based adaptive partitioning, information about the size/depth of a coding block allowing quad-tree-based partitioning, and binary tree-based partitioning information, information on the size/depth of the coding block in which binary tree-based division is allowed, information on the size/depth of the coding block in which binary tree-based division is not allowed, or whether the binary tree-based division is in the vertical direction; Information on whether it is in a horizontal direction and the like may be used.
[107]
In addition, for a coding tree unit or a predetermined coding unit, the number of times binary tree division is allowed, the depth at which binary tree division is allowed, or the number of depths at which binary tree division is allowed, etc. may be obtained. The information may be encoded in a coding tree unit or a coding unit unit and transmitted to a decoder through a bitstream.
[108]
For example, through the bitstream, a syntax 'max_binary_depth_idx_minus1' indicating the maximum depth at which binary tree splitting is allowed may be encoded/decoded through the bitstream. In this case, max_binary_depth_idx_minus1+1 may indicate the maximum depth allowed for binary tree splitting.
[109]
Referring to the example illustrated in FIG. 6 , in FIG. 6 , it is illustrated that binary tree splitting is performed on a coding unit having a depth of 2 and a coding unit having a depth of 3 . Accordingly, information indicating the number of times (twice) the binary tree division within the coding tree unit is performed, information indicating the maximum depth (depth 3) allowed for binary tree division within the coding tree unit, or binary tree division within the coding tree unit At least one piece of information indicating the allowed number of depths (two, depth 2, and depth 3) may be encoded/decoded through a bitstream.
[110]
As another example, at least one of the number of times binary tree division is allowed, the depth at which binary tree division is allowed, or the number of depths where binary tree division is allowed may be obtained for each sequence and slice. For example, the information may be encoded in units of sequences, pictures, or slices and transmitted through a bitstream. Accordingly, at least one of the number of binary tree splitting times, the maximum depth allowed for binary tree splitting, or the number of depths allowed for binary tree splitting of the first slice and the second slice may be different. For example, in the first slice, binary tree splitting may be allowed at only one depth, whereas in the second slice, binary tree splitting may be allowed at two depths.
[111]
As another example, according to the temporal level identifier (TemporalID) of a slice or picture, at least one of the number of times binary tree division is allowed, the depth at which binary tree division is allowed, or the number of depths at which binary tree division is allowed may be set differently. have. Here, the temporal level identifier TemporalID is for identifying each of a plurality of layers of an image having scalability of at least one of a view, a spatial, a temporal, and a quality. will be.
[112]
3 , a first coding block 300 having a split depth of k may be divided into a plurality of second coding blocks based on a quad tree. For example, the second coding blocks 310 to 340 are square blocks having half the width and height of the first coding block, and the division depth of the second coding block may be increased to k+1.
[113]
The second coding block 310 having a division depth of k+1 may be divided into a plurality of third coding blocks having a division depth of k+2. The division of the second coding block 310 may be performed by selectively using either a quote tree or a binary tree according to a division method. Here, the division method may be determined based on at least one of information indicating division based on a quad tree or information indicating division based on a binary tree.
[114]
When the second coding block 310 is divided based on a quote tree, the second coding block 310 is divided into four third coding blocks 310a having half the width and height of the second coding block, and the third coding block 310a The division depth may be increased to k+2. On the other hand, when the second coding block 310 is divided based on a binary tree, the second coding block 310 may be divided into two third coding blocks. In this case, each of the two third coding blocks is a non-square block in which any one of a width and a height of the second coding block is half the size, and the division depth may be increased to k+2. The second coding block may be determined as a horizontal or vertical non-square block according to a division direction, and the division direction may be determined based on information regarding whether binary tree-based division is a vertical direction or a horizontal direction.
[115]
Meanwhile, the second coding block 310 may be determined as an end coding block that is not further divided based on a quad tree or a binary tree, and in this case, the corresponding coding block may be used as a prediction block or a transform block.
[116]
The third coding block 310a may be determined as an end coding block similarly to the division of the second coding block 310, or may be additionally divided based on a quad tree or a binary tree.
[117]
On the other hand, the third coding block 310b divided based on the binary tree may be further divided into the coding block 310b-2 in the vertical direction or the coding block 310b-3 in the horizontal direction based on the binary tree. The division depth of a block may be increased to k+3. Alternatively, the third coding block 310b may be determined as the end coding block 310b-1 that is not further divided based on the binary tree, and in this case, the corresponding coding block 310b-1 is to be used as a prediction block or a transform block. can However, in the above-described partitioning process, information on the size/depth of a coding block in which quad-tree-based partitioning is allowed, information on the size/depth of a coding block in which binary tree-based partitioning is allowed, or binary tree-based partitioning is allowed It may be limitedly performed based on at least one of information on the size/depth of the coding block that is not.
[118]
The size of the coding block may be limited to a predetermined number, or the size of the coding block within a predetermined unit may have a fixed value. As an example, the size of a coding block in a sequence or a size of a coding block in a picture may be limited to 256x256, 128x128, or 32x32. Information indicating the size of a coding block in a sequence or picture may be signaled through a sequence header or a picture header.
[119]
As a result of the division based on the quad tree and the binary tree, the coding unit may have a square shape or a rectangle of any size.
[120]
[121]
The coding block is coded using at least one of a skip mode, an intra prediction, an inter prediction, or a skip method. When the coding block is determined, a prediction block may be determined through prediction division of the coding block. Predictive division of a coding block may be performed by a partition mode (Part_mode) indicating a division form of the coding block. The size or shape of the prediction block may be determined according to the partition mode of the coding block. As an example, the size of the prediction block determined according to the partition mode may have a value equal to or smaller than the size of the coding block.
[122]
7 is a diagram illustrating a partition mode that can be applied to a coding block when the coding block is encoded by inter prediction.
[123]
When the coding block is encoded by inter prediction, as in the example shown in FIG. 7 , any one of eight partition modes may be applied to the coding block.
[124]
When the coding block is encoded by intra prediction, a partition mode PART_2Nx2N or PART_NxN may be applied to the coding block.
[125]
PART_NxN may be applied when the coding block has a minimum size. Here, the minimum size of the coding block may be predefined in the encoder and the decoder. Alternatively, information about the minimum size of a coding block may be signaled through a bitstream. As an example, the minimum size of the coding block is signaled through a slice header, and accordingly, the minimum size of the coding block may be defined for each slice.
[126]
In general, the size of the prediction block may range from 64x64 to 4x4. However, when the coding block is encoded by inter prediction, the prediction block may not have a size of 4x4 in order to reduce memory bandwidth when motion compensation is performed.
[127]
[128]
8 is a flowchart illustrating a process of acquiring a residual sample according to an embodiment to which the present invention is applied.
[129]
First, a residual coefficient of the current block may be obtained (S810). The decoder may obtain residual coefficients through a coefficient scanning method. For example, the decoder may perform coefficient scanning using a diagonal scan, a zigzag scan, an up-right scan, a vertical scan, or a horizontal scan, and as a result, may obtain a residual coefficient in the form of a 2D block.
[130]
Inverse quantization may be performed on the residual coefficients of the current block ( S820 ).
[131]
It may be determined whether to skip the inverse transform on the inverse quantized residual coefficient of the current block (S830). Specifically, the decoder may determine whether to skip the inverse transform in at least one of a horizontal direction and a vertical direction of the current block. When it is determined to apply the inverse transform to at least one of the vertical or horizontal direction of the current block, the residual sample of the current block may be obtained by inverse transforming the inverse quantized residual coefficient of the current block ( S840 ). Here, the inverse transform may be performed using at least one of DCT, DST, and KLT.
[132]
When the inverse transform is skipped in both the horizontal and vertical directions of the current block, the inverse transform is not performed in the horizontal and vertical directions of the current block. In this case, the residual sample of the current block may be obtained by scaling the dequantized residual coefficient to a preset value ( S850 ).
[133]
Omitting the inverse transform in the horizontal direction means that the inverse transform is not performed in the horizontal direction and the inverse transform is performed in the vertical direction. In this case, scaling may be performed in the horizontal direction.
[134]
Omitting the inverse transform in the vertical direction means that the inverse transform is not performed in the vertical direction and the inverse transform is performed in the horizontal direction. In this case, scaling may be performed in the vertical direction.
[135]
Whether the inverse transform skip technique can be used for the current block may be determined according to the partition type of the current block. As an example, when the current block is generated through binary tree-based division, it is possible to restrict the use of the inverse transform skip technique for the current block. Accordingly, when the current block is generated through binary tree-based division, the residual sample of the current block may be obtained by inversely transforming the current block. In addition, when the current block is generated through binary tree-based division, encoding/decoding of information indicating whether inverse transform is skipped (eg, transform_skip_flag) may be omitted.
[136]
Alternatively, when the current block is generated through binary tree-based division, the inverse transform skip technique may be restricted in at least one of a horizontal direction and a vertical direction. Here, the direction in which the inverse transform skip technique is restricted may be determined based on information decoded from the bitstream or adaptively determined based on at least one of the size of the current block, the shape of the current block, or the intra prediction mode of the current block. have.
[137]
For example, when the current block is a non-square block having a width greater than a height, the inverse transform skip technique may be allowed only in the vertical direction, and use of the inverse transform skip technique may be restricted in the horizontal direction. That is, when the current block is 2NxN, inverse transform may be performed in a horizontal direction of the current block, and inverse transform may be selectively performed in a vertical direction.
[138]
On the other hand, when the height of the current block is a non-square block having a height greater than the width, the inverse transform skip technique may be allowed only in the horizontal direction, and the use of the inverse transform skip technique may be restricted in the vertical direction. That is, when the current block is Nx2N, inverse transform may be performed in a vertical direction of the current block, and inverse transform may be selectively performed in a horizontal direction.
[139]
Contrary to the above example, when the current block is a non-square block with a width greater than the height, the inverse transform skip technique is allowed only in the horizontal direction. A skip technique may be allowed.
[140]
Information indicating whether to skip the inverse transform for the horizontal direction or information indicating whether to skip the inverse transform for the vertical direction may be signaled through a bitstream. As an example, information indicating whether to skip the inverse transform for the horizontal direction is a 1-bit flag, 'hor_transform_skip_flag', and the information indicating whether to skip the inverse transform for the vertical direction is a 1-bit flag, 'ver_transform_skip_flag' ' can be The encoder may encode at least one of 'hor_transform_skip_flag' and 'ver_transform_skip_flag' according to the shape of the current block. Also, the decoder may determine whether the inverse transform in the horizontal direction or the vertical direction is skipped using at least one of 'hor_transform_skip_flag' and 'ver_transform_skip_flag'.
[141]
According to the division type of the current block, in either direction, the inverse transform may be set to be omitted. For example, when the current block is generated through binary tree-based division, inverse transformation in a horizontal direction or a vertical direction may be omitted. That is, if the current block is generated by binary tree-based partitioning, information indicating whether the inverse transform of the current block is skipped (eg, transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) in the horizontal or vertical direction without encoding/decoding of the current block It may be determined to skip the inverse transform for at least one of
[142]
[143]
When it is determined to apply the inverse transform to the current block, the transform type may be determined and the inverse transform may be performed using the determined transform type. A transform type of the current block (eg, a transform block or a coding block) may be determined based on at least one of a size of the current block or a coding mode. Here, the coding mode may indicate whether a coding block or a prediction block corresponding to a transform block is coded in the intra mode or the inter mode.
[144]
For example, for a 4x4 block encoded in the intra mode, inverse transform is performed using DST (specifically, DST-VII), and for other blocks, DCT (specifically, DCT-II) is used Thus, an inverse transformation can be performed.
[145]
DST-VII may be defined as matrix A 4 of Equation 1 . The inverse transformation for DST-VII can be defined as A 4 T .
[146]
[Formula 1]
[147]
DCT-II for an 8x8 block may be defined as a matrix T 8 in Equation 2 . The inverse transform for DCT-II may be defined as T 8 T .
[148]
[Formula 2]
[149]
In units of sequences, slices, or blocks, a selection condition of a transform type may be set differently. For example, in slice 0, DST may be applied to a transform block having a size of 4x4 encoded in the intra mode, whereas in slice 0, DST may be applied to a transform block of 8x8 or less encoded in the intra mode.
[150]
As another example, the transform type of the current block may be adaptively determined based on at least one of an intra prediction mode of the current block or the number of samples included in the current block. In this case, the number of samples serving as a selection criterion of a transform type may have a fixed value or may be determined through information signaled through a bitstream. The information may be signaled through a block level, a slice header, or a picture parameter set.
I/We Claim:
1. A method of decoding a video, the method
comprising:
5 obtaining a prediction sample of a transform block
by performing intra prediction;
obtaining a residual coefficient of the transform
block;
inverse quantizing the residual coefficient;
determining whether an inverse-transform is
skipped for the transform block;
obtaining a residual sample of the transform block
by applying or skipping the inverse-transform for the
transform block; and
obtaining a reconstruction sample by summing the
prediction sample and the residual sample,
wherein when it is determined that the inversetransform is not skipped for the transform block,
obtaining the residual sample comprises:
20 determining a transform type of the transform
block based on a transform set; and
performing the inverse-transform based on
the determined transform type, and
wherein a transform skip flag specifying whether
the inverse-transform is skipped or not is not parsed
from a bitstream when a coding block including the
transform block is partitioned into vertically or
horizontally, and
wherein when the coding block is partitioned into
vertically or horizontally, skipping the inversetransform for the transform block is not allowed.
2. The method of claim 1, wherein the transform
set is selected among a plurality of transform set
candidates, and
wherein a type or a number of transform type
candidates included in one of the transform set
candidates is different from another of the transform
set candidates.
10 3. The method of claim 1, wherein the inversetransform comprises a horizontal inverse-transform and
a vertical inverse-transform.
4. The method of claim 1, wherein the transform
type of the current block is adaptively determined based
on at least one of a size, a shape or a number of samples
of the transform block.
5. A method of encoding a video, the method
comprising:
obtaining a prediction sample of a transform block
by performing intra prediction;
obtaining a residual sample the transform block;
determining whether a transform is skipped for the
transform block;
obtaining a residual coefficient of the transform
block by applying or skipping the transform for the
transform block;
quantizing the residual coefficient of the
transform block; and
obtaining a reconstruction sample by summing the
prediction sample and the residual sample,
wherein when it is determined that the transform
is not skipped for the transform block, obtaining the
residual coefficient comprises:
determining a transform type of the transform
block based on a transform set; and
performing the transform based on the
determined transform type, and
wherein a transform skip flag specifying whether
the transform is skipped or not is not encoded into a
bitstream when a coding block including the transform
block is partitioned into vertically or horizontally,
and
wherein when the coding block including the
transform block is partitioned into vertically or
horizontally, skipping the transform for the transform
block is not allowed.
6. The method of claim 5, wherein the transform
set is selected among a plurality of transform set
candidates, and
wherein a type or a number of transform type
candidates included in one of the transform set
candidates is different from another of the transform
set candidate.
7. The method of claim 5, wherein the transform
comprises a horizontal transform and a vertical
30 transform. 8. The method of claim 5, wherein the transform
type of the current block is adaptively determined based
on at least one of a size, a shape or a number of samples
of the transform block.
| # | Name | Date |
|---|---|---|
| 1 | 202118025748-CLAIMS [09-03-2023(online)].pdf | 2023-03-09 |
| 1 | 202118025748-STATEMENT OF UNDERTAKING (FORM 3) [09-06-2021(online)].pdf | 2021-06-09 |
| 2 | 202118025748-REQUEST FOR EXAMINATION (FORM-18) [09-06-2021(online)].pdf | 2021-06-09 |
| 2 | 202118025748-CORRESPONDENCE [09-03-2023(online)].pdf | 2023-03-09 |
| 3 | 202118025748-POWER OF AUTHORITY [09-06-2021(online)].pdf | 2021-06-09 |
| 3 | 202118025748-FER_SER_REPLY [09-03-2023(online)].pdf | 2023-03-09 |
| 4 | 202118025748-FORM-26 [09-03-2023(online)].pdf | 2023-03-09 |
| 4 | 202118025748-FORM 18 [09-06-2021(online)].pdf | 2021-06-09 |
| 5 | 202118025748-OTHERS [09-03-2023(online)].pdf | 2023-03-09 |
| 5 | 202118025748-FORM 1 [09-06-2021(online)].pdf | 2021-06-09 |
| 6 | 202118025748-FORM 3 [07-03-2023(online)].pdf | 2023-03-07 |
| 6 | 202118025748-DRAWINGS [09-06-2021(online)].pdf | 2021-06-09 |
| 7 | 202118025748-Information under section 8(2) [07-03-2023(online)]-1.pdf | 2023-03-07 |
| 7 | 202118025748-DECLARATION OF INVENTORSHIP (FORM 5) [09-06-2021(online)].pdf | 2021-06-09 |
| 8 | 202118025748-Information under section 8(2) [07-03-2023(online)]-2.pdf | 2023-03-07 |
| 8 | 202118025748-COMPLETE SPECIFICATION [09-06-2021(online)].pdf | 2021-06-09 |
| 9 | 202118025748-Information under section 8(2) [07-03-2023(online)].pdf | 2023-03-07 |
| 9 | 202118025748-FORM 3 [03-12-2021(online)].pdf | 2021-12-03 |
| 10 | 202118025748-FER.pdf | 2022-06-16 |
| 10 | 202118025748-PETITION UNDER RULE 137 [07-03-2023(online)]-1.pdf | 2023-03-07 |
| 11 | 202118025748-FORM 4(ii) [01-12-2022(online)].pdf | 2022-12-01 |
| 11 | 202118025748-PETITION UNDER RULE 137 [07-03-2023(online)].pdf | 2023-03-07 |
| 12 | 202118025748-FORM 4(ii) [01-12-2022(online)].pdf | 2022-12-01 |
| 12 | 202118025748-PETITION UNDER RULE 137 [07-03-2023(online)].pdf | 2023-03-07 |
| 13 | 202118025748-FER.pdf | 2022-06-16 |
| 13 | 202118025748-PETITION UNDER RULE 137 [07-03-2023(online)]-1.pdf | 2023-03-07 |
| 14 | 202118025748-FORM 3 [03-12-2021(online)].pdf | 2021-12-03 |
| 14 | 202118025748-Information under section 8(2) [07-03-2023(online)].pdf | 2023-03-07 |
| 15 | 202118025748-COMPLETE SPECIFICATION [09-06-2021(online)].pdf | 2021-06-09 |
| 15 | 202118025748-Information under section 8(2) [07-03-2023(online)]-2.pdf | 2023-03-07 |
| 16 | 202118025748-DECLARATION OF INVENTORSHIP (FORM 5) [09-06-2021(online)].pdf | 2021-06-09 |
| 16 | 202118025748-Information under section 8(2) [07-03-2023(online)]-1.pdf | 2023-03-07 |
| 17 | 202118025748-DRAWINGS [09-06-2021(online)].pdf | 2021-06-09 |
| 17 | 202118025748-FORM 3 [07-03-2023(online)].pdf | 2023-03-07 |
| 18 | 202118025748-FORM 1 [09-06-2021(online)].pdf | 2021-06-09 |
| 18 | 202118025748-OTHERS [09-03-2023(online)].pdf | 2023-03-09 |
| 19 | 202118025748-FORM-26 [09-03-2023(online)].pdf | 2023-03-09 |
| 19 | 202118025748-FORM 18 [09-06-2021(online)].pdf | 2021-06-09 |
| 20 | 202118025748-POWER OF AUTHORITY [09-06-2021(online)].pdf | 2021-06-09 |
| 20 | 202118025748-FER_SER_REPLY [09-03-2023(online)].pdf | 2023-03-09 |
| 21 | 202118025748-REQUEST FOR EXAMINATION (FORM-18) [09-06-2021(online)].pdf | 2021-06-09 |
| 21 | 202118025748-CORRESPONDENCE [09-03-2023(online)].pdf | 2023-03-09 |
| 22 | 202118025748-STATEMENT OF UNDERTAKING (FORM 3) [09-06-2021(online)].pdf | 2021-06-09 |
| 22 | 202118025748-CLAIMS [09-03-2023(online)].pdf | 2023-03-09 |
| 23 | 202118025748-PatentCertificate21-01-2025.pdf | 2025-01-21 |
| 24 | 202118025748-IntimationOfGrant21-01-2025.pdf | 2025-01-21 |
| 1 | 202118025748E_16-06-2022.pdf |