Abstract: A method for image decoding according to the present invention may comprise: a step of acquiring a motion vector of a current block; a step of updating the motion vector if bidirectional optical flow is applied to the current block; and a step of performing motion compensation for the current block by using the updated motion vector.
Art
[1]The present invention relates to a video signal processing method and apparatus.
BACKGROUND
[2]Recently, the demand for high-resolution, high-quality video, such as HD (High Definition) video and UHD (Ultra High Definition) video is increasing in various application areas. Since the image data has been increasing the amount of high resolution, high quality is the more relatively data compared to traditional image data if the stored transmit image data using a medium such as an existing wired or wireless broadband, or with a conventional storage medium, transmission cost and It increases storage costs. In order to address these issues as the picture data of high resolution, high quality image can be compressed with high efficiency techniques are utilized.
[3]
A video compression techniques inter picture predicting the pixel values of the current picture from a previous or subsequent picture in the current picture prediction techniques, by using the pixel information in the current picture screen for predicting the pixel values of current picture prediction techniques, It may assign a short code to a value of high appearance frequency, and transmitted or stored until there is a variety of techniques, such as an entropy encoding technique for assigning a long code to the low frequency of appearance values, and effectively compressing the image data by using such a video compression technology.
[4]
On the other hand, with the increased demand for high-definition video, and even with increased demand for stereoscopic content as a new video service. There is ongoing debate about the resolution and second video compression technology to provide a high-resolution stereoscopic content effectively.
Detailed Description of the Invention
SUMMARY
[5]
An object of the present invention is to provide a method and apparatus capable of performing efficient inter-prediction with respect to the method as the coding / decoding a video signal, an encoding / decoding block.
[6]
An object of the present invention is to provide a method and apparatus for applying the motion-compensated block superposed on the method, the motion compensation is performed as the block encoding / decoding a video signal.
[7]
An object of the present invention is to provide a method and apparatus as in encoding / decoding a video signal, applying the optical flow in sub-block units.
[8]
SUMMARY OF THE INVENTION In the present invention are not limited to the technical problem mentioned above, it is not mentioned another technical problem will be clearly understood to those of ordinary skill in the art from the following description It will be.
Problem solving means
[9]
A video signal decoding method and apparatus according to the present invention may obtain the motion vector of the current block, and if a two-way optical flow applied to the current block, and update the motion vectors, using the updated motion vector, the It may perform motion compensation to the current block. At this time, it is possible that the bi-directional optical flow to be applied to the sub-blocks of a predetermined size of the current block.
[10]
Video signal coding method and apparatus according to the present invention may obtain the motion vector of the current block, and if a two-way optical flow applied to the current block, and update the motion vectors, using the updated motion vector, the It may perform motion compensation to the current block. At this time, it is possible that the bi-directional optical flow to be applied to the sub-blocks of a predetermined size of the current block.
[11]
In the video signal encoding / decoding method and apparatus according to the present invention, updating the motion vectors, and those for obtaining a movement adjustment vector of the current block within the sub-block, using the motion adjustment vector, the motion vector the may involve updating.
[12]
In the video signal encoding / decoding method and apparatus according to the present invention, the motion vector is adjusted, can be obtained on the basis of samples of the motion vector adjusting the average value contained in said sub-block.
[13]
In the video signal encoding / decoding method and apparatus according to the present invention, the motion vector is adjusted, it can be obtained based on a particular sample location within the sub-blocks.
[14]
In the video signal encoding / decoding method and apparatus according to the present invention, the specific location samples may include at least one of the sample at the center of the sample or the sub-block located in a corner of the sub-block.
[15]
In the video signal encoding / decoding method and apparatus according to the present invention, the size or form of the sub-blocks may be determined based on at least one of the size or type of the current block.
[16]
In the video signal encoding / decoding method and apparatus according to the present invention, the sub-blocks of size or shape may be determined based on whether the block motion compensation is performed nested in the current block is the resolution or the motion compensation of an image is performed have.
[17]
In the video signal encoding / decoding method and apparatus according to the present invention, may include the application of the motion compensation block nested in the current block is the motion compensation has been performed. In this case, the overlap block motion compensation may be applied in sub-block units of a predetermined size of the current block.
[18]
The for the invention briefly summarized above features are merely exemplary of yangsangil detailed description of the invention which will be described later, and are not intended to limit the scope of the invention.
Effects of the Invention
[19]
According to the present invention, encoding / decoding can be efficiently performed by the inter prediction for the current block.
[20]
According to the present invention, by applying the motion-compensated block superposed on the motion compensation it is performed block, there is an advantage to increase the efficiency of the inter-prediction.
[21]
According to the present invention, by applying the optical flow on a block-by-block basis rather than in samples, there is an advantage of reducing the memory usage.
[22]
Effects that can be obtained in the present invention is not limited to the effects mentioned above, are not mentioned other effects can be clearly understood to those of ordinary skill in the art from the following description will be.
Brief Description of the Drawings
[23]
Figure 1 is a block diagram showing an image encoding apparatus according to an embodiment of the present invention.
[24]
Figure 2 is a block diagram showing an image decoding apparatus according to an embodiment of the present invention.
[25]
Figure 3 illustrates an example of dividing the one embodiment to which the present invention is applied, coded block on the basis of the tree structure (tree structure) in a hierarchical manner.
[26]
Figure 4 is a view of the partition form of the invention is in one embodiment, the partitioning of the binary tree-based allowed to be applied.
[27]
Figure 5 is a view showing one embodiment to which the present invention is applied, for example, only a particular form of binary tree-based partition allowed.
[28]
Figure 6 is one embodiment to which the present invention is applied, a view for explaining an example in which the information relating to the division number allows a binary tree to be encoded / decoded.
[29]
7 is a view according to an embodiment to which the present invention is applied, illustrating a partition mode that can be applied to the coded block.
[30]
8 is a flowchart illustrating the inter-prediction method according to an embodiment to which the present invention is applied.
[31]
9 is a case where the merge mode applied to the current block, a diagram illustrating a process for deriving the motion information of the current block.
[32]
10 is a case where the mode for the current block AMVP apply a diagram illustrating a process for deriving the motion information of the current block.
[33]
11 is a view for explaining a method of inducing a motion vector on the basis of the ATMVP in sub-block units.
[34]
12 is a view for explaining a method of inducing a motion vector on the basis of the STMVP in sub-block units.
[35]
13 is a view for explaining the two-way optical flow.
[36]
Figure 14 illustrates an example in which the overlapped block motion compensation using the motion vector of the neighboring block do.
[37]
Figure 15 is a block diagram showing the procedure to be performed for two-way optical flow, and the overlapping block motion compensation.
[38]
16 is a diagram showing samples in a particular location to be used to derive the motion vector adjustment.
[39]
17 is a block diagram showing the procedure to be performed for two-way optical flow, and the overlapping block motion compensation.
Mode for the Invention
[40]
The invention will be described in bars, it illustrated in the drawings certain embodiments that may have a variety of embodiments can be applied to various changes and detail in the Detailed Description. This, however, is by no means to restrict the invention to the specific embodiments, it is to be understood as embracing all included in the spirit and scope of the present invention changes, equivalents and substitutes. In describing the drawings was used for a similar reference numerals to like elements.
[41]
First, the term of the second, etc., can be used in describing various elements, but the above elements shall not be restricted to the above terms. These terms are only used to distinguish one element from the other. For example, without departing from the scope of the present invention, the first component may be referred to as a second configuration can be named as an element, similar to the first component is also a second component. And / or the term includes any item of the items described concerning the combination or plurality of the plurality of related items disclosed.
[42]
It understood that when one element is described as being "connected" or "coupled" to another element, but may be directly connected or coupled to the other components, may be other element in between It should be. In contrast, when an element is referred to there being "directly connected" to another element or "directly connected", it should be understood that other components in the middle that does not exist.
[43]
The terms used in the present specification are merely used to describe particular embodiments, and are not intended to limit the present invention. Expression in the singular number include a plural forms unless the context clearly indicates otherwise. In this application, the terms "inclusive" or "gajida" terms, such as is that which you want to specify that the features, numbers, steps, actions, components, parts, or one that exists combinations thereof described in the specification, the one or more other features , numbers, steps, actions, components, parts, or the presence or possibility of combinations thereof and are not intended to preclude.
[44]
With reference to the accompanying drawings, it will be described in detail preferred embodiments of the invention. The same reference numerals for the same components on the accompanying drawings and the description redundant with respect to the same elements will be omitted.
[45]
[46]
Figure 1 is a block diagram showing an image encoding apparatus according to an embodiment of the present invention.
[47]
1, the image encoding device 100 includes a picture dividing unit 110, a prediction unit (120, 125), the conversion unit 130, a quantization unit 135, a reordering unit 160, an entropy coding unit ( 165), it may include an inverse quantization unit 140, an inverse transformation unit 145, filter unit 150 and memory 155. the
[48]
FIG constituent parts shown in Fig. 1 does not mean that each independently shown to represent another characteristic feature, made of an constituent parts are separate hardware or a software unit in the image encoding apparatus. That is, the respective constituent parts combined addition of convenience, each of the configuration of at least one constituent part that includes the list part two configurations described or made part a configuration, it is possible to perform a divided parts of one configuration addition plurality of configuration functions for each of these one is included in the scope of the present invention configured without departing from the spirit of the present invention, examples of an integrated and separate exemplary embodiment portion.
[49]
In addition, some of the components are not the essential components that perform essential functions in the present invention can only be an optional component to improve the performance. Structure of the present invention can only be implemented to include only the essential component parts to implement the essence of the present invention except for the components that are used to improve performance, including only optional configuration required components except the elements that are only used for better performance It is also included in the scope of the present invention.
[50]
A picture dividing unit 110 can divide an input picture into at least one processing unit. At this time, in units of prediction unit may be: (CU Coding Unit) (Prediction Unit:: PU) may be a, a translation unit (TU Transform Unit) and may be a coding unit. Picture division section 110 into a plurality of coding unit, a prediction unit, and the combination of the transform unit for the one picture and a predetermined reference (for example, a cost function), as a coding unit, a prediction unit and a translation unit, a combination to select it can be encoded in the picture.
[51]
For example, one picture can be divided into a plurality of coding units. Coding in order to divide the unit of encoding in a picture may be used a recursive tree structure, such as a quad tree structure (Quad Tree Structure) by one of the picture or the maximum size of the encoding unit (largest coding unit) to the root which is divided into different coding units unit may be divided to have the child nodes as many as the number of the divided coded unit. In accordance with a predetermined limit that is no longer divided coding unit is a leaf node. That is, if we assume that the square divided only possible for one of the coding unit, a coding unit may be divided into up to four different coding units.
[52]
Hereinafter, embodiments in the coding unit of the present invention may be used to mean a unit for performing the encoding, it can be used to mean a unit for performing the decoding.
[53]
Prediction unit may be divided to have the form of at least one of the square or rectangle of the same size within a coding unit, one of the any of the prediction unit of the divided prediction unit in the coding units prediction of other It may be partitioned to have a unit with a different shape and / or size.
[54]
If not the minimum coding unit when generating a prediction unit which performs intra prediction based on the encoding unit may perform intraprediction not divided into a plurality of NxN prediction unit.
[55]
Prediction unit 120, 125 may comprise an intra predictor 125 to perform the inter-prediction unit 120 and the intra-prediction for performing inter-prediction. For the prediction unit whether to use the inter prediction or decision whether to perform intra prediction, it is possible to determine the specific information (e.g., intra-prediction modes, motion vectors, reference picture, and so on) for each prediction method. At this time, the prediction process unit is performed and the prediction method and the specific process unit to be the content determined may be different. For example, the prediction method and the prediction mode and the like is determined as a prediction unit, for performing prediction may be performed in a conversion unit. Residual values between the generated prediction block and the original block (residuals block) can be input to the converter 130. Further, the prediction mode information used for prediction, and motion vector information which are coded by the entropy coding unit 165 together with the residual value may be delivered decoding groups. When using a specific encoding mode, instead of generating a prediction block by the prediction unit (120, 125), by directly coding the source block it is also possible to transfer the decrypting unit.
[56]
Inter prediction section 120 thus is predicted based on the information of a part of the coding in the current picture is complete, if the current and of the previous picture or a subsequent picture of the picture also at least predicting the prediction unit, based on information in the one picture, It may predict the unit. Inter prediction section 120 may include a reference picture interpolation, motion prediction unit, a motion compensation unit.
[57]
The reference picture interpolation may receive service information from the reference picture memory 155, it generates the pixel information of more than integer pixels in a reference picture. Can be used for luminance pixel, quarter-8-tap interpolation filter (DCT-based Interpolation Filter) in the DCT-based otherwise the filter coefficient to generate the pixel information of the integer pixels in units of pixels or less. For the color difference signals is 1/8 4-tap interpolation filter (DCT-based Interpolation Filter) in the DCT-based having different filter coefficients on a pixel-by-pixel basis to generate the pixel information of integer pixels or less can be used.
[58]
A motion prediction unit may perform motion estimation based on the reference picture in a reference picture interpolation by the interpolation. There are various methods as a way to calculate a motion vector (Full search-based Block Matching Algorithm) FBMA, TSS (Three Step Search), NTS (New Three-Step Search Algorithm) or the like can be used. A motion vector may have a motion vector value of 1/2 or 1/4 pixel units on the basis of the interpolation pixel. The motion predictor by different motion prediction methods to predict the current prediction unit. Motion predicting method in the skip (Skip) method, merge (Merge) method, AMVP (Advanced Motion Vector Prediction) method, such as an intra block copy (Intra Block Copy) method can be used a variety of methods.
[59]
Intra predictor 125 may generate the pixel information of the current prediction unit based on the reference pixel information of neighboring blocks in the current picture. If it is, the neighboring blocks of the prediction unit then blocks the performing inter-prediction, the reference pixel is a pixel which performs the inter-prediction, with reference of the reference pixel contained in the block performing the inter prediction performs intra prediction for the neighboring blocks of pixels It may be replaced by information. In other words, if reference pixels are not available, it may be replaced by at least one reference pixel in the reference pixels available for reference information that is not available pixels.
[60]
In the intra-prediction mode, prediction may have a non-directional mode that does not use the directional information for the performance of the directional prediction mode, the prediction using the reference pixels in accordance with information on a prediction direction. And a mode for predicting the mode and color difference information to predict the luminance information may be different, it is possible to take advantage of the intra-prediction mode information or the prediction luminance signal information used to estimate the brightness information to estimate the color difference information.
[61]
Intra-prediction for a case the same size of the size of the translation unit of the prediction unit when performing the intra prediction, a pixel that exists on the left side of the prediction unit, and the pixel, the prediction unit based on the pixels existing in the top of existing in the upper left the can be performed. But it can be when the size of the prediction unit to perform the intra-prediction size and phase conversion unit, using the reference pixel on the basis of a conversion unit to perform intra prediction. It is also possible to use the intra-prediction using the NxN split only for the minimum coding unit.
[62]
Intra-prediction method may generate a prediction block after applying (Adaptive Intra Smoothing) AIS filter the reference pixels according to the prediction mode. Type of AIS filters that are applied to the reference pixel may be different. The intra-prediction mode of the current prediction unit for performing intra prediction method may be predicted from the intra-prediction mode of the prediction unit existing in the vicinity of the current prediction unit. When prediction a prediction mode of the current prediction unit using the mode information predicted from the surrounding prediction unit, the intra prediction mode is the same when using the predetermined flag information, the current prediction unit and the surrounding prediction unit for the current prediction unit and the surrounding prediction unit a prediction mode and to transmit the same information that, if the can when the prediction mode of the current prediction unit and the peripheral units of different prediction by performing the entropy coding to encode the prediction mode information of the current block.
[63]
In addition, a residual block that contains the prediction section 120, 125 predicted by performing a prediction based on a prediction unit of the unit to the original block of the prediction unit and the difference value of the residual values (Residual) information generated by the can be generated. The generated residual block may be input to the converter 130.
[64]
Conversion unit 130 in the source block and the prediction unit (120, 125) (Discrete Cosine Transform), DCT residual block including residual value (residual) information of the predicted unit generation via, DST (Discrete Sine Transform), KLT and using the same conversion method can be converted. To apply the DCT transform to the residual block, the intra-prediction mode information of the prediction unit used to generate the residual block might seem apply to apply the DST or KLT can be determined based on.
[65]
The quantization unit 135 may quantize the values converted into the frequency domain in a transform unit 130. The Based on the importance of the image or depending on the block quantization coefficient it may be varied. A value calculated by the quantization unit 135 may be provided to the inverse quantization unit 140 and the reordering unit 160.
[66]
Reordering unit 160 may perform the reordering of the coefficient value for the quantized residual values.
[67]
Rearrangement unit 160 may change the form factor of the two-dimensional block by a coefficient scanning method (Coefficient Scanning) in the form of a vector of 1 dimension. For example, the rearrangement unit 160, the zig-zag scanned using a scan (Zig-Zag Scan) method from the DC coefficient to the coefficients of the high frequency region can be changed to a one-dimensional vector format. May be used instead of the horizontal scanning to scan zag scan vertical scan to scan two-dimensional coefficients of the block type in the column direction, the block coefficient of the two-dimensional form in the row direction according to the size of the transformation unit and the intra prediction mode jig. That is, according to the size and the intra-prediction mode of the conversion unit of zig-zag scanning may determine whether, any scanning method of the vertical scan and the horizontal scan will be used.
[68]
The entropy encoding unit 165 may perform entropy-encoding on the basis of the value calculated by the reordering unit 160. The Entropy encoding, for example, exponential Golomb (Exponential Golomb), may be used for various coding methods such as CAVLC (Context-Adaptive Variable Length Coding), CABAC (Context-Adaptive Binary Arithmetic Coding).
[69]
The entropy encoding section 165 rearrangement unit 160 and the prediction unit (120, 125) from the residual value of the coefficient of the coding unit information and block type information, prediction mode information, the division unit information, a prediction unit of information and transmission unit information, motion vector information, and reference frame information, interpolation information, filter information of the block can be encoded in a variety of information.
[70]
The entropy coding unit 165, the entropy encoding may be the coefficients of a coded unit of input in the rearrangement unit 160. The
[71]
The inverse quantization unit 140 and inverse transform unit 145 inverse quantizes the values quantized by the quantization unit 135 and inverse transform the values converted by the conversion unit 130. Residual value (Residual) generated by the inverse quantization unit 140 and inverse transformation unit 145 is the prediction unit restoring combined with the motion estimator, a motion compensator, and intraprediction predicted through parts prediction unit comprises a (120, 125) it is possible to produce a block (block Reconstructed).
[72]
Filter unit 150 may include at least one of a deblocking filter, offset correction, ALF (Adaptive Loop Filter).
[73]
De-blocking filter may be removed and the resulting block distortion due to the interface between the block in the reconstructed picture. To perform a de-blocking can be determined whether or not to apply the deblocking filter to the current block based on pixels included in several rows or columns included in the block in order to determine. For the application of the deblocking filter to the block it can be applied in a strong filter (Strong Filter) or a weak filter (Weak Filter) in accordance with the necessary de-blocking filter strength. Also note that when applying the deblocking filter for vertical filtering and horizontal filtering can be done in parallel for processing the horizontal filter and vertical filter.
[74]
Offset compensation unit for performing a de-blocking the image it is possible to correct the offset of the original image in pixels. Offset and then divided into the area of the number of certain of the pixels included in the image to perform the offset correction for the specified picture determines the area to perform the offset considering a method of applying an offset to the area or edge information of each pixel you can use the method of applying.
[75]
(Adaptive Loop Filtering) ALF may be performed on the basis of a comparison of the original picture and the filtered reconstructed image value. Divide the pixels included in the image in a predetermined group can be performed by determining the differential filter as a single filter to be applied to the group for each group. Information relating to whether to apply the ALF is a luminance signal is shaped, and the filter coefficients of the filter to be applied in accordance with the ALF coding unit (Coding Unit, CU) each block can have, to be transmitted by each may vary. Further, the application may be applied to the ALF filter of the same type (fixed type) regardless of the characteristics of the current block.
[76]
Memory 155 may store the reconstructed picture block or output through a filter section 150, the stored recovery block or picture may be provided at the time of performing inter-prediction predictor (120, 125).
[77]
[78]
Figure 2 is a block diagram showing an image decoding apparatus according to an embodiment of the present invention.
[79]
2, the video decoder 200, an entropy decoding unit 210, a reordering unit 215, an inverse quantization unit 220, an inversion unit 225, a prediction unit (230, 235), the filter unit ( 240), may be included in the memory 245.
[80]
If the video bit streams from the video encoder input, the input bit stream can be decoded in the process of a video encoder and opposite.
[81]
The entropy decoding unit 210 may perform entropy decoding in the reverse procedure to that performing the entropy coding in the entropy coding unit of the video encoder. For example, it is possible to correspond to the process performed in the video encoder be subject to a variety of methods such as exponential Golomb (Exponential Golomb), CAVLC (Context-Adaptive Variable Length Coding), CABAC (Context-Adaptive Binary Arithmetic Coding).
[82]
The entropy decoding unit 210, the can decrypt the information with regard to intra-prediction and inter-prediction performed in the encoder.
[83]
Reordering unit 215 may perform reordering based on the way rearrange the entropy decoded bitstream in the entropy decoding unit 210 in the encoding unit. The coefficients represented as one-dimensional vector form may be further rearranged to restore it to the coefficients of the blocks in the form of two-dimensional. Reordering unit 215 by the received provided information related to the coefficient scanning performed on the coding unit based on the scanning procedure performed in the encoding unit may perform reordering by a method of scanning in reverse.
[84]
The inverse quantization unit 220 may perform inverse quantization based on the count value of the reordered block and the quantization parameter provided by the encoder.
[85]
Inverse transform unit 225 may be for a conversion that is, DCT, DST, and KLT performed in converting unit for performing a quantization result by the image encoder performs the inverse transformation that is, reverse DCT, reverse DST and inverse KLT. The inverse transform may be performed on the basis of the transmission unit is determined from the video encoder. The inversion unit 225 of the video decoder prediction method, the transformation method (e.g., DCT, DST, KLT) based on the current block of the plurality of information such as the size and direction of prediction can be carried out selectively.
[86]
Predictor (230, 235) may generate a prediction block based on a previously decoded block, or picture information provided by the entropy decoding unit 210, a prediction block generated additional information and the memory 245 provided in the.
[87]
Present on equally to the operation of the video encoder, the size of the size and the conversion unit of the prediction unit of the same when performing the intra prediction, pixel, the upper present in the pixels, the upper left corner existing on the left side of the prediction unit as described above, on the basis of pixels that performs intra-prediction for a prediction unit, however, the case where the size of the transformation unit of the prediction unit for the performance of intra prediction different, using a reference on the basis conversion units of pixels to perform the intra prediction can. It is also possible to use the intra-prediction using the NxN split only for the minimum coding unit.
[88]
Predictor (230, 235) may include predicting unit determining unit, an inter prediction unit and the intra-prediction unit. Prediction unit judging section receives a variety of information such as the motion prediction information of the entropy decoding unit 210, prediction unit information, the intra-prediction method to be input in the prediction mode information and inter-prediction method of the separate prediction unit of the current coding unit, and prediction if the unit is performing inter prediction or it can be determined whether to perform intra prediction. The inter-prediction unit 230 is provided in the video encoder using the information necessary for inter-prediction of the current prediction unit are predicted on the basis of the information contained in the at least one picture of the previous picture or a subsequent picture of a current picture containing the current prediction unit It may perform inter prediction on the unit. It may perform inter-prediction based on the information of the restored partial area - or, a group within a current picture containing the current prediction unit.
[89]
Motion predicting method in the prediction unit included in the coding unit, based on the coding units for performing inter-prediction is a skip mode (Skip Mode), merge mode (Merge mode), AMVP mode (AMVP Mode), the intra-block copy mode of what kind of method can determine whether or not.
[90]
An intra prediction unit 235 may generate a prediction block based on a pixel information in the current picture. When the prediction unit of the prediction unit that performs intra prediction, based on the intra-prediction mode information of the prediction unit provided in the video encoder to perform intra prediction. An intra prediction unit 235 may include a (Adaptive Intra Smoothing) AIS filter, the reference pixel interpolating units, DC filter. AIS filter may be applied to determine whether a filter is applied in accordance with the prediction mode of the current prediction unit as a part that filters the current block of the reference pixel. Using the prediction mode information of the prediction filter and the AIS unit provided in the video encoder may perform the AIS filtering the current block of the reference pixel. If the current mode is a prediction mode of the block does not perform filtering AIS, AIS filter can not be applied.
[91]
Reference pixel interpolation unit may if the prediction mode of the prediction unit of one prediction unit which performs intra prediction based on the pixel value interpolation reference pixels, by interpolating the reference pixel to generate a reference pixel of a pixel unit or less constant value. If the prediction mode of generating a predictive block without the prediction mode of the current prediction unit interpolates the reference pixels a reference pixel can not be interpolated. DC filter has a prediction mode of the current block to generate a prediction block through the filter when the DC mode.
[92]
The reconstructed block or picture may be provided to filter unit 240. Filter unit 240 may include the deblocking filter, offset correction, ALF.
[93]
From the video encoder can be provided with information and di was applied when the blocking filter, information on whether the applied strong filter or apply a weak filter to whether on whether or not applying the deblocking filter to the block or picture. The deblocking filter of a video decoder being provided for the de-blocking filter-related information provided from the video encoder may perform deblocking filtering on the block in the video decoder.
[94]
Offset correcting unit may perform the offset correction on the restored image based on the information such as the type and the offset value of the offset compensation applied to the video encoding operation.
[95]
ALF may be applied to the encoding unit on the basis of whether the ALF application provided from the encoder information, ALF coefficient information, and the like. The ALF information may be provided to include a particular parameter set.
[96]
Memory 245 stores the reconstructed picture blocks or can to be used as a reference picture or a reference block may also provide the reconstructed picture as an output module.
[97]
In the following embodiments, the present invention as described above, used as a term for convenience coding unit (Coding Unit) coding units of description, but the encoding may be not only a unit for performing the decoding.
[98]
Also, the current block, to indicate the coding / decoding the current block, the encoding / accordance with the decoding phase, the coding tree block (or coding tree unit), an encoding block (or encryption unit), the conversion block (or a conversion unit), or prediction block It can be an indication or the like (or the prediction unit).
[99]
[100]
One picture can be divided into the basic blocks of the square or non-square shape encoding / decoding. In this case, the basic blocks may be referred to as the coding tree unit (Coding Tree Unit). Coding tree unit may be defined as the largest size allowed by the encoding unit sequence or a slice. Coding tree unit information related to the size of the square or non-square shape and whether or coding tree unit may be signaled through a sequence parameter set, picture parameter set or a slice header and the like. Coding tree unit may be divided into a smaller size for the partition. In this case, if the generated partition tree by splitting a coding unit as to the depth 1, the partitions created by dividing the depth of 1 partitions can be defined as the depth 2. That is, by dividing the generated within the depth k of the partition tree coding unit partition may be defined as having a depth k + 1.
[101]
Coding tree unit may be defined as a coding unit for partitioning the generated arbitrary size as the split. The coding unit is divided or recursively, may be divided into a basic unit for performing a predictive, quantized, transformation, or in-loop filtering, and the like. For example, any size of the partition generated as the coding units is split may be defined or the coding unit, defined as the predicted, quantized, transformation, or the basic unit of conversion unit or a prediction unit for performing such loop filter.
[102]
Partitioning of the coding tree unit or a coding unit, a vertical line may be performed based on at least one of (Vertical Line) or horizontal (Horizontal Line). In addition, the number of vertical and horizontal lines that partition the coding tree unit or a coding unit may be at least at least one. For example, as a vertical line, or one with a horizontal line, the coding tree unit or dividing the coding unit into two partitions, or two vertical and two by a horizontal line, the three partitions the coding tree units or coding unit It can be split. Or, by using a single vertical line and one horizontal line, it is possible to divide the coding tree units or coding unit to the four partitions of the length and width of one-half.
[103]
If the coding tree units or coding unit by using at least one vertical or at least one horizontal line is divided into a plurality of partitions, the partitions may have a uniform size, or may have a different size. Alternatively, it may also be any one of the partitions have a different size from the rest of the partition.
[104]
In the embodiments to be described later for example, it is assumed to be divided into a coding tree units or coding unit quadtree, triple tree or a binary tree structure. However, it can also be further divided in the coding tree units or coding unit by using a large number of vertical line or a larger number of horizontal lines of the.
[105]
Figure 3 illustrates an example of dividing the one embodiment to which the present invention is applied, coded block on the basis of the tree structure (tree structure) in a hierarchical manner.
[106]
The input video signal is decoded by a predetermined block unit, the basic unit is referred to as a coded block for decoding Thus the input video signal. Coding block may be a unit for performing the intra / inter-prediction, transformation, quantization. Further, the coding block unit prediction mode is determined (e.g., the intra-prediction mode or the inter-prediction mode), the prediction block included in the coded blocks, it is possible to share the determined prediction mode. Coded block may be a square or non-square blocks of arbitrary size of 8x8 to 64x64 belonging to the range, it can be 128x128, 256x256, or a square or non-square block having a size more.
[107]
Specifically, the coding block can be divided into a hierarchical tree based on at least one of a quad (quad tree), triple tree (triple tree), and a binary tree (binary tree). Here, the division of the quad-tree based 2Nx2N coded block with four NxN a manner that is divided into coded blocks, triple-partitioning of the tree-based is how a coding block is divided into three code blocks, a binary tree split of base may refer to one way of coding the block is divided into the two coded blocks. Although the triple tree or a binary tree-based partition of the partition was performed, in the lower depths may be present in the square in the coding block. Or, after the triple tree or a binary tree-based partition of the partition is performed, the sub-depth may be limited to be a square coding block generated.
[108]
Dividing the binary tree-based may be performed symmetrically, and may be performed asymmetrically. The coded blocks divided by a binary tree-based block may be a square, but may be non-square block such as a rectangular. For example, as shown in the example in shown in Figure 4 the partition shape which the division of a binary tree-based allow, symmetric (symmetric) of 2NxN (horizontal non-square coding unit) or Nx2N (vertically non room coding unit), an asymmetric of the type (asymmetric) in nLx2N, nRx2N, 2NxnU 2NxnD or it may include at least one.
[109]
Division of the binary tree-based and may be limited to allow only one of a symmetric or asymmetric form of partition. In this case, it is for constituting the coding tree unit, a square block for the quadtree partitioning CU, configure coding tree unit, in a non-symmetric square block may correspond to a binary tree partitioning. What constitutes a tree-coding unit in a square block with symmetric non-square block may correspond to a quad, and a binary tree CU partitioning.
[110]
Dividing the binary tree-based may be performed on a coding block is divided in the quad-tree based it is no longer performed. Binary partition tree of quad-based for the coded blocks divided in a tree-based, tree-based triple of the division or partition of at least one of a binary tree-based, may be set to no longer be performed.
[111]
Alternatively, but allow the triple tree-based partition or division of the binary tree based on the coding block divided by a binary tree-based, it is also possible to allow limited to only one of the horizontal direction or divided in the vertical direction.
[112]
For example, it is also possible to limit further divided or further divided direction on the location, index, types, coded blocks divided by a binary tree-based depending on the further divided in the form of adjacent partitions of the encoded block divided by a binary tree-based. For example, a binary tree split the index of the code block before the two coded coding sequence of the blocks generated by the 0 (hereinafter referred to as coded block with index 0) of the base, the coding order is 1 (the index of the coded block on the back, when called coded block index 1), the coding block index 0 or coded block index 1 in the case that the division of a binary tree-based applied to all coded blocks, dividing direction of the binary tree based on the coded block index is 1, the coded block, coded block index can be determined according to the dividing direction of the zero-tree of binary-coded block based. Specifically, the coded block, if the index is the division direction of the zero binary tree for coding the block-based to split a coded block coded block index is zero in the square partitions, the coding block index of 1, a binary tree-based coding block the partition can be limited so as to have a partition different from the direction of the binary tree based on the coded block index 1 of the coding block. That is, the coded block with index 0 and index 1 coded block of coded blocks may all be limited to be divided into a square partition. In this case, the encoding / decoding of the information representing the binary tree splitting direction of the coded block index is 1, the coded block can be omitted. This coded block with index 0 and index 1 coded block of coded blocks is all that is divided into a square partitions, the bar represents the equivalent to dividing the higher block to a depth quadtree-based,
[113]
Triple-partitioning of the tree base, means for dividing the coded blocks in the horizontal or vertical direction into three partitions. Triple all three partitions of the tree based on the generated due to division can have different sizes. Or, two of the partitions created due to the division of the tree-based triple has the same size, there is also the other one can have any different size. For example, the coding block width ratio or height ratio of generated partitions as partition 1 according to the dividing direction: to be set to 1: n: 1, 1: 1: n, n: 1: 1 or m: n have. Here, m and n may be an integer, e.g., 2 to a real number greater than 1, or 1.
[114]
Triple-partitioning of the tree-based may be performed on a coding block is divided in the quad-tree based is no longer performed. Access may for coded blocks divided in a tree-based, the division of the quadtree-based, tree-based triple-partitioning of binary or tree-based partition of the at least one can be set to no longer be performed.
[115]
Alternatively, triple, but the tree-based acceptable triple tree-based partition or division of the binary tree based on the divided coded block, it is also possible to allow limited to only one of the horizontal direction or divided in the vertical direction.
[116]
For example, the triple depending position of the coded blocks divided in a tree-based, the index, shape, size and further divided in the form of adjacent partitions or the like, it is also possible to limit further divided or further divided direction for the coded blocks divided into a triple-tree-based. For example, the triple can be either a horizontal division or a vertical division for the size of the tree-based coded blocks generated by the division of the largest partition is restricted. Specifically, triple the size of the coded blocks generated by the splitting of the tree based on the largest partition is two triple tree division direction and triple tree partitioning of the binary tree split, or the same direction with the same orientation direction of the upper depth, the partition may not be allowed have. In this case, the triple tree-based coding / decoding of information representing the binary tree splitting direction or triple tree splitting direction for the weighting of the largest partitions divided by the coding block can be omitted.
[117]
Dividing the sub-depth may be determined as dependent on the splitting type of the upper depth. If a one embodiment, the partitioning of the binary tree based on more than one depth allows, only a binary tree split and forms the same type of binary tree-based partition of the upper depth, this can be tolerated at lower depths. For example, if the binary tree based on the parent depths to form 2NxN division is carried out, even in the lower depth of the division of a binary tree-based 2NxN form can be carried out. Or, in the case of a binary tree-based Nx2N to form in the upper division depth is carried out, even in the lower depth of the division of a binary tree-based Nx2N shape can be allowed.
[118]
On the other hand, it is also possible to allow at lower depths, only a binary tree split and form different types of binary tree-based partition of the upper depth.
[119]
For a sequence, a slice, the coding tree units or coding unit, is a particular form of binary tree-based partition or the specific form of the division of the tree-based Access may be limited to use only. For example, it is possible to limit the allowed 2NxN or only division of a binary tree-based Nx2N form for coding tree unit. Partition type may be acceptable to code the information about the partition type that encoder or decoded groups may be defined based, not allowed, or allowed to form partition signaling on the bit stream.
[120]
5 is a view showing an example in which only a particular form of binary tree-based partition allowed. Figure 5 (a) represents an example that only a limited partitioning of the binary tree based Nx2N This allows, also (b) the 5 shows an example that only a limited partitioning of the binary tree based 2NxN This allowed. Indicating the division of the information, a binary tree based on the size / depth of the quad-tree or a binary tree-based adaptive that this information, quad split tree-based allow for instructing the division of the quad-tree basis to implement the partition coded block for information, a binary tree based on whether the division is the division of information or a binary tree based on the size / depth of the information, a binary tree-based coding block is divided is not permitted for the size / depth of the coded blocks which allow the vertical direction or include information about whether the horizontal direction may be used.
[121]
In addition, the coding tree unit or for a given coding unit, and a binary tree split / triple tree segmentation is permitted number, a binary tree splitting / triple tree, the number of depth or a binary tree splitting / triple tree divided allowed depth to be split is allowed to be and the like can be obtained. The information may be transmitted via the group decoding, the bitstream is coded in the coding tree unit or units of the coding unit.
[122]
For example, it is through the bit stream, the syntax 'max_binary_depth_idx_minus1' represents the maximum depth that a binary tree segmentation is allowed to be coded / decoded through the bit stream. In this case, max_binary_depth_idx_minus1 + 1 may point to a maximum depth which is a binary tree split allowed.
[123]
Referring to Figure 6, in the example illustrated, shown as a in Fig. 6, a binary tree split for the depth 2 encoding unit 3 and the depth of the coding units performed. Accordingly, the coding tree unit in the binary tree splitting is carried out a number of times (twice), representing the information, the coding tree unit in the binary tree splitting the maximum allowed depth information or coding tree unit indicating (depth 3) in the binary tree split the number of acceptable depth at least one of information indicating (2, depth 2, depth and 3) can be encoded / decoded by the bitstream.
[124]
As another example, a binary tree splitting / triple tree segmentation is permitted number, a binary tree splitting / triple tree splitting at least one of the number of depth or a binary tree splitting / triple tree divided allowed depth is allowed to be is by the sequence, picture or slice It can be obtained. For example, the information, is encoded in a sequence, picture or slice units may be transmitted on a bit stream. Or, the sequence, there may be a number of the picture or a binary tree splitting / triple tree partitioned allows the depth or a binary tree splitting / triple tree split acceptable depth for each slice is defined group. Accordingly, the first slice and the second slice, a binary tree / triple tree division number, a binary tree / triple tree segmentation is allowed up to a depth or a binary tree / triple tree splitting to at least one phase of the number of depth is allowed to be can. For example, in the first slice, while the one which is allowed only in a binary tree split depth, the second slice, a binary tree split can be tolerated in the two depths.
[125]
In yet another example one slice or a depth that is a binary tree / triple tree segmentation is permitted number, a binary tree / triple tree splitting the depth or a binary tree / triple tree split acceptable allows that with time the level identifier (TemporalID) of the picture It may be set differently at least one of a number. Here, the time the level identifier (TemporalID), the point (view), the space (spatial), time (temporal) or the image quality (quality) of the at least one scalability (Scalability) for identifying a plurality of layers each image having a will be.
[126]
3, the depth divided (split depth) k is the first coding block 300 may be divided into a plurality of second coding block based on the quad-tree (quad tree). For example, the second coding block 310 to 340 is a square block that has a half size of the width and height of the first coded block, dividing the depth of the second coded block can be increased to k + 1.
[127]
Dividing the depth k + 1 of the second coding block 310 may be divided into a plurality of third code block division depth of k + 2. Second dividing the coding block 310 can be carried out according to the division method by selectively using any one of the quart tree or a binary tree. Here, the division method may be determined based on at least one of information indicating a division of the divided information or a binary tree-based indicative of a quadtree-based.
[128]
The second coding block 310 two quarts case that is divided into a tree-based, the second coding block 310 is divided into four third coded block 310a having a half size of the width and height of the second coded block, the third coded block 310a dividing the depth may be increased to k + 2. On the other hand, in a case that is divided into second coding block 310 is a binary tree based on the second coding block 310 may be divided into two third block coding. At this time, each of the two third coded block is one half the size of the non-square blocks of the width and height of the second coded block, split-depth can be increased to k + 2. The second coded block according to the dividing direction may be determined in a non-square block in the transverse direction or the longitudinal direction, dividing direction may be determined based on information on whether the division of a binary tree-based portrait or landscape orientation.
[129]
On the other hand, the second coding block 310 may be determined by end-coded blocks which are no longer dividing, based on the quad-tree or a binary tree, in this case, the coding block may be used as a predicted block or a transform block.
[130]
Third coding block 310a of the second terminal or determined by the coding block dividing, like the coding block 310 and may be further divided based on the quad-tree or a binary tree.
[131]
On the other hand, the three coded blocks divided by a binary tree-based 310b are further based on a binary tree may be further divided into the coding blocks (310b-2) or a coded block (310b-3) in the horizontal direction in the vertical direction, the coding division depth of the block can be increased to k + 3. Alternatively, the third coded block 310b based on the binary tree further may be determined by non-dividing end-coded block (310b-1), In this case, the coding block (310b-1) can be used as a predicted block or a transform block can. However, the above-described segmentation process allows the division of information or a binary tree based on the size / depth of the information, a binary tree-based coding block is divided is allowed on the size / depth of the coded blocks allowed the division of the quad-tree based on the size / depth of the non-coded block may be performed in a limited based on at least one of information.
[132]
Size of the coding block can have, or are limited to a predetermined number, the size of the unit within the predetermined coding blocks may have a fixed value. For example, the size or the size of the coding block of the picture within the coded block sequences, can be limited to 256x256, 128x128 or 32x32. The information indicating the size of the sequence or the picture within the coding block may be signaled by a sequence header or picture header.
[133]
Division result based on the quad-tree and tree-by battery, the coding unit may ttil a rectangle or square of any size.
[134]
Depending on whether a coded block that is generated based on a quad-tree partition, was created based on the binary tree splitting or create a triple split tree based, it is also possible to limit the application of the conversion the skip (skip Transform).
[135]
Here, if the inverse transform is skipped for both horizontal and vertical directions of the coding block, but the reverse is performed in the horizontal and vertical directions of the coded block. In this case, by scaling the de-quantized residual coefficients to the group set value, it is possible to obtain the residual sample of the coding block.
[136]
Omitting the inverse transformation in the horizontal direction, the horizontal direction without performing an inverse transform and a vertical direction by means of performing the inverse transform using the DCT, DST and the like. At this time, the horizontal direction may be scaled to be performed.
[137]
Omitting the inversion in the vertical direction, the vertical direction is to not perform the reverse conversion, the horizontal direction means to perform the inverse transform using the DCT, DST and the like. At this time, the vertical direction may be scaled to be performed.
[138]
Specifically, it can be determined whether or not whether to use the reverse skipping techniques for the coded block according to the division in the form of coded blocks. For example, when be-coded block is generated from the division of a binary tree-based, may be restricted from using the reverse skipping techniques for the coding block. Accordingly, when the coded blocks be generated through division of a binary tree-based, by the inverse transform coded blocks, it is possible to obtain the residual sample of the coding block. In addition, the coded block can be cases be generated through division of a binary tree-based, the coding / decoding of information (e.g., transform_skip_flag) indicating whether the reverse is not skipped.
[139]
Alternatively, when the coded block is generated from the division of a binary tree-based, may be restricted to only allow inversion technique is a skip at least one of a horizontal direction or a vertical direction. Here, the direction in which the reverse skip techniques limit, or determined based on information decoded from the bitstream of the intra-prediction mode of the type or coding block size, the coding block of the coding block based on at least one can be determined adaptively have.
[140]
For example, if the coded block can be the width is greater than the height of the non-square blocks, and allows for reverse skipping technique only for the vertical direction, and to limit the reverse skipping techniques used for the horizontal direction. That is, when the coded block is 2NxN, but may be a horizontal direction of the block coding is performed by the inverse transform and performing the inverse transform in the vertical direction are optional.
[141]
On the other hand, it may be when the height is greater than the width of the non-square block coded block, skipping technique allows for inversion only in the horizontal direction, and limit the use reverse skipping techniques for the vertical direction. That is, when the coded block is Nx2N, in the vertical direction of the coded blocks are inverse transformation is performed, the horizontal direction may optionally be the inverse transformation performed.
[142]
If the above example, as opposed to the coding block with a width of larger non-square block than the height, allowing reverse skipping technique only for the horizontal direction and, when the coded block is a height of a large non-square block than the width, inversion only in the vertical direction It may be allowed to skip techniques.
[143]
Information indicating whether or not to skip an inversion of the information or the vertical direction on whether to skip the inverse transformation with respect to the horizontal direction can be signaled via the bitstream. In one example, the information indicating whether or not to skip a reverse conversion on the horizontal direction is a one-bit flag, 'hor_transform_skip_flag', information indicating whether or not to skip a reverse conversion on the vertical direction of the one-bit flag, 'ver_transform_skip_flag "there could be. Coder, according to the type of the coding block can be encoded at least one of a 'hor_transform_skip_flag' or 'ver_transform_skip_flag'. In addition, the decoder may determine whether use of the 'hor_transform_skip_flag' or 'ver_transform_skip_flag' at least, that the inverse transform in the horizontal direction or the vertical direction skipped.
[144]
According to the division in the form of coded blocks, with respect to any direction, it may be set so that the inverse transform is omitted. For example, when a coded block is generated from the division of a binary tree-based, may be omitted in the horizontal direction or the inverse transform in the vertical direction. That is, the coding block is a binary tree, if the the base generated by the division, a horizontal direction or a vertical direction with respect to, the coding block without encoding / decoding of the information that indicates whether a skip the inverse of the coding block (e.g., transform_skip_flag, hor_transform_skip_flag, ver_transform_skip_flag) one may decide to skip the inverse transform for at least one.
[145]
[146]
Coding block is a skip mode, and is coded using the intra prediction, at least one of the prediction method or inter-picture skipped. If the coding block is determined, it can be divided through the prediction of the coding block to determine the predicted block (Block Prediction). Prediction of the coding block dividing may be performed by a partition mode (Part_mode) showing a split in the form of coded blocks. Size or shape of the prediction block may be determined according to a partition mode of the coded block. For example, the size of the prediction block, which is determined according to the mode partition can have the same or a smaller value as the size of the coding block.
[147]
7 is a diagram illustrating a partition mode that can be applied to the coded block when the coded block is coded in inter picture prediction.
[148]
If the coding block coded by inter picture prediction, coding block, as shown in the example in shown in Figure 7, any of the eight partition mode can be applied.
[149]
If the coded blocks are coded with intra picture prediction, the coding block may be subject to a partition mode PART_2Nx2N or PART_NxN.
[150]
PART_NxN is applicable when the coded blocks having the minimum size. Here, the minimum size of the coding block can be defined based on the encoder and decoder. Alternatively, information on the minimum size of the coding block may be signaled through a bitstream. For example, the minimum size of the coding block is signaled through the slice header, and therefore, a minimum size of the coding block can be defined by each slice.
[151]
In general, the size of the prediction block may have a size of from 64x64 4x4. However, if the coded block coded by inter picture prediction, when performing motion compensation, to reduce the memory bandwidth (memory bandwidth), it is possible to prevent the prediction blocks have a 4x4 size.
[152]
[153]
8 is a flowchart illustrating the inter-prediction method according to an embodiment to which the present invention is applied.
[154]
8, it is possible to determine the motion information of the current block (S810). The motion information of the current block, may include at least one of inter-prediction direction, the reference picture index of motion vector or the current block, the current block of the current block.
[155]
The motion information of the current block may be obtained on the basis of at least one of motion information of neighboring blocks adjacent to the current block, or information that is signaled via the bitstream.
[156]
9 is a case where the merge mode applied to the current block, a diagram illustrating a process for deriving the motion information of the current block.
[157]
When the merge mode applied to the current block, it is possible to derive the spatial merge candidates from the spatially neighboring blocks of the current block (S910). Spatially neighboring blocks may include at least one of the blocks adjacent to the current top of the blocks, or the left corner of the current block (for example, at least one of the upper left corner, upper right corner, or bottom left corner). Here, the blocks adjacent to the division of the current block, may include at least one of a block neighboring a block or top right samples of the present block adjacent to the top of the center sample of the current block, a block adjacent on the left of the current block, a neighboring block at the left central sample of the current block, or may include at least one of the neighboring blocks in the lower left block of the current sample.
[158]
Spatially neighboring blocks may further include non-adjacent blocks to the current block. For example, a block which is located in the same vertical line and the current block is the top, the upper right corner or a block adjacent to the upper left corner of the left of the current block, a block which is located on the same horizontal line and the block adjacent to the top of the lower left corner or the left-hand corner or block may be used to spatially neighboring blocks are positioned on the same diagonal are the block adjacent the corners of the block. If a concrete example, the adjacent block adjacent to the current block that can not be used as the remaining candidates can be used to non-adjacent blocks to the current block to the remaining candidates for the current block.
[159]
The motion information of the spatial merge candidates, can be set equal to the motion information of the spatial neighboring blocks.
[160]
Can derive the time remaining from the time the candidate neighboring blocks of the current block (S920). Temporally neighboring blocks, may refer to the co-located block (co-located block, Colo K lactide block) included in the Colo K suited picture. Colo K suited picture is the current picture has a different temporal order (Picture Order Count, POC) that contains the current block. Colo Kate picture may be determined by the index of crystal or a picture having an index defined groups within the reference picture list, and signaling from the bitstream. Temporally neighboring blocks, and can be determined in a block adjacent to the present block and Colo K sited within the same location and with the block in any block of the picture size or the block having the same position and size as the current block. In one embodiment, at least one of colo K lactide block including the central coordinates of the picture block which has the same position and size as in the current block or a block adjacent to the lower right boundary of the block can be determined as temporal neighboring blocks.
[161]
Motion information on a time remaining candidates, may be determined based on the motion information of temporally neighboring blocks. For example, motion vector of the temporal merge candidates, may be determined based on the motion vector of the temporally neighboring blocks. In addition, the inter-prediction in the temporal direction, the remaining candidates can be set equal to the inter-prediction in the temporal direction neighboring blocks. However, a reference picture index for the time remaining candidates, may have a fixed value. For example, a reference picture index for the time remaining candidates may be set to '0'.
[162]
Then, it is possible to generate a merge candidate list including the spatial and temporal merge candidates remaining candidate (S930). If, before long, if the number of remaining candidates included in the candidate list are less than the maximum number of remaining candidate, the remaining candidate with the remaining two or more combining the candidate combined merge candidate or (0,0) motion vector (zero motion vector) is It may be included in the merge candidate list.
[163]
If the remaining candidate list is generated on the basis of the remaining candidate index, it is possible to specify at least one of the remaining candidates included in the merge candidate list (S940).
[164]
The motion information of the current block, may be set equal to the motion information on the remaining candidate specified by the merge candidate indexes (S950). For example, by a merge candidate index, in the case where the spatial merge candidate is selected, the motion information of the current block, may be set equal to the motion information of the spatial neighboring blocks. Or, in the case by the remaining candidate index, time remaining candidate is selected, the motion information of the current block, may be set equal to the motion information of temporally neighboring blocks.
[165]
10 is a case where the mode for the current block AMVP apply a diagram illustrating a process for deriving the motion information of the current block.
[166]
When the mode AMVP applied to a current block, from the bit stream it can be decoded at least one of the current inter-prediction direction, or a reference picture index for the block (S1010). That is, when the mode AMVP applied, at least one of the current inter-prediction direction, or a reference picture index for the block may be determined based on the encoded information in the bit stream.
[167]
Based on the motion vectors of spatially neighboring blocks of the current block, it is possible to determine the spatial motion vector candidates (S1020). Spatial motion vector candidates, may include at least one of the second spatial motion vector candidates derived from the first spatial motion vector candidates and the left neighboring block of the current block is derived from a top neighboring block of the current block. Here, the upper adjacent block and including at least one block adjacent the top or the upper right corner of the current block and the left neighboring block to the current block is to include at least one of a block adjacent to the left side or the lower left corner of the current block can. A block adjacent to the upper left corner of the current block, may be treated in the top of the neighboring block, or may be treated as the left neighboring block.
[168]
If the reference picture is present between the current block and spatially neighboring blocks a different spatial motion vector may be obtained by scaling the motion vectors of spatially neighboring blocks.
[169]
On the basis of a motion vector of a temporally adjacent block of the current block, it is possible to determine the temporal motion vector candidate (S1030). If the reference picture is present between the current block and temporally adjacent blocks are different, the temporal motion vector may be obtained by scaling the motion vector of the temporally neighboring blocks.
[170]
It may generate a list of candidate motion vectors including a motion vector candidate spatial and temporal motion vector candidates (S1040).
[171]
When the motion vector candidate list is generated, on the basis of at least one of a motion vector candidate list in which specific information, it is possible to specify at least one of the candidate motion vectors included in the motion vector candidate list (S1050).
[172]
The motion vector candidate specified by the information, set to the current block in the motion vector prediction value and the combined motion vector difference value of the motion vector predicted value, it is possible to obtain a motion vector of a current block (S1060). At this time, the motion vector difference values, can be parsed by the bit stream.
[173]
When the current block in the motion information is obtained, based on the obtained motion information, it is possible to perform motion compensation of the current block (S820). Specifically, on the basis of the inter-prediction direction of a current block, the reference picture index and the motion vector, the motion compensation may be performed for the current block.
[174]
It may perform motion compensation to sub-block units. Whether to perform the motion compensation to sub-block units is checked, it may be determined based on at least one of the current block size, the shape or image resolution. For example, when the size of the coding block is greater than a previously defined size, a certain coding block divided into sub-blocks of size, it is possible to perform motion compensation to sub-block units. Or, the information indicating whether the motion compensation performed in units of sub-block is coded is decided decoding may be transmitted. The information may be transmitted on a block-by-block basis (e.g., a coding unit coding tree or unit) or slice units.
[175]
When set to the motion compensation is performed in units of sub-block, the current block may be divided into a predetermined size / shape of the sub-blocks. Here, the size and shape of the sub-blocks may be defined based on the encoder and decoder. In one embodiment, it can be a motion compensation performed in units of sub-blocks of 4x4 size. Alternatively, information indicating the size or shape of a sub-block has been coded is decoded group may be transmitted.
[176]
ATMVP has (Alternative Temporal Motion Vector Prediction) or (Spatial Temporal Motion Vector Prediction) STMVP method can be used to derive the motion information in sub-block units.
[177]
11 is a view for explaining a method of inducing a motion vector on the basis of the ATMVP in sub-block units.
[178]
ATMVP is a method of determining a reference picture within the corresponding block (corresponding block) corresponding to the current block, and acquiring the motion information on each sub-block by using the determined corresponding block. Reference picture and a corresponding block, may be derived based on the motion information of neighboring blocks. In one embodiment, using the motion information of the remaining first candidate included in the list of remaining candidate motion information, or the current block of the spatial neighborhood of a particular block location, a determination of the reference picture and a corresponding block. Reference picture and the motion vector and the reference neighbor block is used to determine the corresponding block picture index can be defined as respective temporal motion vector and the source picture index. On the basis of the time vector and the source picture index, determine the corresponding block of the current block, it is possible to divide the determined corresponding block in the same sub-block and the current block. And, it is possible to derive the motion information of the corresponding block within the sub-block to the current block corresponding to the sub-block, the motion information of the sub-blocks.
[179]
12 is a view for explaining a method of inducing a motion vector on the basis of the STMVP in sub-block units.
[180]
STMVP is a method for obtaining the motion information using a spatial and temporal neighboring blocks adjacent blocks of each sub-block. Specifically, using at least one of motion information from at least one of spatially neighboring blocks adjacent to the upper and temporal neighboring blocks of spatially neighboring blocks or sub-blocks adjacent to the left side of the sub-block derived motion vectors and the induction of sub-blocks and, it is possible to perform motion compensation of sub-blocks.
[181]
For example, in the example shown in Figure 12, the sub-block A motion vector is available from neighboring blocks to the top of the sub-blocks A c, temporally neighboring blocks in the block b and the sub-block adjacent to the left side of the sub-blocks A It may be derived based on at least one motion vector. Specifically, the motion vector of the sub-block A, block c, block b, and or derived in temporally neighboring blocks based on an average of the available motion vectors of the block c, block b, and any one available in the temporal neighboring blocks is a sub-block It can be derived by the motion vector a.
[182]
If STMVP is used there is a sub-block by the motion compensation can be carried out according to a predetermined order. For example, it can be in the illustrated example, the sub-block A, the order of motion compensation of B, C, D according to the raster scanning sequence performed in FIG.
[183]
Updating the sample by the motion vector, and may use the updated motion vector to perform motion compensation. Specifically, the optical flow (Optical Flow) shows a method of estimating a motion vector on a pixel-by-pixel basis. Specifically, the solution of equations consisting of the x-gradient (gradient), y-axis and a gradient direction of the time axis in the direction of the gradient direction can be derived by the motion vector of the pixels.
[184]
Equation 1 shows an example for deriving the motion vectors of the pixels.
[185]
[Formula 1]
[186]
In Equation 1, I x is a sample I (x, y, t) a denotes the gradient value of the partial derivatives in the x-axis direction, I y is I (x, y, t) the gradient value of a partial differential in the y-axis direction refers to, I t represents the gradient value of the partial derivative of I (x, y, t) in the time axis direction. In addition, V x is the x-axis component of the motion vector, V y represents the y-axis component of the motion vector.
[187]
Bidirectional optical flow (Bi-directional Optical Flow) is, after using the block motion vector to perform motion compensation by using the optical flow indicates the way to obtain a motion vector in pixels (or adjusted (refinement)). Specifically, the two-way optical flow represents a motion vector of the sample adjustment unit is performed on a block-by-block basis motion compensation for bi-directional prediction. Bars in the decoder can derive the motion of the adjustment sample-vector in the same manner as in the encoder, it is not necessary to signal the motion vector adjustment.
[188]
13 is a view for explaining the two-way optical flow.
[189]
As with the example in shown in Figure 13, the reference picture for the current block 0 (Ref 0 ) and the reference picture 1 (Ref 1 after inducing a motion vector for), based on the movement adjustment vector for each sample, see the motion vector for the motion vector and the reference picture for the picture 1 0 may be updated.
[190]
As a result, when the two-way optical flow applied, by applying the correction value based on the movement adjustment vector to the motion-compensated block a two-way prediction on the basis of, a final prediction block may be obtained. Equation 2 shows the obtained sample prediction method using the two-way optical flow.
[191]
[Formula 2]
[192]
In Equation 2, I (k) is a reference picture Lk (k is 0 or 1) represents the motion compensation image generated using, ∂I (k) / ∂x and ∂I (k) / ∂y are each I (k) represents the horizontal and vertical gradient components. In addition, t 0 denotes a distance between the current picture and the reference picture 0 (Ref0), t 1 represents the distance between the current picture and the reference picture 1 (Ref1). That is, t 0 is the output order differential value of the output sequence of (POC) and the reference picture is 0 (i.e., t of the current picture 0 = POC (current) -POC (Ref 0 represents a)), t 1 is the output of the current picture the difference value of the order and the output order of the reference pictures 1 (i.e., t 1 = POC (Ref 1 ) -POC (current)) shows.
[193]
Bidirectional optical flow may be applied to a bidirectional prediction block is applied. However, a reference picture when a zero, and a reference picture 1, the same time direction (e. G., Reference picture 0 and either the reference picture 1 are all past pictures, reference picture 0 and the reference picture if one is all future picture), two-way optical flow is a reference if the picture 0 and the reference picture 1 are not the same (that is, t 0 ≠ t 1 if), if the motion vector for the reference picture 0 and the reference picture 1 non-zero (that is, (MVx 0 , MVy 0 , MVx 1 , MVy 1 ≠ 0, if in) or if the motion vector is to meet at least one of a case that is proportional to the distance between the current picture and the reference picture (MVx 0 / MVx 1 = MVy 0 / MVy 1 = -t 0 / t 1In the case of the) it can be applied to the current block. That is, the two-way in a case where the reference picture 0 and the POC of the reference picture 1 all satisfied the present case the picture size, or the reference picture 0 and the reference POC of the picture 1, all smaller than the current picture, at least one of the listed conditions the optical flow may be applied.
[194]
Or, the information indicating whether to apply the two-way optical flow is coded can be decoded transmission group.
[195]
After the motion compensation of the current block is performed, and updating the prediction sample, or by a peripheral motion information you may also want to re-motion-compensated (S830). Will hereinafter be described in detail the motion compensation method applied secondarily to the motion compensation is performed block.
[196]
Using the motion vectors of the neighboring blocks may be performed again in the motion-compensated motion compensation is performed block. As nested to perform again the motion compensation in the motion compensation is performed block motion-compensated block (Overlapped Block Motion Compensation, OBMC) can be defined. The block performs motion compensation can be a coding block. Alternatively, if a sub-block unit of motion compensation is performed, it is possible to determine each sub-block in a block performing the motion compensation. For example, submerged mode, using an affine mode or FRUC (-Frame Rate Up Conversion) If the blocks are coded by coding the sub-block unit, it can be thought of each sub-block by block motion compensation has been performed.
[197]
Whether to perform the overlapped block motion compensation, the information about whether or not can be signaled via the bitstream. For example, a flag indicating whether a coding block basis, perform the overlapped block motion compensation can be signaled.
[198]
Alternatively, whether or not can be determined whether to perform, the overlap block motion compensation according to the motion compensation technique is applied to the coded block. Here, motion compensation techniques can include, a skip mode, the remaining mode, AMVP mode, affine FRUC mode or modes.
[199]
An overlapping block motion compensation can be performed in sub-block units. Shape or size of the nested block motion compensation applied to the sub-block may be a group defined by the encoder and decoder, may be induced by the same rules in the encoder and decoder. Alternatively, it is also possible that the motion-compensated block overlap with the bit stream to signal information indicating the type or size of the sub-block is applied. In one embodiment, which is an overlapped block motion compensation is carried out sub-block may be a line that represents the square blocks, a given row or given column of the 4x4 size. For convenience of explanation, the sub-block subject to the application of the overlapping block motion compensation will be referred to as "the current sub-block."
[200]
An overlapping block motion compensation may be performed using the current sub-block motion vector and the motion vector of the neighboring sub-blocks adjacent to the current sub-block.
[201]
Figure 14 illustrates an example in which the overlapped block motion compensation using the motion vector of the neighboring block do.
[202]
An overlapping block motion compensation may be applied to the boundary of the current block. Specifically, as with the example in shown in 14 (a), there is a current block of the left boundary or overlap for the sub-block located adjacent to the upper boundary block motion compensation may be applied. An overlapping block motion compensation may be performed using neighboring sub-blocks having a motion vector different from the motion vector of the current sub-block. For example, as shown in the example in shown in (a) of Fig. 14, a sub-block adjacent to the boundary of the current block, by using at least one available in the sub-block adjacent to the sub-block or the top adjacent to the left overlapping block motion It may perform compensation. In (a) of Fig. 14, a sub-block adjacent to the upper boundary of the current block is adapted to perform a block motion compensation is superposed with the upper adjacent block, a sub-block adjacent to the left boundary of the current block with the left adjacent block and it was shown to perform the overlapped block motion compensation. In addition, (a) the sub-block adjacent to the upper left corner of the current block 14 is illustrated as performing a block motion compensation to all the overlap with the left adjacent block and a top neighboring block.
[203]
Alternatively, an overlapped block motion compensation, may be applied to all sub-blocks within the current block. Specifically, as shown in the example shown in (b) of Figure 14, there is an overlapping block motion compensation to all sub-blocks within the current block can be performed. An overlapping block motion compensation may be performed using neighboring sub-blocks having a motion vector different from the motion vector of the current sub-block. For example, as shown in the example in shown in (b) of Figure 14, the current block within the sub-block is available from adjacent the left sub-block, adjacent to the right sub-blocks, sub-blocks adjacent to the sub-block or a lower end adjacent the top It may perform an overlap block motion compensation using at least one.
[204]
If the overlap block motion compensation is applied, a final prediction block of the current sub-block, may be derived based on a weighted sum of the current sub-block and adjacent sub-blocks. For example, a predicted block derived based on the motion vector of the current sub-block P C , and defined as, the predicted block derived based on the motion vector of the neighboring sub-blocks P N (N is a neighboring block located, for example, above , if defined as a represents a bottom, left, right), a final prediction block of the current subblock, P C and P N may be derived based on a weighted sum of.
[205]
P C and P N weights to be applied to may have the same value. Or, P C is weight applied to P N may be greater than the weight applied to. For example, P C and P N weights to be applied to is {3/4, 1/4}, {7/8, 1/8}, {15/16, 1/16}, or {31/32, 1 / 32} or the like.
[206]
The information for determining the weight applied to each of the predicted block can be signaled via the bitstream. For example, the information may be an index information indicating one of a plurality of weight candidates. Or, the weight applied to each of the prediction block may be determined adaptively according to the number of the motion compensation method performed or available neighboring blocks in the current sub-block.
[207]
[208]
Bidirectional optical flow is to store the bar, the sample-specific motion vector that is applied to the sample in the memory unit. Where, however, the sample-specific motion vectors continue to be stored in the memory, can cause the problem that the amount of the buffer memory increases.
[209]
For example, it is possible to apply a two-way optical when applying the flow as the superposition of the motion compensation block, motion-compensated bi-directional optical since the overlapped block motion compensation is applied to the flow in the execution block to the motion compensation is performed block. However, during the overlap block motion compensation to apply the two-way optical flow, and to continue to store the sample by the motion vector, and therefore, may cause a problem of enlarging the amount of memory buffer.
[210]
In order to solve the above problem, in the overlapped block motion compensation is applied to blocks can again consider how to apply the two-way optical flow. In one embodiment, it can be considered a method of, as in the example shown in Figure 15, perform after performing an overlap block motion compensation, two-way optical flow again. In this case, it is not necessary to continue to hold until the first two-way optical flow the overlap block motion compensation by the motion vector obtained through the sample is performed, it is possible to reduce the amount of memory buffer.
[211]
Or it may be limited so that the two-way optical flow are not applicable as long as the two-way optical flow applied.
[212]
[213]
According to one embodiment of the present invention it may be to reduce the amount of memory buffer, applying the two-way optical flow in a predetermined sub-block units. For the application of two-way optical flow in sub-block units of the sub-block motion vector is adjusted, it can be obtained based on the movement adjustment vector (or gradient values) for all samples belonging to a sub-block. Specifically, the sub-block motion vector is adjusted, it can be derived on the basis of all samples of the adjustment movement vector (or gradient values) mean, mode or the maximum value belonging to the sub-block. Equation (3) illustrates a method for obtaining a predicted sample using samples of the motion vector adjusting the mean value belonging to the sub-blocks of size NxM. Here, N, or M may be a value equal to 1 or larger integer. N and M may be the same value or may be a value different.
[214]
[Formula 3]
[215]
Alternatively, it is also possible to obtain a sub-block within a particular sample or a specific adjustment of the motion vector sample (or gradient values) for adjustment based on the motion vector of the sub-block. Specifically, on the basis of the sub-block within the particular adjustment of the motion vector sample mean, mode or the maximum value, it is possible to obtain the motion vector of the sub-block adjustment. Here, the specific sample to be used to derive the motion vectors are adjusted, it may represent a particular column or row in a particular sub-block may indicate a sub-block within a particular range. Alternatively, it is also possible to derive a motion vector by adjusting the samples adjacent to the samples or the corner adjacent to the boundary in a sub-block.
[216]
16 is a diagram showing samples in a particular location to be used to derive the motion vector adjustment.
[217]
As with the example in shown in Figure 16, blocks within the sample (TL) adjacent to the upper left corner, the sample (BL), the sample (TR) adjacent to the top right hand corner, the sample is adjacent to the lower right corner is adjacent to the bottom left corner (BR ) and at least one of the central sample (center) located in the block can be used to derive the motion vector adjustment.
[218]
For example, it is possible to set the sample in any of the optical flow motion obtained by using the vector of the specific position shown in Figure 16 to the optical flow motion vectors of the NxM size sub-blocks.
[219]
Alternatively, the samples of the at least two sample average value a gradient optical flow motion vectors obtained by the use of the specific position shown in Figure 16 can set the optical flow motion vectors of the NxM block. For example, it is possible to also of the particular sample shown in FIG. 16 by using the central sample the four corners of the sample motion vector adjusting the average value excluding the (center) inducing optical flow motion vectors of the NxM block.
[220]
The number of specific samples used to derive the movement adjustment vector may be two or one, or more. The number or location of the particular sample used to derive the movement adjustment vector may be a promising group in the encoder and decoder, it may be determined variably by the size, shape or motion vector of the current block (or sub-blocks).
[221]
Depending on whether to perform a size, resolution, or the nested blocks of motion-compensated video coding of a block can be varied to determine the block that is a two-way optical flow applied. For example, if less than the size of the coding block 64x64, while the application of two-way optical flow for the unit block of 8x8 size, the size of the coding block is smaller than 64x64, applicable to two-way optical flow for the unit block of a 4x4 size can.
[222]
Alternatively, the resolution of the image is below 720p, when the OBMC is applied to the motion compensation is performed block while applying the two-way optical flow on a block-by-block basis of a 2x2 size, the resolution of the image greater than or equal to 720p, the motion compensation is performed If it does not, OBMC is applied to the block, it is possible to apply a two-way optical flow on a block-by-block basis of a 4x4 size.
[223]
The unit block serving as a bidirectional optical flow applies not necessarily be square. For example, when the coded blocks in the non-square shape, also the unit block can be set to a non-square shape. In the example, 2x16 or coded block of 16x2 may form a bi-directional optical flow to be applied to the 2x8, 8x2 block units. Alternatively, it is also possible to set the at least one sample line (e.g., sample or line of samples) as the unit block.
[224]
For the application of two-way optical flow on a block-by-block basis, there is an advantage that even after as shown in the example shown in Fig. 17, perform the overlapped block motion compensation do not need to re-perform the two-way optical flow.
[225]
[226]
The above-described embodiments, but is described on the basis of a series of steps or flow chart, which is not necessarily limited to a time-series order of the invention, it may be performed as needed at the same time or performed in a different order. Further, the components that make up the block diagram in the above-described embodiment (e.g., the units, modules, etc.) each of which may be implemented as a hardware device or software, as a hardware device or software in combination with a plurality of components It may be implemented. The described embodiments are implemented in the form of program instructions that may be performed through various computer components may be written in a computer-readable recording medium. The computer readable recording media may also include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of the computer readable recording medium, such as hard disks, floppy disks, and magnetic tape media, CD-ROM, such as an optical recording medium, flop tikeol disk (floptical disk) such as DVD magneto-optical medium (magneto-optical storing program instructions, such as media), and ROM, RAM, flash memory, hardware devices that are specially configured to, perform. The hardware devices may be configured to act as one or more software modules in order to perform the process according to the invention, and vice versa.
Industrial Applicability
[227]
The present invention can be applied to electronic devices capable of encoding / decoding an image.
Claims
[Claim 1]Obtaining a motion vector of a current block; When the two-way optical flow applied to the current block, updating the motion vector; And a method for decoding an image, characterized in that by using the updated motion vector, which comprising the step of performing motion compensation to the current block, a sub-block within the current block is a predetermined size of the bi-directional optical flow applied .
[Claim 2]
The method of claim 1, further comprising: updating the motion vector, comprising: obtaining a motion vector of the current block to adjust the sub-blocks; And, an image decoding method using the motion vector adjustment, comprising the step of updating the motion vector.
[Claim 3]
The method of claim 2, wherein the motion vector is adjusted, the image decoding method characterized in that the pickup on the basis of samples of the motion vector adjusting the average value contained in said sub-block.
[Claim 4]
The method of claim 2, wherein the motion vector is adjusted, the image decoding method characterized in that the pickup based on a particular sample location within the sub-blocks.
[Claim 5]
The method of claim 4, wherein the specific position samples, the image decoding method comprising at least one of the sample at the center of the sub-sample block or the sub-block located in the corners of.
[Claim 6]
The method of claim 2, wherein the size or shape of the sub-block, the image decoding method characterized in that it is determined on the basis of at least one of the size or type of the current block.
[Claim 7]
The method of claim 2, wherein, the image decoding method size or form of the sub-blocks are characterized in that which is determined on the basis of whether the block motion compensation is performed nested in the current block is the resolution or the motion compensation of an image is performed.
[Claim 8]
According to claim 1, wherein said motion compensation is performed a comprising the step of applying the block motion compensation is superposed on the current block and the overlapped block motion compensation is applied to the sub-block within the current block is a predetermined size, the image decoding method according to claim.
[Claim 9]
Obtaining a motion vector of a current block; When the two-way optical flow applied to the current block, updating the motion vector; And, a video encoding method using the updated motion vector, comprising the step of performing motion compensation to the current block, a sub-block within the current block is a predetermined size, characterized in that the two-way optical flow applied .
[Claim 10]
10. The method of claim 9, wherein the step of updating the motion vector, comprising: obtaining a motion vector of the current block to adjust the sub-blocks; And, a video encoding method using the motion vector adjustment, comprising the step of updating the motion vector.
[Claim 11]
11. The method of claim 10, wherein the motion vector is adjusted, the image encoding method, characterized in that is obtained based on the samples of the motion vector adjusting the average value contained in said sub-block.
[Claim 12]
11. The method of claim 10, wherein the motion vector is adjusted, the image encoding method, characterized in that is obtained based on a particular sample location within the sub-blocks.
[Claim 13]
The method of claim 12, wherein the particular sample position, the image encoding method including at least one of the sample at the center of the sub-sample block or the sub-block located in the corners of.
[Claim 14]
Now with the case obtaining a block diagram of a motion vector, that is a two-way optical flow applied to the current block, update the motion vectors, and using the updated motion vector, inter-prediction unit that performs motion compensation to the current block but, the image decoding device, a sub-block of a predetermined size of the current block, characterized in that the two-way optical flow applied.
[Claim 15]
Now with the case obtaining a block diagram of a motion vector, that is a two-way optical flow applied to the current block, update the motion vectors, and using the updated motion vector, inter-prediction unit that performs motion compensation to the current block but, the image encoding device, a sub-block of a predetermined size of the current block, characterized in that the two-way optical flow applied.
| # | Name | Date |
|---|---|---|
| 1 | 201917050300.pdf | 2019-12-05 |
| 2 | 201917050300-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [05-12-2019(online)].pdf | 2019-12-05 |
| 3 | 201917050300-STATEMENT OF UNDERTAKING (FORM 3) [05-12-2019(online)].pdf | 2019-12-05 |
| 4 | 201917050300-REQUEST FOR EXAMINATION (FORM-18) [05-12-2019(online)].pdf | 2019-12-05 |
| 5 | 201917050300-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105) [05-12-2019(online)].pdf | 2019-12-05 |
| 6 | 201917050300-FORM 18 [05-12-2019(online)].pdf | 2019-12-05 |
| 7 | 201917050300-FORM 1 [05-12-2019(online)].pdf | 2019-12-05 |
| 8 | 201917050300-DRAWINGS [05-12-2019(online)].pdf | 2019-12-05 |
| 9 | 201917050300-DECLARATION OF INVENTORSHIP (FORM 5) [05-12-2019(online)].pdf | 2019-12-05 |
| 10 | 201917050300-COMPLETE SPECIFICATION [05-12-2019(online)].pdf | 2019-12-05 |
| 11 | 201917050300-Proof of Right (MANDATORY) [13-12-2019(online)].pdf | 2019-12-13 |
| 12 | 201917050300-FORM-26 [13-12-2019(online)].pdf | 2019-12-13 |
| 13 | abstract.jpg | 2019-12-21 |
| 14 | 201917050300-FORM 3 [29-04-2020(online)].pdf | 2020-04-29 |
| 15 | 201917050300-FORM 3 [08-07-2021(online)].pdf | 2021-07-08 |
| 16 | 201917050300-OTHERS [20-07-2021(online)].pdf | 2021-07-20 |
| 17 | 201917050300-FER_SER_REPLY [20-07-2021(online)].pdf | 2021-07-20 |
| 18 | 201917050300-DRAWING [20-07-2021(online)].pdf | 2021-07-20 |
| 19 | 201917050300-CORRESPONDENCE [20-07-2021(online)].pdf | 2021-07-20 |
| 20 | 201917050300-CLAIMS [20-07-2021(online)].pdf | 2021-07-20 |
| 21 | 201917050300-FER.pdf | 2021-10-18 |
| 22 | 201917050300-PatentCertificate30-10-2025.pdf | 2025-10-30 |
| 23 | 201917050300-IntimationOfGrant30-10-2025.pdf | 2025-10-30 |
| 1 | searchstrategyE_08-03-2021.pdf |