WO2011149292A2 - Method and apparatus for processing video signals - Google Patents
Method and apparatus for processing video signals Download PDFInfo
- Publication number
- WO2011149292A2 WO2011149292A2 PCT/KR2011/003877 KR2011003877W WO2011149292A2 WO 2011149292 A2 WO2011149292 A2 WO 2011149292A2 KR 2011003877 W KR2011003877 W KR 2011003877W WO 2011149292 A2 WO2011149292 A2 WO 2011149292A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- component
- motion vector
- current partition
- partition
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
Definitions
- the present invention relates to a method and apparatus for processing a video signal, and more particularly, to a video signal processing method and apparatus for encoding or decoding a video signal.
- Compression coding refers to a series of signal processing techniques for transmitting digitized information through a communication line or for storing in a form suitable for a storage medium.
- the object of compression encoding includes objects such as voice, video, text, and the like.
- a technique of performing compression encoding on an image is called video image compression.
- Compression coding on a video signal is performed by removing redundant information in consideration of spatial correlation, temporal correlation, and stochastic correlation.
- inter-screen prediction obtains a motion vector prediction value of a current partition using motion information of neighboring partitions, obtains a prediction value of the current partition through a motion vector obtained by adding the motion vector difference value, and then obtains a current partition. You can restore the pixel value of.
- the image having a lot of horizontal motion change, the image having a lot of vertical motion change, rotated or enlarged / reduced There may be various kinds of images such as images.
- the present invention has been devised to solve the above requirements, and in the motion vector prediction of the current partition, first processing any one component of the motion vector x component and y component as a first component, and first processing the first It is an object of the present invention to provide a method for treating the remaining second component by using the component.
- an object of the present invention is to provide a method for obtaining a motion vector first component prediction value of a current partition using a motion vector first component of neighboring partitions.
- Another object of the present invention is to provide a method for determining a first component to be processed first among the motion vector x component and y component of the current partition in order to adaptively increase the accuracy of image prediction.
- the present invention is to improve the accuracy of motion vector prediction by obtaining the motion vector prediction value of the current partition in consideration of the partition shape of the current partition and the neighbor partition in the motion vector prediction of the partition on which the geometric partition is performed. Have.
- the present invention provides an affine transformation using motion vectors of neighboring partitions to predict the motion vector of the current partition, thereby improving the accuracy of motion vector prediction for a particular motion situation.
- the video signal processing method by varying the method of adaptively obtaining the motion vector prediction value according to various image characteristics, it is possible to increase the accuracy of motion vector prediction and to reduce the amount of information transmitted for the reconstruction of the image signal. Will be.
- the motion vector prediction method can be determined efficiently and adaptively depending on whether the current video is a video with a lot of motion change in the horizontal direction, a video with a lot of motion change in the vertical direction, or a video that is rotated or enlarged / reduced. Can be.
- motion vector prediction can be performed using the motion vector scaled value, thereby extending the candidate group for motion vector prediction. More accurate predictions are possible.
- the decoder directly derives the flag without transmitting the flag value, thereby increasing the accuracy of motion vector prediction and minimizing the amount of transmission information.
- FIG. 1 is a schematic block diagram of a video signal encoder apparatus according to an embodiment of the present invention.
- FIG. 2 is a schematic block diagram of a video signal decoder device according to an embodiment of the present invention.
- FIG. 3 is a diagram illustrating an example of splitting a coding unit according to an embodiment of the present invention.
- FIG. 4 is a diagram illustrating an embodiment of a method for hierarchically representing the partition structure of FIG. 3.
- FIG. 5 is a diagram illustrating a partitioning form into various sub-prediction units within a prediction unit according to an embodiment of the present invention.
- FIG. 6 is a diagram illustrating a form obtained by dividing a prediction unit geometrically.
- FIG. 8 is a diagram illustrating a temporal neighboring partition of the current partition.
- FIG. 9 is a diagram illustrating a method of scaling a motion vector according to a temporal distance between reference pictures.
- FIG. 10 is a flowchart illustrating a process of obtaining a motion vector first component and a motion vector second component of a current partition according to an embodiment of the present invention.
- FIG. 11 is a flowchart illustrating a specific embodiment of obtaining a motion vector first component prediction value of a current partition according to an embodiment of the present invention.
- FIG. 12 is a flowchart illustrating a specific embodiment of obtaining a motion vector second component prediction value of a current partition according to an embodiment of the present invention.
- FIG. 13 and 14 show examples of geometrically divided partitions and their neighboring partitions.
- FIG. 16 illustrates center coordinates of current and neighboring partitions for obtaining an affine motion vector and center coordinates moved through the motion vector.
- a method of processing a video signal including: obtaining a motion vector first component prediction value of a current partition using motion vector first components of neighboring partitions; Obtaining a motion vector first component of the current partition using the motion vector first component prediction value of the current partition; Obtaining a motion vector second component prediction value of the current partition based on the motion vector first component of the current partition; Obtaining a motion vector second component of the current partition using the motion vector second component prediction value of the current partition; Obtaining a prediction value of a current partition using a motion vector first component and a second component of the current partition; And reconstructing pixel values of the current partition by using the predicted value of the current partition, wherein the first component is a component to be first decoded among the x component and the y component of the motion vector. It is characterized in that the remaining one component after the decoding is performed after the first component.
- the obtaining of the motion vector first component prediction value of the current partition may be obtained by using motion vector first components of neighboring partitions having the same reference picture as the current partition, but there is no neighboring partition having the same reference picture.
- the median value of the motion vector first components of the neighbor partitions may be obtained as the motion vector first component prediction value of the current partition.
- the motion vector first component prediction value of the current partition may be obtained through the median of the scaled motion vector first component of the neighbor partitions.
- the obtaining of the motion vector second component prediction value of the current partition may include: obtaining a neighbor partition having a motion vector first component whose minimum value of the difference with the motion vector first component of the current partition is minimum; A motion vector second component prediction value of the current partition may be obtained using the motion vector second component of the neighbor partition.
- the method may further include determining a first component of the motion vector x component and y component of the current partition to be decoded first. can do.
- the determining of the first component may be obtained through the transmitted flag value.
- an average value of absolute values of the motion vector x component and y component of the previous frame may be obtained, and a component having a smaller size may be determined as the first component.
- an average value of absolute values of the motion vector x and y components of neighboring partitions of the current partition may be obtained, and a component having a smaller size may be determined as the first component.
- the corresponding component when there is a component having one valid value among the motion vector x component and y component of neighboring partitions of the current partition, the corresponding component may be determined as the first component.
- Coding can be interpreted as encoding or decoding in some cases, and information is a term that includes values, parameters, coefficients, elements, and the like. May be interpreted otherwise, the present invention is not limited thereto.
- 'Unit' is used to mean a basic unit of image processing or a specific position of an image, and in some cases, may be used interchangeably with terms such as 'block', 'partition' or 'region'.
- a unit may be used as a concept including a coding unit, a prediction unit, and a transform unit.
- the encoding apparatus 100 of the present invention is largely composed of a transformer 110, a quantizer 115, an inverse quantizer 120, an inverse transformer 125, a filter 130, and a predictor ( 150 and the entropy coding unit 160.
- the converter 110 obtains a transform coefficient value by converting a pixel value of the input video signal.
- Discrete Cosine Transform DCT
- Wavelet Transform DCT
- the discrete cosine transform divides the input image signal into blocks having a predetermined size and performs the conversion.
- the coding efficiency may vary depending on the distribution and the characteristics of the values in the transform domain.
- the quantization unit 115 quantizes the transform coefficient value output from the transform unit 110.
- the inverse quantization unit 120 inverse quantizes the transform coefficient value, and the inverse transform unit 125 restores the original pixel value by using the inverse quantized transform coefficient value.
- the filtering unit 130 performs a filtering operation for improving the quality of the reconstructed image.
- a deblocking filter and an adaptive loop filter may be included.
- the filtered image is stored in the storage unit 156 for output or use as a reference image.
- a method of predicting an image by using an already coded region and adding a residual value between the original image and the predicted image to a reconstructed image is used instead of coding the image signal as it is.
- the intra predictor 152 performs intra prediction within the current image
- the inter predictor 154 predicts the current image using the reference image stored in the storage 156.
- the intra prediction unit 152 performs intra prediction from the reconstructed regions in the current image, and transmits the intra encoding information to the entropy coding unit 160.
- the inter predictor 154 may further include a motion compensator 162 and a motion estimator 164.
- the motion estimator 164 obtains a motion vector value of the current region by referring to the restored specific region.
- the motion estimator 164 transmits the position information (reference frame, motion vector, etc.) of the reference region to the entropy coding unit 160 so that the motion estimation unit 164 may be included in the bitstream.
- the motion compensator 162 performs inter-screen motion compensation by using the motion vector value transmitted from the motion estimator 164.
- the entropy coding unit 160 entropy codes the quantized transform coefficients, inter picture encoding information, intra picture encoding information, and reference region information input from the inter prediction unit 154 to generate a video signal bitstream.
- the entropy coding unit 160 may use a variable length coding (VLC) method, arithmetic coding, or the like.
- VLC variable length coding
- the variable length coding (VLC) scheme converts input symbols into consecutive codewords, which may have a variable length. For example, frequently occurring symbols are represented by short codewords and infrequently occurring symbols by long codewords.
- a context-based adaptive variable length coding (CAVLC) method may be used as a variable length coding method.
- Arithmetic coding converts consecutive data symbols into a single prime number, which can obtain the optimal fractional bits needed to represent each symbol.
- Context-based Adaptive Binary Arithmetic Code (CABAC) may be used as arithmetic coding.
- the decoding apparatus 200 of the present invention largely includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 225, a filtering unit 230, and a prediction unit 250.
- the entropy decoding unit 210 entropy decodes the video signal bitstream and extracts transform coefficients, motion vectors, and the like for each region.
- the inverse quantization unit 220 inverse quantizes the entropy decoded transform coefficient, and the inverse transform unit 225 restores the original pixel value by using the inverse quantized transform coefficient.
- the filtering unit 230 performs filtering on the image to improve the image quality. This may include a deblocking filter to reduce block distortion and / or an adaptive loop filter to remove distortion of the entire image.
- the filtered image is output or stored in the frame storage unit 256 for use as a reference image for the next frame.
- the predictor 250 of the present invention includes an intra predictor 252 and an inter predictor 254, and includes a coding type decoded by the entropy decoder 210 described above, a transform coefficient for each region, The prediction image is reconstructed by using information such as a motion vector.
- the intra prediction unit 252 performs the intra prediction from the decoded samples in the current image.
- the inter predictor 254 estimates a motion vector by using the reference image stored in the frame storage 256 and generates a predicted image.
- the inter predictor 254 may again include a motion compensator 262 and a motion estimator 264.
- the motion estimator 264 obtains a motion vector indicating a relationship between a current block and a reference block of a reference frame used for coding and transfers the motion vector to the motion compensator 262.
- the predicted value output from the intra predictor 252 or the inter predictor 254 and the pixel value output from the inverse transform unit 225 are added to generate a reconstructed video frame.
- a coding unit is a process such as intra / inter prediction, transform, quantization and / or entropy coding in the processing of the video signal described above. Means the basic unit for processing the image. The size of the coding unit used to code one image may not be constant. The coding unit may have a rectangular shape, and one coding unit may be further divided into several coding units.
- FIG. 3 illustrates an example of splitting a coding unit according to an embodiment of the present invention.
- one coding unit having a size of 2N ⁇ 2N may be divided into four coding units having a size of N ⁇ N.
- the splitting of such coding units can be done recursively, and not all coding units need to be split in the same form.
- FIG. 4 illustrates an embodiment of a method for hierarchically representing a division structure of a coding unit illustrated in FIG. 3 using 0 and 1.
- FIG. Information indicating whether a coding unit is divided may be allocated to a value of '1' when the corresponding unit is divided and '0' when it is not divided.
- a flag value indicating whether to split is 1, a coding unit corresponding to a corresponding node is divided into 4 coding units, and when 0, a processing process for the coding unit is performed without being divided further. Can be.
- the coding unit may not necessarily be divided into four forward regions.
- a code for a predetermined partitioning scheme may be mapped to the partitioning information. For example, if the information value is 1, the coding unit is divided into two horizontal rectangular sub-coding units, if 2, the coding unit is divided into two vertical rectangular sub-coding units, and 3 is four square sub-coding units. It can also be set to divide by.
- Such a method shows some embodiments of a division method, and does not limit the present invention.
- the structure of the coding unit described above may be represented using a recursive tree structure. That is, a coding unit split into another coding unit with one picture or maximum size coding unit as a root has as many child nodes as the number of split coding units. Thus, coding units that are no longer split become leaf nodes. Assuming that only square division is possible for one coding unit, one coding unit may be divided into up to four other coding units, so the tree representing the coding unit may be in the form of a quad tree.
- an optimal coding unit size may be selected according to the characteristics (eg, resolution) of the video image or in consideration of coding efficiency, and information about the coding unit may be included in the bitstream. For example, the size of the largest coding unit and the maximum depth of the tree can be defined. In the case of square division, since the height and width of the coding unit are half the height and width of the coding unit of the parent node, the minimum coding unit size can be obtained using the above information. Alternatively, the minimum coding unit size and the maximum depth of the tree may be defined in advance, and the maximum coding unit size may be derived and used if necessary. Since the size of the unit changes in a multiple of 2 in square division, the size of the actual coding unit is represented by a logarithm of the base of 2, thereby improving transmission efficiency.
- the decoder may obtain information indicating whether the current coding unit is split. This information can be obtained only if the information is obtained (transmitted) under certain conditions, thereby increasing efficiency.
- the condition that the current coding unit can be divided is information indicating whether the current coding unit size is divided in this case because the current coding unit size is smaller than the picture size and the current unit size is larger than the preset minimum coding unit size. Can be obtained.
- the size of the coding unit to be split is half of the current coding unit, and is split into four square coding units based on the current processing position. The above process can be repeated for each divided coding units.
- Picture prediction (motion compensation) for coding is directed to coding units (i.e. leaf nodes of the coding unit tree) that are no longer divided.
- the basic unit for performing such prediction is called a prediction unit, a prediction block, or a partition.
- the prediction unit may be divided into various forms, and may be divided into symmetrical forms such as squares, rectangles, sub-prediction units of asymmetrical forms, or geometrical forms.
- one prediction unit may not be split (2Nx2N) or may be divided into sub-prediction units of size NxN, 2NxN, Nx2N, etc. as shown in FIG.
- the possible division forms of the prediction unit may be defined differently in the intra coding unit and the inter coding unit.
- the bitstream may include information about whether the prediction unit is divided or in what form. Or this information may be derived from other information.
- Partitioning may not necessarily be symmetrical. That is, the prediction unit may be divided into asymmetrically divided into rectangles of different sizes, and as shown in FIG. 6, geometric partitions may be generated in various shapes other than a rectangular shape. In this case, the prediction unit is divided into two partitions 610 and 620 through an arbitrary dividing line 600.
- the division information may be expressed as a distance ⁇ from the center of the dividing line, an angle ⁇ between the repair line from the center O to the dividing line and the reference axis (for example, the x-axis).
- Such various types of prediction unit partitioning have an advantage of enabling more accurate prediction of various types of objects included in an image.
- partition may be used as a replacement term for the prediction unit or sub-prediction unit, which is a basic unit for performing prediction.
- the present invention is not limited thereto.
- the decoded portion of the current picture or other pictures containing the current partition may be used to reconstruct the current partition on which decoding is performed.
- Intra picture or I picture (slice) using only the current picture for reconstruction i.e., performing only intra-picture prediction, predicting a picture (slice) using at most one motion vector and reference index to predict each partition
- a picture using a predictive picture or a P picture (slice), up to two motion vectors, and a reference index (slice) is called a bi-predictive picture or a B picture (slice).
- the intra prediction unit performs intra prediction for predicting pixel values of the target partition from the reconstructed regions in the current picture.
- the pixel value of the current partition can be predicted from the encoded pixels of the partitions located at the top, left, top left and / or top right with respect to the current partition.
- the intra mode may be divided into vertical, horizontal, DC, and angular modes according to the direction and prediction method of the reference region where the reference pixels used for pixel value prediction are located.
- the vertical mode is used as a prediction value of the current partition with reference to the value of the vertically adjacent area of the target partition
- the horizontal mode is used as a prediction value with reference to the value of the horizontally adjacent area.
- the DC mode the average value of the reference regions is used as a prediction value.
- the reference region is located in an arbitrary direction and may indicate the corresponding direction by an angle between the current pixel and the reference pixel.
- a predetermined angle and prediction mode number may be used, and the number of angles used may vary depending on the size of the target partition.
- the prediction mode may be transmitted as a value indicating the mode itself, but in order to increase transmission efficiency, a method of predicting a prediction mode value of the current partition may be used.
- the decoder may obtain the prediction mode of the current partition using information using whether the prediction value for the prediction mode is used as it is or how much the difference with the actual value is.
- the inter prediction unit performs inter prediction for predicting a pixel value of a target partition by using information of other reconstructed pictures other than the current picture.
- a picture used for prediction is referred to as a reference picture.
- Which reference region is used to predict the current partition in the inter prediction process may be indicated by using an index indicating a reference picture including the reference region, motion vector information, and the like.
- the inter prediction may include forward direction prediction, backward direction prediction, and bi-prediction.
- Forward prediction is prediction using one reference picture displayed (or output) before the current picture in time
- backward prediction means prediction using one reference picture displayed (or output) after the current picture in time.
- one motion information eg, a motion vector and a reference picture index
- up to two reference regions may be used, and these two reference regions may exist in the same reference picture or may exist in different pictures, respectively. That is, in the pair prediction method, up to two motion information (eg, a motion vector and a reference picture index) may be used.
- the two motion vectors may have the same reference picture index or may have different reference picture indexes. .
- the reference pictures may be displayed (or output) before or after the current picture in time.
- the motion information of the current partition may include motion vector information and a reference picture index.
- the motion vector information may include a motion vector, a motion vector prediction (mvp), a motion vector difference (mvd), or mean index information for specifying the motion vector prediction value.
- the differential motion vector means a difference value between the motion vector and the motion vector prediction value.
- the reference partition of the current partition can be obtained using the motion vector and the reference picture index.
- the reference partition exists in a reference picture having the reference picture index.
- a pixel value or an interpolated value of a partition specified by the motion vector may be used as a predictor of the current partition. That is, using motion information, motion compensation is performed to predict an image of a current partition from a previously decoded picture.
- a reference picture list may be configured of pictures used for inter prediction for the current picture.
- two reference picture lists are required, and in the following, each of them is referred to as reference picture list 0 (or L0) and reference picture list 1 (or L1).
- a method of obtaining a motion vector prediction value mvp by using motion information of previously coded partitions and transmitting only a difference value mvd thereof The decoder obtains a motion vector prediction value of the current partition using motion information of other decoded partitions, and obtains a motion vector value for the current partition using the transmitted difference value.
- a motion vector competition method may be used in which various motion vector candidate values are obtained by using motion information of already coded partitions, and one of them is obtained as the motion vector prediction value.
- the motion vector prediction value of the current partition may be obtained from the motion vectors of neighboring partitions of the current partition.
- Such neighbor partitions may include spatial neighbor partitions and temporal neighbor partitions.
- a spatial neighbor partition refers to partitions adjacent to the current partition within the same picture as the current partition (see FIG. 7), and a temporal neighbor partition is a partition existing at a position co-located with the current partition in a picture different from the current partition. (See Fig. 8).
- the spatial neighbor partitions include partitions A 0 , A 1 ,..., A nA neighboring the left side of the current partition, and neighboring partitions B 0 at the top of the current partition. , B 1 ,..., B nB ) and / or partitions C, D, E adjacent to the diagonal of the current partition may be included. In this case, the size of each neighboring partition may be different.
- the motion vector prediction value of the current partition is obtained from the motion vectors of the spatial neighboring partition and / or the temporal neighboring partition of the current partition, and the motion vector value for the current partition can be obtained by adding this to the transmitted difference value.
- the current picture (or slice) is a P picture (slice)
- a motion vector prediction value and a motion vector for a prediction direction (reference picture list) of either L0 or L1 may be obtained, and the current picture (or slice) may be obtained.
- the motion vector prediction value and the motion vector for the prediction directions of both L0 and L1 can be obtained.
- Motion vector scaling refers to a technique of scaling up or scaling down a motion vector according to a temporal distance between reference pictures and a current picture.
- 9 illustrates a method of performing motion vector scaling using a temporal distance between pictures.
- mvL0N_scaled mvL0 * (tb / td)
- td denotes a temporal distance between the current picture and ref1
- tb denotes a temporal distance between the current picture and ref0.
- the temporal distance between each picture may be obtained through a difference of a picture order count (POC) value between each picture.
- POC picture order count
- one component (first component) of the motion vector x component and y component of the current partition is first obtained, and the remaining other components (first component) are obtained using the first component.
- first component the remaining other components
- 10 is a diagram illustrating such a motion vector prediction value and a motion vector acquisition process according to an embodiment of the present invention.
- a motion vector first component prediction value of the current partition may be obtained (S1020).
- the step of determining the first component of the motion vector x component and y component of the current partition S1010
- the motion vector first component prediction value of the current partition may be obtained using the motion vector first components of neighboring partitions of the current partition.
- the motion vector first component of the current partition may be obtained by adding the first motion vector difference value (first component) to the received motion vector (S1030).
- a motion vector second component prediction value of the current partition can be obtained (S1040).
- the present invention finds a neighbor partition having a motion vector first component value most similar to the motion vector first component of the current partition among the neighbor partitions, and uses the motion vector second component value of the partition to determine the motion of the current partition.
- a vector second component prediction value may be obtained.
- the motion vector second component prediction value of the current partition may be obtained by adding the motion vector difference value (second component) to the transmitted motion vector (S1050).
- a prediction value of the current partition may be obtained using the motion vector first component and the second component of the current partition obtained through the above process (S1060), and the pixel value of the current partition may be restored using this.
- FIGS. 11 and 12 illustrate a process of obtaining a motion vector first component prediction value and a second component prediction value of a current partition in detail according to an embodiment of the present invention.
- a motion vector y component is a first component and an x component is a second component will be described with reference to FIGS. 11 and 12.
- the first component may be substituted with the motion vector x component and the second component with the motion vector y component.
- steps S1110 to S1160 of FIG. 11 specify an example of a process of obtaining a motion vector y component prediction value of the current partition (S1020).
- a motion vector y component (mvX [1]) of neighboring partitions having the same reference picture as the current partition may be added to the y component list listMvCompY (S1110).
- the number of candidate motion vector y component predicted values numCompY of the current partition is obtained through the number of elements included in the y component listMvCompY (S1112).
- the motion vector y component predicted value mvPred [1] of the current partition can be obtained according to the value of the y component predicted value candidate number numCompY in the following manner.
- the median value of the motion vector y components mvX [1] of the neighbor partitions may be set as the motion vector y component prediction value mvPred [1] of the current partition.
- the median value of the scaled motion vector y component of the neighbor partitions may be set to mvPred [1]. That is, the motion vector y components of neighboring partitions are scaled with respect to the reference picture of the current partition, and the median value of the scaled motion vector y components is assigned to mvPred [1].
- the mvPred [1] may be set to 0.
- the motion vector y component of the neighbor partition may be set as the motion vector y component prediction value mvPred [1] of the current partition (S1132). That is, listMvCompY [0], the only element added to the y component list, may be assigned as the value of mvPred [1].
- the average of the motion vector y components (listMvCompY [0], listMvCompY [1]) of the two neighboring partitions is the motion vector y component of the current partition.
- the prediction value mvPred [1] can be set (S1142).
- the motion vector y component of the partition having the larger size among two neighboring partitions included in the y component list may be set to mvPred [1]. If the sizes of the two neighboring partitions are the same, the average value of the motion vector y component may be set to mvPred [1] as in step S1142.
- the median value of the motion vector y component of the corresponding neighbor partitions may be set as the motion vector y component prediction value mvPred [1] of the current partition.
- the elements included in the y component list listMvCompY are sorted in ascending (or descending) order (S1150), and the motion vectors y of neighboring partitions are obtained by obtaining the elements of the center index of the sorted y component list listMvCompY.
- the median value of the components can be obtained (S1160).
- the motion vector y component prediction value mvPred [1] of the current partition obtained through the processes of S1110 to S1160 is summed with the transmitted motion vector difference value y component mvDiff [1] to add the motion vector y component of the current partition ( currMv [1]) can be obtained (S1030).
- a process of obtaining a motion vector x component prediction value mvPred [0] of the current partition based on the motion vector y component (currMv [1]) of the current partition (S1040).
- An example is given.
- the motion vector x component (mvX [0]) of neighboring partitions having the same reference picture as the current partition is added to the motion vector list listMv. Can be added (S1210).
- the number numMv of elements included in the motion vector list listMv is obtained (S1212).
- the numMv is 0 (S1220)
- the median value of the motion vector x components (mvX [0]) of the neighbor partitions is determined.
- the predicted value mvPred [0] can be set (S1222).
- the median value of the scaled motion vector x component of neighboring partitions may be set to mvPred [0] for more accurate motion vector prediction.
- the motion vector x components of neighboring partitions are scaled with respect to the reference picture of the current partition, and the median value of the scaled motion vector x components is assigned to mvPred [0].
- the mvPred [0] may be set to 0.
- a motion vector x component prediction value mvPred [0] of the current partition may be obtained. That is, the neighbor partition having the motion vector y component value most similar to the motion vector y component (currMv [1]) of the current partition is searched, and the motion vector x component of the neighbor partition is predicted by the motion vector x component prediction value (mvPred) of the current partition. [0]).
- the motion vector x component prediction value of the current partition may be obtained by the following process. can do. First, among the motion vector y components of the neighbor partition added to the motion vector list listMv, the element listMv [i whose absolute value of the difference from the motion vector y component currMv [1] of the current partition is minimum ] [1]) is set to compY (S1230).
- the motion vector x component listMv [i] [0] of neighboring partitions having the same value as the compY is set. It adds to x component list listMvCompX (S1232).
- a motion vector x component prediction value candidate number numCompX of the current partition may be obtained (S1234), and according to the value of the x component prediction value candidate number numCompX.
- the motion vector x component prediction value (mvPred [0]) of the current partition can be obtained by the following method.
- the motion vector x component of the corresponding two neighbor partitions (listMvCompX [0], An average of listMvCompX [1]) may be set as the motion vector x component predicted value mvPred [0] of the current partition (S1252).
- numCompX 2
- the motion vector x component of a partition having a larger size among two neighboring partitions included in the x component list may be set to mvPred [0]. If the sizes of the two neighboring partitions are the same, the average value of the motion vector x component may be set to mvPred [0] in step S1252.
- the median value of the motion vector x component of the corresponding partitions is set to the motion vector x component of the current partition.
- the prediction value may be set to mvPred [0].
- the elements included in the x component list listMvCompX are sorted in ascending (or descending order) (S1260), and the motion elements of the neighboring partitions are obtained by obtaining the center elements of the sorted list of the x component listMvCompX.
- the median value may be obtained (S1270).
- the motion vector x component prediction value mvPred [0] of the current partition obtained through the processes of S1210 to S1270 is summed with the transmitted motion vector difference value x component (mvDiff [0]) to obtain the motion vector x component of the current partition ( currMv [0]) can be obtained (S1050).
- the order of the coded motion vector x component and y component may be adaptively determined.
- the x and y components of the motion vector may be different from each other.
- the method may further include a step (S1010) of determining a first component from which the first decoding of the motion vector x component and y component of the current partition is performed.
- the determining step S1010 may use a signaling method for acquiring the first component through a transmitted flag value, or may use a method of deriving the first component from a decoder side without signaling.
- the signaling comprises i) at the Sequence Parameter Set (SPS) step, ii) at the Picture Parameter Set (PPS) step, iii) at the slice header, iv) at the largest Coding Tree Block. , Largest CTB) step, v) prediction unit (PU) step, or vi) partition (Motion partition) step.
- SPS Sequence Parameter Set
- PPS Picture Parameter Set
- PU prediction unit
- partition partition Motion partition
- the derivation method may be performed in units of frames (or pictures) or in units of partitions.
- the first component when deriving the first component on a frame basis, statistical information of motion vectors of a previously coded frame may be used. For example, if the previously decoded image has more motion vector changes in the horizontal direction, the current frame first decodes the motion vector y component, and vice versa, the current frame decodes the motion vector x component first. can do.
- the first component may be derived in frame units through the following method.
- the first component when the first component is derived in a partition unit, statistical information of motion vectors of neighboring partitions may be used. For example, if the motion vectors of neighboring partitions have more changes in the horizontal direction, the current partition may first decode the motion vector y component, and vice versa, the current partition may decode the motion vector x component first. have.
- the first component may be derived in a partition unit through the following method.
- the x component is determined as the first component, otherwise the y component is determined as the first component (or vice versa).
- the signaling method and the derivation method may be used in combination to determine the first component of the current partition. That is, a flag for determining a first component for each prediction direction L0 / L1 may be transmitted in partition units, but the first component may be directly derived without transmitting the flag for a partition having a specific condition. . According to an embodiment of the present invention, the flag may not be transmitted when any one of the following conditions is met.
- the neighbor partition may include both a spatial neighbor partition and a temporal neighbor partition.
- the motion vector of a valid neighbor partition to be used for motion vector prediction of the current partition may include only the motion vector of a neighbor partition having the same reference picture as the current partition, or the motion vector of a neighbor partition having another reference picture is included together.
- the scaled motion vector may be included in consideration of the temporal distance between the reference pictures as described above.
- a scaled motion vector may be used in consideration of a temporal distance between reference pictures.
- the efficiency of motion vector prediction is reduced because the motion vector prediction value of the component to be processed later is fixed regardless of the value of the component to be processed first. Therefore, in this case, the component having one valid value can be coded first without having to transmit a separate flag. For example, if the motion vector predictor candidate list of the current partition is ⁇ (5, -1), (5, 3), (5, 7) ⁇ , the x component of the motion vector predictor candidate is ⁇ 5 ⁇ , and the motion The y component of the vector predictor candidate is ⁇ -1, 3, 7 ⁇ . At this time, by processing the x component having one valid value first, it can be used to increase the accuracy of the motion vector y component prediction of the current partition.
- a method of processing the y component of the motion vector predicted value first, but processing the x component first for a partition in a specific condition may be used. That is, when there is only one value of the motion vector x component of the valid neighbor partition used for motion vector prediction of the current partition, the x component may be coded first.
- motion vector prediction may be performed on geometrically divided partitions as shown in FIG. 6.
- a motion vector prediction value of the current partition may be obtained by using motion vectors of neighboring partitions adjacent to each partition.
- the topmost partition A of the left neighboring partitions of the current coding unit For example, as shown in FIG. 13, the topmost partition A of the left neighboring partitions of the current coding unit, the leftmost partition B of the top neighboring partitions of the current coding unit, and the neighbors of the upper right corner of the current coding unit.
- the partition C When the partition C is adjacent to the current partition G1, the median of the motion vectors of the partitions A, B, and C may be used as the motion vector prediction value of the current partition G1.
- neighbor partitions A, B, E (the rightmost partition among the top neighboring partitions of the current coding unit), F (the bottommost partition among the left neighboring partitions of the current coding unit), and C
- a partition adjacent to the current partition G1 may be searched to use the motion vector of the neighboring partition as the motion vector prediction value of the current partition G1. If there is no neighbor partition adjacent to the current partition, the motion vector prediction value of the current partition may be set to (0, 0).
- the motion vector of the neighbor partition is used as the motion vector prediction value of the current partition. Can be used.
- the motion vector of another partition in the same coding unit may be used as the motion vector prediction value of the current partition. That is, in FIG. 12, the partition G2 in which the geometric division is performed does not have adjacent neighbor partitions, but may obtain a motion vector of G1, which is another adjacent partition in the same coding unit, and use it as a motion vector prediction value.
- the motion vector prediction of the current partition is performed by using the median of the motion vectors of the neighboring partitions or the motion vector of the selected neighboring partition. As the motion vector difference is reduced, the amount of data to be transmitted is reduced. However, in the actual image sequence, various motions such as rotation and zooming are present, and in such an image, the possibility that the current partition has the same motion vector as the neighboring partition becomes small.
- FIG. 15 illustrates a situation in which peripheral partition areas including partition X are reduced around partition X.
- the motion vector MV of the current partition is one of the motion vectors MVa, MVb, and MVc of neighboring partitions. It may not have the same value as anything.
- the motion vector MVb of partition B which is the median motion vector of neighboring partitions
- MVp the motion vector prediction value
- MVd which is a difference from the actual motion vector MV, should be transmitted. Therefore, a method for reducing the motion vector difference value MVd is needed.
- affine transformation may be performed using the motion vectors of neighboring partitions on the assumption that the current partition X has a motion vector similar to neighboring partitions A, B, and C.
- the affine transformation vector thus obtained can more accurately predict the operation of the current partition X, etc., thereby reducing the motion vector difference value.
- a method of obtaining an affine transform vector from motion vectors of neighboring partitions will be described with reference to FIG. 16.
- the origin (0, 0) for coordinate calculation is the center of the current partition X, and the coordinates of the centers of neighboring partitions A, B, and C are (xa, ya), (xb, yb), and (xc, yc), respectively. do.
- the point where the center of each neighboring partition is moved by each motion vector MVa, MVb, MVc is called (xa ', ya'), (xb ', yb'), (xc ', yc'). .
- the affine transformation vector A obtained from the motions of the three neighboring partitions A, B, and C is as follows.
- the motion vector prediction value MVp of the current partition can be obtained using the affine transform vector A as follows.
- a parametric transform vector is calculated from the decoded neighbor partitions and the motion vector of the current partition, and motion compensation of the current partition is performed using the same.
- the affine transformation model of the aforementioned method may be used as the model of the parametric transformation vector.
- the origin (0, 0) for the coordinate calculation is the center of the current partition X
- the coordinates of the centers of the neighbor partitions A, B, C and the current partition X are (xa, ya), (xb, yb), (xc, yc) and (xd, yd).
- the centers of the neighboring partitions A, B, C and the current partition X are moved by the respective motion vectors MVa, MVb, MVc, and MV (xa ', ya'), (xb ', yb'). ), (xc ', yc') and (xd ', yd').
- the affine transformation vector A 'obtained from the motions of the three neighboring partitions A, B, and C and the current partition X is as follows.
- Motion compensation for the current partition may be performed using the affine transform vector A '. That is, when the coordinate of any point in the current partition X is (x, y), the coordinate (x ', y') in the reference picture may be calculated as follows.
- the motion vector prediction value MVp of the current partition obtained by using the affine transform vector A may be added as one of candidates used for existing motion vector competition.
- the decoding / encoding method to which the present invention is applied may be stored in a computer-readable recording medium that is produced as a program for execution on a computer, and the computer-readable recording medium may also have multimedia data having a data structure according to the present invention. Can be stored in.
- the computer readable recording medium includes all kinds of storage devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include.
- the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted using a wired / wireless communication network.
- Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof.
- embodiments described herein include application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), and the like. It may be implemented using at least one of processors, controllers, micro-controllers, microprocessors, and electrical partitions for performing other functions. The described embodiments may be implemented by the controller itself.
- embodiments such as the procedures and functions described herein may be implemented as separate software modules.
- Each of the software modules may perform one or more functions and operations described herein.
- Software code may be implemented in software applications written in a suitable programming language.
- the software code may be stored in a memory and executed by a controller.
- the present invention can be applied to encoding or decoding a video signal.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명은 비디오 신호의 처리 방법 및 장치에 관한 것으로, 보다 상세하게는 비디오 신호를 인코딩하거나 디코딩하는 비디오 신호 처리 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for processing a video signal, and more particularly, to a video signal processing method and apparatus for encoding or decoding a video signal.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하기 위한 일련의 신호 처리 기술을 의미한다. 압축 부호화의 대상에는 음성, 영상, 문자 등의 대상이 존재하며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 영상 압축이라고 일컫는다. 비디오 신호에 대한 압축 부호화는 공간적인 상관관계, 시간적인 상관관계, 확률적인 상관관계 등을 고려하여 잉여 정보를 제거함으로써 이루어진다. 그러나 최근의 다양한 미디어 및 데이터 전송 매체의 발전으로 인해, 더욱 고효율의 비디오 신호 처리 방법 및 장치가 요구되고 있다.Compression coding refers to a series of signal processing techniques for transmitting digitized information through a communication line or for storing in a form suitable for a storage medium. The object of compression encoding includes objects such as voice, video, text, and the like. In particular, a technique of performing compression encoding on an image is called video image compression. Compression coding on a video signal is performed by removing redundant information in consideration of spatial correlation, temporal correlation, and stochastic correlation. However, with the recent development of various media and data transmission media, there is a need for a method and apparatus for processing video signals with higher efficiency.
비디오 신호의 처리 과정에서 화면간 예측은 이웃 파티션들의 모션 정보를 이용하여 현재 파티션의 모션 벡터 예측값을 획득하고, 이를 모션 벡터 차분값과 합산한 모션 벡터를 통해 현재 파티션의 예측값을 획득하고, 현재 파티션의 픽셀값을 복원할 수 있다.In the process of processing a video signal, inter-screen prediction obtains a motion vector prediction value of a current partition using motion information of neighboring partitions, obtains a prediction value of the current partition through a motion vector obtained by adding the motion vector difference value, and then obtains a current partition. You can restore the pixel value of.
이때, 모션 벡터 예측값의 정확도가 높을 수록 디코딩을 위해 전송되는 정보가 줄어들 수 있는데, 영상의 특성에 따라 수평 방향의 모션 변화가 많은 영상, 수직 방향의 모션 변화가 많은 영상, 회전 또는 확대/축소되는 영상 등 다양한 종류의 영상이 존재할 수 있다.In this case, the higher the accuracy of the motion vector predicted value, the less information may be transmitted for decoding. According to the characteristics of the image, the image having a lot of horizontal motion change, the image having a lot of vertical motion change, rotated or enlarged / reduced There may be various kinds of images such as images.
이러한 다양한 영상 특성에 맞게 효율적인 모션 벡터 예측을 위해서는, 각 영상의 특성에 따라 적응적으로 모션 벡터 예측값을 획득하는 기법을 달리할 필요가 있다. 이때, 모션 벡터 예측의 정확도를 높이면서도 이를 위해 전송되는 정보의 양을 최소화할 수 있는 효율적인 비디오 신호 처리 방법이 요구된다.In order to efficiently predict the motion vector according to various image characteristics, a method of adaptively obtaining a motion vector prediction value according to the characteristics of each image needs to be changed. In this case, there is a need for an efficient video signal processing method capable of increasing the accuracy of motion vector prediction while minimizing the amount of transmitted information.
본 발명은 상기와 같은 요구를 해결하기 위해 고안된 것으로서, 현재 파티션의 모션 벡터 예측에 있어서, 모션 벡터 x성분 및 y성분 중 어느 하나의 성분을 제 1성분으로서 먼저 처리하고, 먼저 처리된 상기 제 1성분을 이용하여 나머지 제 2성분을 처리하는 방법을 제공하고자 하는데 그 목적이 있다.The present invention has been devised to solve the above requirements, and in the motion vector prediction of the current partition, first processing any one component of the motion vector x component and y component as a first component, and first processing the first It is an object of the present invention to provide a method for treating the remaining second component by using the component.
이때, 본 발명은 이웃 파티션들의 모션 벡터 제 1성분을 이용하여 현재 파티션의 모션 벡터 제 1성분 예측값을 획득하는 방법을 제공하기 위한 목적을 가지고 있다.In this case, an object of the present invention is to provide a method for obtaining a motion vector first component prediction value of a current partition using a motion vector first component of neighboring partitions.
또한, 본 발명은 영상 예측의 정확도를 적응적으로 높이기 위해 현재 파티션의 모션 벡터 x성분 및 y성분 중 먼저 처리할 제 1성분을 결정하는 방법을 제공하고자 하는 목적을 가지고 있다. Another object of the present invention is to provide a method for determining a first component to be processed first among the motion vector x component and y component of the current partition in order to adaptively increase the accuracy of image prediction.
또한, 본 발명은 기하학적 분할이 수행된 파티션의 모션 벡터 예측에 있어서, 현재 파티션과 이웃 파티션의 분할 모양을 고려하여 현재 파티션의 모션 벡터 예측값을 획득하도록 함으로 모션 벡터 예측의 정확도를 높이고자 하는 목적을 가지고 있다.In addition, the present invention is to improve the accuracy of motion vector prediction by obtaining the motion vector prediction value of the current partition in consideration of the partition shape of the current partition and the neighbor partition in the motion vector prediction of the partition on which the geometric partition is performed. Have.
이에 더하여, 본 발명은 현재 파티션의 모션 벡터 예측을 위해 이웃 파티션들의 모션 벡터를 이용한 아핀 변환을 제공함으로, 특수한 모션 상황에 대한 모션 벡터 예측의 정확도를 높이고자 하는 목적도 가지고 있다.In addition, the present invention provides an affine transformation using motion vectors of neighboring partitions to predict the motion vector of the current partition, thereby improving the accuracy of motion vector prediction for a particular motion situation.
본 발명에 따른 비디오 신호 처리 방법에 의하면, 다양한 영상 특성에 따라 적응적으로 모션 벡터 예측값을 획득하는 방법을 달리함으로 모션 벡터 예측의 정확도를 높이고, 영상 신호 복원을 위해 전송되는 정보의 양을 줄일 수 있게 된다.According to the video signal processing method according to the present invention, by varying the method of adaptively obtaining the motion vector prediction value according to various image characteristics, it is possible to increase the accuracy of motion vector prediction and to reduce the amount of information transmitted for the reconstruction of the image signal. Will be.
즉, 현재 영상이 수평 방향의 모션 변화가 많은 영상인지, 수직 방향의 모션 변화가 많은 영상인지, 회전 또는 확대/축소되는 영상인지의 여부에 따라 모션 벡터 예측 방법을 효율적이고 적응적으로 결정하도록 할 수 있다.That is, the motion vector prediction method can be determined efficiently and adaptively depending on whether the current video is a video with a lot of motion change in the horizontal direction, a video with a lot of motion change in the vertical direction, or a video that is rotated or enlarged / reduced. Can be.
또한, 본 발명의 실시예에 따르면 현재 파티션과 동일한 참조 픽쳐를 갖지 않는 이웃 파티션의 경우에도, 모션 벡터 스케일링한 값을 이용하여 모션 벡터 예측을 수행할 수 있게되어 모션 벡터 예측을 위한 후보군을 확장하고 더욱 정확한 예측이 가능하게 된다.In addition, according to an embodiment of the present invention, even in a neighboring partition that does not have the same reference picture as the current partition, motion vector prediction can be performed using the motion vector scaled value, thereby extending the candidate group for motion vector prediction. More accurate predictions are possible.
또한, 본 발명의 실시예에 따르면 모션 벡터 x성분 및 y성분 중 먼저 처리를 수행할 제 1성분의 결정을 플래그 값을 통해 전달하여 모션 벡터 예측의 정확도를 높이는 경우에도, 플래그의 시그널링이 필요없는 특수한 상황에는 플래그 값의 전송없이 디코더가 직접 이를 도출하는 방법을 제공함으로 모션 벡터 예측의 정확도를 높이는 동시에 전송 정보의 양을 최소화할 수 있다.In addition, according to an embodiment of the present invention, even if the accuracy of motion vector prediction is increased by transmitting a decision of a first component to be processed first among the motion vector x component and y component through a flag value, signaling of the flag is not required. In a special situation, the decoder directly derives the flag without transmitting the flag value, thereby increasing the accuracy of motion vector prediction and minimizing the amount of transmission information.
도 1은 본 발명의 실시예에 따른 비디오 신호 인코더 장치의 개략적인 블록도이다.1 is a schematic block diagram of a video signal encoder apparatus according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따른 비디오 신호 디코더 장치의 개략적인 블록도이다.2 is a schematic block diagram of a video signal decoder device according to an embodiment of the present invention.
도 3은 본 발명의 실시예에 따라 코딩 유닛을 분할하는 일 예를 나타내는 도면이다.3 is a diagram illustrating an example of splitting a coding unit according to an embodiment of the present invention.
도 4는 도 3의 분할 구조를 계층적으로 나타내는 방법에 대한 일 실시예를 도시한 도면이다.FIG. 4 is a diagram illustrating an embodiment of a method for hierarchically representing the partition structure of FIG. 3.
도 5는 본 발명의 실시예에 따라 예측 유닛 내에서의 다양한 서브-예측 유닛으로의 분할 형태를 도시한 도면이다.5 is a diagram illustrating a partitioning form into various sub-prediction units within a prediction unit according to an embodiment of the present invention.
도 6은 예측 유닛을 기하학적(Geometric)으로 분할한 형태를 도시한 도면이다.FIG. 6 is a diagram illustrating a form obtained by dividing a prediction unit geometrically.
도 7은 현재 파티션의 공간적 이웃 파티션을 나타낸 도면이다.7 illustrates a spatial neighbor partition of the current partition.
도 8은 현재 파티션의 시간적 이웃 파티션을 나타낸 도면이다.8 is a diagram illustrating a temporal neighboring partition of the current partition.
도 9는 모션 벡터를 참조 픽쳐간의 시간적 거리에 따라 스케일링 하는 방법을 나타내는 도면이다.9 is a diagram illustrating a method of scaling a motion vector according to a temporal distance between reference pictures.
도 10은 본 발명의 실시예에 따라 현재 파티션의 모션 벡터 제 1성분 및 모션 벡터 제 2성분을 획득하는 과정을 나타내는 순서도이다.10 is a flowchart illustrating a process of obtaining a motion vector first component and a motion vector second component of a current partition according to an embodiment of the present invention.
도 11은 본 발명의 실시예에 따라 현재 파티션의 모션 벡터 제 1성분 예측값을 획득하는 구체적인 실시예를 나타낸 순서도이다.11 is a flowchart illustrating a specific embodiment of obtaining a motion vector first component prediction value of a current partition according to an embodiment of the present invention.
도 12는 본 발명의 실시예에 따라 현재 파티션의 모션 벡터 제 2성분 예측값을 획득하는 구체적인 실시예를 나타낸 순서도이다.12 is a flowchart illustrating a specific embodiment of obtaining a motion vector second component prediction value of a current partition according to an embodiment of the present invention.
도 13 및 도 14는 기하학적으로 분할된 파티션과 이들의 이웃 파티션들의 예를 나타내고 있다.13 and 14 show examples of geometrically divided partitions and their neighboring partitions.
도 15는 축소되는 모션을 가지는 현재 파티션 및 이웃 파티션들의 모션 벡터를 나타내고 있다.15 shows a motion vector of a current partition and neighboring partitions with reduced motion.
도 16은 아핀 모션 벡터를 구하기 위한 현재 파티션 및 이웃 파티션들의 중심 좌표값과, 모션 벡터를 통해 이동된 중심 좌표값들을 나타내고 있다.FIG. 16 illustrates center coordinates of current and neighboring partitions for obtaining an affine motion vector and center coordinates moved through the motion vector.
상기와 같은 목적을 달성하기 위해 본 발명에 따른 비디오 신호의 처리 방법은, 이웃 파티션들의 모션 벡터 제 1성분을 이용하여 현재 파티션의 모션 벡터 제 1성분 예측값을 획득하는 단계; 상기 현재 파티션의 모션 벡터 제 1성분 예측값을 이용하여 현재 파티션의 모션 벡터 제 1성분을 구하는 단계; 상기 현재 파티션의 모션 벡터 제 1성분을 기초로 현재 파티션의 모션 벡터 제 2성분 예측값을 획득하는 단계; 상기 현재 파티션의 모션 벡터 제 2성분 예측값을 이용하여 현재 파티션의 모션 벡터 제 2성분을 구하는 단계; 상기 현재 파티션의 모션 벡터 제 1성분 및 제 2성분을 이용하여 현재 파티션의 예측값을 획득하는 단계; 및 상기 현재 파티션의 예측값을 이용하여 현재 파티션의 픽셀값을 복원하는 단계를 포함하되, 상기 제 1성분은 모션 벡터의 x성분 및 y성분 중 먼저 디코딩이 수행되는 성분이며, 상기 제 2 성분은 상기 제 1성분 이후에 디코딩이 수행되는 나머지 하나의 성분인 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method of processing a video signal, the method including: obtaining a motion vector first component prediction value of a current partition using motion vector first components of neighboring partitions; Obtaining a motion vector first component of the current partition using the motion vector first component prediction value of the current partition; Obtaining a motion vector second component prediction value of the current partition based on the motion vector first component of the current partition; Obtaining a motion vector second component of the current partition using the motion vector second component prediction value of the current partition; Obtaining a prediction value of a current partition using a motion vector first component and a second component of the current partition; And reconstructing pixel values of the current partition by using the predicted value of the current partition, wherein the first component is a component to be first decoded among the x component and the y component of the motion vector. It is characterized in that the remaining one component after the decoding is performed after the first component.
이때, 상기 현재 파티션의 모션 벡터 제 1성분 예측값을 획득하는 단계는, 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션들의 모션 벡터 제 1성분을 이용하여 획득하되, 동일한 참조 픽쳐를 갖는 이웃 파티션이 없을 경우, 이웃 파티션들의 모션 벡터 제 1성분의 중앙값을 현재 파티션의 모션 벡터 제 1성분 예측값으로 획득할 수 있다.In this case, the obtaining of the motion vector first component prediction value of the current partition may be obtained by using motion vector first components of neighboring partitions having the same reference picture as the current partition, but there is no neighboring partition having the same reference picture. The median value of the motion vector first components of the neighbor partitions may be obtained as the motion vector first component prediction value of the current partition.
또한, 동일한 참조 픽쳐를 갖는 이웃 파티션이 없을 경우, 상기 현재 파티션의 모션 벡터 제 1성분 예측값은 상기 이웃 파티션들의 스케일링 된 모션 벡터 제 1성분의 중앙값을 통해 획득될 수 있다.In addition, when there is no neighbor partition having the same reference picture, the motion vector first component prediction value of the current partition may be obtained through the median of the scaled motion vector first component of the neighbor partitions.
한편, 상기 현재 파티션의 모션 벡터 제 2성분 예측값을 획득하는 단계는, 상기 현재 파티션의 모션 벡터 제 1성분과의 차이의 절대값이 최소가 되는 모션 벡터 제 1성분을 갖는 이웃 파티션을 구하고, 해당 이웃 파티션의 모션 벡터 제 2성분을 이용하여 현재 파티션의 모션 벡터 제 2성분 예측값을 획득할 수 있다.The obtaining of the motion vector second component prediction value of the current partition may include: obtaining a neighbor partition having a motion vector first component whose minimum value of the difference with the motion vector first component of the current partition is minimum; A motion vector second component prediction value of the current partition may be obtained using the motion vector second component of the neighbor partition.
본 발명의 실시예에 따르면, 현재 파티션의 모션 벡터 제 1성분 예측값을 획득하는 단계 이전에, 현재 파티션의 모션 벡터 x성분 및 y성분 중 먼저 디코딩을 수행할 제 1성분을 결정하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, before the obtaining of the motion vector first component prediction value of the current partition, the method may further include determining a first component of the motion vector x component and y component of the current partition to be decoded first. can do.
이때, 상기 제 1성분을 결정하는 단계는, 전송된 플래그 값을 통해 획득할 수 있다.In this case, the determining of the first component may be obtained through the transmitted flag value.
또한, 상기 제 1성분을 결정하는 단계는, 이전 프레임의 모션 벡터 x성분 및 y성분들의 절대값 평균치를 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정할 수 있다.In the determining of the first component, an average value of absolute values of the motion vector x component and y component of the previous frame may be obtained, and a component having a smaller size may be determined as the first component.
또한, 상기 제 1성분을 결정하는 단계는, 현재 파티션의 이웃 파티션들의 모션 벡터 x성분 및 y성분들의 절대값 평균치를 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정할 수 있다.In the determining of the first component, an average value of absolute values of the motion vector x and y components of neighboring partitions of the current partition may be obtained, and a component having a smaller size may be determined as the first component.
또한, 상기 제 1성분을 결정하는 단계는, 현재 파티션의 이웃 파티션들의 모션 벡터 x성분 및 y성분 중 유효한 값이 1개인 성분이 있을 경우, 해당 성분을 제 1성분으로 결정할 수 있다.In the determining of the first component, when there is a component having one valid value among the motion vector x component and y component of neighboring partitions of the current partition, the corresponding component may be determined as the first component.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위하여 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Prior to this, terms or words used in the present specification and claims should not be construed as having a conventional or dictionary meaning, and the inventors should properly explain the concept of terms in order to explain their invention in the best way. Based on the principle that can be defined, it should be interpreted as meaning and concept corresponding to the technical idea of the present invention. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only the most preferred embodiment of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.
본 발명에서 다음 용어는 다음과 같은 기준으로 해석될 수 있고, 기재되지 않은 용어라도 하기 취지에 따라 해석될 수 있다. 코딩은 경우에 따라 인코딩 또는 디코딩으로 해석될 수 있고, 정보(information)는 값(values), 파라미터(parameter), 계수(coefficients), 성분(elements) 등을 모두 포함하는 용어로서, 경우에 따라 의미는 달리 해석될 수 있으므로 본 발명은 이에 한정되지 아니한다. '유닛'은 영상 처리의 기본 단위 또는 영상의 특정 위치를 지칭하는 의미로 사용되었으며, 경우에 따라서는 '블록', '파티션' 또는 '영역' 등의 용어와 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 유닛은 코딩 유닛, 예측 유닛, 변환 유닛을 모두 포함하는 개념으로 사용될 수 있다.In the present invention, the following terms may be interpreted based on the following criteria, and terms not described may be interpreted according to the following meanings. Coding can be interpreted as encoding or decoding in some cases, and information is a term that includes values, parameters, coefficients, elements, and the like. May be interpreted otherwise, the present invention is not limited thereto. 'Unit' is used to mean a basic unit of image processing or a specific position of an image, and in some cases, may be used interchangeably with terms such as 'block', 'partition' or 'region'. Also, in the present specification, a unit may be used as a concept including a coding unit, a prediction unit, and a transform unit.
도 1은 본 발명의 일 실시예에 따른 비디오 신호 인코딩 장치의 개략적인 블록도이다. 도 1을 참조하면, 본 발명의 인코딩 장치(100)는 크게 변환부(110), 양자화부(115), 역양자화부(120), 역변환부(125), 필터링부(130), 예측부(150) 및 엔트로피 코딩부(160)를 포함한다.1 is a schematic block diagram of a video signal encoding apparatus according to an embodiment of the present invention. Referring to FIG. 1, the
변환부(110)는 입력받은 비디오 신호에 대한 화소값을 변환하여 변환 계수 값을 획득한다. 예를 들어, 이산 코사인 변환(DCT: Discrete Cosine Transform) 또는 웨이블릿 변환(Wavelet Transform) 등이 사용될 수 있다. 특히 이산 코사인 변환은 입력된 영상 신호를 일정 크기의 블록 형태로 나누어 변환을 수행하게 된다. 변환에 있어서 변환 영역 내의 값들의 분포와 특성에 따라서 코딩 효율이 달라질 수 있다.The
양자화부(115)는 변환부(110)에서 출력된 변환 계수 값을 양자화한다. 역양자화부(120)에서는 변환 계수 값을 역양자화하고, 역변환부(125)에서는 역양자화된 변환 계수값을 이용하여 원래의 화소값을 복원한다.The
필터링부(130)는 복원된 영상의 품질 개선을 위한 필터링 연산을 수행한다. 예를 들어, 디블록킹 필터 및 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 영상은 출력되거나 참조 영상으로 이용하기 위하여 저장부(156)에 저장된다.The
코딩 효율을 높이기 위하여 영상 신호를 그대로 코딩하는 것이 아니라, 이미 코딩된 영역을 이용하여 영상을 예측하고, 예측된 영상에 원 영상과 예측 영상간의 레지듀얼 값을 더하여 복원 영상을 획득하는 방법이 사용된다. 인트라 예측부(152)에서는 현재 영상 내에서 화면내 예측을 수행하며, 인터 예측부(154)에서는 저장부(156)에 저장된 참조 영상을 이용하여 현재 영상을 예측한다. 인트라 예측부(152)는 현재 영상 내의 복원된 영역들로부터 화면내 예측을 수행하여, 화면내 부호화 정보를 엔트로피 코딩부(160)에 전달한다. 인터 예측부(154)는 다시 움직임 보상부(162) 및 움직임 추정부(164)를 포함하여 구성될 수 있다. 움직임 추정부(164)에서는 복원된 특정 영역을 참조하여 현재 영역의 모션 벡터값을 획득한다. 움직임 추정부(164)에서는 참조 영역의 위치 정보(참조 프레임, 모션 벡터 등) 등을 엔트로피 코딩부(160)로 전달하여 비트스트림에 포함될 수 있도록 한다. 움직임 추정부(164)에서 전달된 모션 벡터값을 이용하여 움직임 보상부(162)에서는 화면간 움직임 보상을 수행한다.In order to improve coding efficiency, a method of predicting an image by using an already coded region and adding a residual value between the original image and the predicted image to a reconstructed image is used instead of coding the image signal as it is. . The
엔트로피 코딩부(160)는 양자화된 변환 계수, 화면간 부호화 정보, 화면내 부호화 정보 및 인터 예측부(154)로부터 입력된 참조 영역 정보 등을 엔트로피 코딩하여 비디오 신호 비트스트림을 생성한다. 여기서 엔트로피 코딩부(160)에서는 가변 길이 코딩(VLC: Variable Length Coding) 방식과 산술 코딩(arithmetic coding) 등이 사용될 수 있다. 가변 길이 코딩(VLC) 방식은 입력되는 심볼들을 연속적인 코드워드로 변환하는데, 코드워드의 길이는 가변적일 수 있다. 예를 들어, 자주 발생하는 심볼들을 짧은 코드워드로, 자주 발생하지 않은 심볼들은 긴 코드워드로 표현하는 것이다. 가변 길이 코딩 방식으로서 컨텍스트 기반 적응형 가변 길이 코딩(CAVLC: Context-based Adaptive Variable Length Coding) 방식이 사용될 수 있다. 산술 코딩은 연속적인 데이터 심볼들을 하나의 소수로 변환하는데, 산술 코딩은 각 심볼을 표현하기 위하여 필요한 최적의 소수 비트를 얻을 수 있다. 산술 코딩으로서 컨텍스트 기반 적응형 산술 부호화(CABAC: Context-based Adaptive Binary Arithmetic Code)가 이용될 수 있다.The
도 2는 본 발명의 일 실시예에 따른 비디오 신호 디코딩 장치(200)의 개략적인 블록도이다. 도 2를 참조하면 본 발명의 디코딩 장치(200)는 크게 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(225), 필터링부(230), 예측부(250)를 포함한다.2 is a schematic block diagram of a video
엔트로피 디코딩부(210)는 비디오 신호 비트스트림을 엔트로피 디코딩하여, 각 영역에 대한 변환 계수, 모션 벡터 등을 추출한다. 역양자화부(220)는 엔트로피 디코딩된 변환 계수를 역양자화하고, 역변환부(225)는 역양자화된 변환 계수를 이용하여 원래의 화소값을 복원한다.The
한편, 필터링부(230)는 영상에 대한 필터링을 수행하여 화질을 향상시킨다. 여기에는 블록 왜곡 현상을 감소시키기 위한 디블록킹 필터 및/또는 영상 전체의 왜곡 제거를 위한 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 영상은 출력되거나 다음 프레임에 대한 참조 영상으로 이용하기 위하여 프레임 저장부(256)에 저장된다.Meanwhile, the filtering unit 230 performs filtering on the image to improve the image quality. This may include a deblocking filter to reduce block distortion and / or an adaptive loop filter to remove distortion of the entire image. The filtered image is output or stored in the
또한, 본 발명의 예측부(250)는 인트라 예측부(252) 및 인터 예측부(254)를 포함하고, 전술한 엔트로피 디코딩부(210)를 통해 디코딩된 부호화 타입, 각 영역에 대한 변환 계수, 모션 벡터 등의 정보를 활용하여 예측 영상을 복원하게 된다.In addition, the predictor 250 of the present invention includes an
이와 관련하여, 상기 인트라 예측부(252)에서는 현재 영상 내의 디코딩된 샘플로부터 화면내 예측을 수행하게 된다.In this regard, the
인터 예측부(254)는 프레임 저장부(256)에 저장된 참조 영상을 이용하여 모션 벡터를 추정하고 예측 영상을 생성한다. 인터 예측부(254)는 다시 움직임 보상부(262) 및 움직임 추정부(264)를 포함하여 구성될 수 있다. 움직임 추정부(264)에서는 현재 블록과 코딩에 사용하는 참조 프레임의 참조 블록간의 관계를 나타내는 모션 벡터를 획득하여 움직임 보상부(262)로 전달한다.The
상기 인트라 예측부(252) 또는 인터 예측부(254)로부터 출력된 예측값, 및 역변환부(225)로부터 출력된 화소값이 더해져서 복원된 비디오 프레임이 생성된다.The predicted value output from the
이하에서는, 상기 인코더 장치와 디코더 장치의 동작에 있어서, 도 3 내지 도 5를 참조하여 코딩 유닛 및 예측 유닛 등을 분할하는 방법을 설명하기로 한다.Hereinafter, a method of dividing a coding unit, a prediction unit, etc. with reference to FIGS. 3 to 5 in the operations of the encoder device and the decoder device will be described.
코딩 유닛이란 상기에서 설명한 비디오 신호의 처리 과정에서, 예를 들어 화면내(intra)/화면간(inter) 예측, 변환(transform), 양자화(quantization) 및/또는 엔트로피 코딩(entropy coding) 등의 과정에서 영상을 처리하기 위한 기본 단위를 의미한다. 하나의 영상을 코딩하는 데 있어서 사용되는 코딩 유닛의 크기는 일정하지 않을 수 있다. 코딩 유닛은 사각형 형태를 가질 수 있고, 하나의 코딩 유닛은 다시 여러 개의 코딩 유닛으로 분할 가능하다.A coding unit is a process such as intra / inter prediction, transform, quantization and / or entropy coding in the processing of the video signal described above. Means the basic unit for processing the image. The size of the coding unit used to code one image may not be constant. The coding unit may have a rectangular shape, and one coding unit may be further divided into several coding units.
도 3은 본 발명의 실시 예에 따라 코딩 유닛을 분할하는 일 예를 나타낸 것이다. 예를 들어, 2N x 2N 크기를 가지는 하나의 코딩 유닛은 다시 네 개의 NxN 크기를 가지는 코딩 유닛으로 분할될 수 있다. 이러한 코딩 유닛의 분할은 재귀적으로 이루어질 수 있으며, 모든 코딩 유닛들이 동일한 형태로 분할될 필요는 없다. 다만, 코딩 및 처리과정에서의 편의를 위하여 코딩 유닛의 최대 크기(310) 또는 최소 크기(320)에 대한 제한이 있을 수 있다.3 illustrates an example of splitting a coding unit according to an embodiment of the present invention. For example, one coding unit having a size of 2N × 2N may be divided into four coding units having a size of N × N. The splitting of such coding units can be done recursively, and not all coding units need to be split in the same form. However, there may be a limitation on the
하나의 코딩 유닛에 대하여, 해당 코딩 유닛이 분할되는지 여부를 나타내는 정보를 저장할 수 있다. 예를 들어, 도 3과 같이 하나의 코딩 유닛은 4개의 정방형 코딩 유닛으로 나누어질 수 있다고 가정하자. 도 4는 도 3에서 도시하는 코딩 유닛의 분할 구조를 0과 1을 이용하여 계층적으로 나타내는 방법에 대한 일 실시예를 도시한 것이다. 코딩 유닛의 분할 여부를 나타내는 정보는 해당 유닛이 분할 된 경우 '1', 분할되지 않은 경우 '0'의 값으로 할당할 수 있다. 도 4에서 도시하듯이, 분할 여부를 나타내는 플래그 값이 1이면 해당 노드에 대응하는 코딩 유닛은 다시 4개의 코딩 유닛으로 나누어지고, 0이면 더 이상 나누어지지 않고 해당 코딩 유닛에 대한 처리 프로세스가 수행될 수 있다.For one coding unit, information indicating whether the corresponding coding unit is split may be stored. For example, assume that one coding unit can be divided into four square coding units as shown in FIG. 3. FIG. 4 illustrates an embodiment of a method for hierarchically representing a division structure of a coding unit illustrated in FIG. 3 using 0 and 1. FIG. Information indicating whether a coding unit is divided may be allocated to a value of '1' when the corresponding unit is divided and '0' when it is not divided. As shown in FIG. 4, when a flag value indicating whether to split is 1, a coding unit corresponding to a corresponding node is divided into 4 coding units, and when 0, a processing process for the coding unit is performed without being divided further. Can be.
코딩 유닛이 반드시 4개의 정방향 영역으로만 나누어질 수 있는 것은 아니다. 이러한 경우에는 분할 정보에 미리 정해진 분할 방식에 대한 코드를 매핑시켜서 나타낼 수 있다. 예를 들어, 해당 정보 값이 1이면 해당 코딩 유닛은 2개의 수평 직사각형 서브 코딩 유닛으로 나누어지고, 2이면 해당 코딩 유닛은 2개의 수직 직사각형 서브 코딩 유닛으로 나누어지고, 3이면 4개의 정사각형 서브 코딩 유닛으로 나누어지도록 설정할 수도 있다. 이러한 방법은 분할 방식의 몇 가지 실시 예를 나타낸 것으로, 본 발명을 한정하는 것은 아니다.The coding unit may not necessarily be divided into four forward regions. In this case, a code for a predetermined partitioning scheme may be mapped to the partitioning information. For example, if the information value is 1, the coding unit is divided into two horizontal rectangular sub-coding units, if 2, the coding unit is divided into two vertical rectangular sub-coding units, and 3 is four square sub-coding units. It can also be set to divide by. Such a method shows some embodiments of a division method, and does not limit the present invention.
상기에서 설명한 코딩 유닛의 구조는 재귀적인 트리 구조를 이용하여 나타낼 수 있다. 즉, 하나의 픽쳐 또는 최대 크기 코딩 유닛을 루트(root)로 하여, 다른 코딩 유닛으로 분할되는 코딩 유닛은 분할된 코딩 유닛의 개수만큼의 자식(child) 노드를 가지게 된다. 따라서, 더 이상 분할되지 않는 코딩 유닛이 리프(leaf) 노드가 된다. 하나의 코딩 유닛에 대하여 정방형 분할만이 가능하다고 가정할 때, 하나의 코딩 유닛은 최대 4개의 다른 코딩 유닛으로 분할될 수 있으므로 코딩 유닛을 나타내는 트리는 쿼드 트리(Quard tree) 형태가 될 수 있다.The structure of the coding unit described above may be represented using a recursive tree structure. That is, a coding unit split into another coding unit with one picture or maximum size coding unit as a root has as many child nodes as the number of split coding units. Thus, coding units that are no longer split become leaf nodes. Assuming that only square division is possible for one coding unit, one coding unit may be divided into up to four other coding units, so the tree representing the coding unit may be in the form of a quad tree.
인코더에서는 비디오 영상의 특성(예를 들어, 해상도)에 따라서 혹은 코딩의 효율을 고려하여 최적의 코딩 유닛의 크기를 선택하고 이에 대한 정보 또는 이를 유도할 수 있는 정보가 비트스트림에 포함될 수 있다. 예를 들면, 최대 코딩 유닛의 크기 및 트리의 최대 깊이를 정의할 수 있다. 정방형 분할을 할 경우, 코딩 유닛의 높이 및 너비는 부모 노드의 코딩 유닛의 높이 및 너비의 반이 되므로, 상기와 같은 정보를 이용하면 최소 코딩 유닛 크기를 구할 수 있다. 혹은 역으로, 최소 코딩 유닛 크기 및 트리의 최대 깊이를 미리 정의하여 이용하고, 이를 이용하여 필요할 경우에 최대 코딩 유닛의 크기를 유도하여 이용할 수 있다. 정방형 분할에서 유닛의 크기는 2의 배수 형태로 변화하기 때문에, 실제 코딩 유닛의 크기는 2를 밑으로 하는 로그값으로 나타내어 전송 효율을 높일 수 있다.In the encoder, an optimal coding unit size may be selected according to the characteristics (eg, resolution) of the video image or in consideration of coding efficiency, and information about the coding unit may be included in the bitstream. For example, the size of the largest coding unit and the maximum depth of the tree can be defined. In the case of square division, since the height and width of the coding unit are half the height and width of the coding unit of the parent node, the minimum coding unit size can be obtained using the above information. Alternatively, the minimum coding unit size and the maximum depth of the tree may be defined in advance, and the maximum coding unit size may be derived and used if necessary. Since the size of the unit changes in a multiple of 2 in square division, the size of the actual coding unit is represented by a logarithm of the base of 2, thereby improving transmission efficiency.
디코더에서는 현재 코딩 유닛이 분할되었는지 여부를 나타내는 정보를 획득할 수 있다. 이러한 정보는 특정 조건 하에만 획득하게(전송되게) 하면 효율을 높일 수 있다. 예를 들어 현재 코딩 유닛이 분할 가능한 조건은 현재 위치에서 현재 코딩 유닛 크기를 더한 것이 픽쳐의 크기보다 작고, 현재 유닛 크기가 기설정된 최소 코딩 유닛 크기보다 큰 경우이므로, 이러한 경우에만 분할되었는지를 나타내는 정보를 획득할 수 있다.The decoder may obtain information indicating whether the current coding unit is split. This information can be obtained only if the information is obtained (transmitted) under certain conditions, thereby increasing efficiency. For example, the condition that the current coding unit can be divided is information indicating whether the current coding unit size is divided in this case because the current coding unit size is smaller than the picture size and the current unit size is larger than the preset minimum coding unit size. Can be obtained.
만약 상기 정보가 코딩 유닛이 분할되었음을 나타내는 경우, 분할될 코딩 유닛의 크기는 현재 코딩 유닛의 반이 되고, 현재 처리 위치를 기준으로 하여 4개의 정방형 코딩 유닛들로 분할된다. 각 분할된 코딩 유닛들에 대해서 상기와 같은 처리를 반복할 수 있다.If the information indicates that the coding unit is split, the size of the coding unit to be split is half of the current coding unit, and is split into four square coding units based on the current processing position. The above process can be repeated for each divided coding units.
코딩을 위한 픽쳐 예측(모션 보상)은 더 이상 나누어지지 않는 코딩 유닛(즉 코딩 유닛 트리의 리프 노드)을 대상으로 이루어진다. 이러한 예측을 수행하는 기본 단위를 예측 유닛(prediction unit), 예측 블록(prediction block) 또는 파티션이라고 한다. 예측 유닛은 다양한 형태로 분할 가능한데, 정방형, 직사각형 등의 대칭적인 형태나, 비대칭적인 형태, 혹은 기하학적 형태의 서브-예측 유닛으로의 분할이 가능하다. 예를 들면, 하나의 예측 유닛은 분할되지 않거나(2Nx2N), 도 5에 나타난 바와 같이 NxN, 2NxN, Nx2N 등의 크기의 서브-예측 유닛으로 나누어질 수 있다. 또한, 예측 유닛의 가능한 분할 형태는 인트라 코딩 유닛과 인터 코딩 유닛에서 각기 다르게 정의될 수 있다. 예를 들면, 인트라 코딩 유닛에서는 2Nx2N 또는 NxN 형태의 분할만 가능하고, 인터 코딩 유닛에서는 2Nx2N, 2NxN, Nx2N 또는 NxN 형태의 분할이 가능하도록 설정할 수 있다. 이때, 비트스트림에는 상기 예측 유닛이 분할되었는지 여부, 혹은 어떠한 형태로 분할되었는지에 대한 정보가 포함될 수 있다. 혹은 이러한 정보는 다른 정보들로부터 유도될 수도 있다.Picture prediction (motion compensation) for coding is directed to coding units (i.e. leaf nodes of the coding unit tree) that are no longer divided. The basic unit for performing such prediction is called a prediction unit, a prediction block, or a partition. The prediction unit may be divided into various forms, and may be divided into symmetrical forms such as squares, rectangles, sub-prediction units of asymmetrical forms, or geometrical forms. For example, one prediction unit may not be split (2Nx2N) or may be divided into sub-prediction units of size NxN, 2NxN, Nx2N, etc. as shown in FIG. In addition, the possible division forms of the prediction unit may be defined differently in the intra coding unit and the inter coding unit. For example, in the intra coding unit, only division of 2Nx2N or NxN type is possible, and in the inter coding unit, the division of 2Nx2N, 2NxN, Nx2N, or NxN type may be configured. In this case, the bitstream may include information about whether the prediction unit is divided or in what form. Or this information may be derived from other information.
분할은 반드시 대칭적으로만 이루어질 수 있는 것은 아니다. 즉, 예측 유닛을 비대칭적(Asymmetric)으로 분할하여 서로 다른 크기의 직사각형으로 분할 할 수 있으며, 도 6에서 도시하는 바와 같이 사각형 형태가 아닌 다양한 형태로의 기하학적인 파티션 생성도 가능하다. 이 경우 예측 유닛은 임의의 분할선(600)을 통하여 두개의 파티션(610 및 620)으로 분할 되게 된다. 분할 정보는 분할선의 중심으로부터의 거리(ρ), 중심(O)에서 분할선으로의 수선과 기준축(예를 들어 x축)간의 각도(θ) 등으로 표현할 수 있다. 이와 같은 예측 유닛 분할의 다양한 형태는 영상에 포함된 여러 형태의 객체(Object)들에 대하여 좀 더 정확한 예측을 가능하게 할 수 있다는 장점이 있다.Partitioning may not necessarily be symmetrical. That is, the prediction unit may be divided into asymmetrically divided into rectangles of different sizes, and as shown in FIG. 6, geometric partitions may be generated in various shapes other than a rectangular shape. In this case, the prediction unit is divided into two
이하, 본 명세서에서 사용되는 파티션 이라는 용어는 예측을 수행하는 기본 단위인 상기 예측 유닛 또는 서브-예측 유닛을 대체하는 용어로 사용될 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.Hereinafter, as used herein, the term partition may be used as a replacement term for the prediction unit or sub-prediction unit, which is a basic unit for performing prediction. However, the present invention is not limited thereto.
디코딩이 수행되는 현재 파티션을 복원하기 위해서 현재 파티션이 포함된 현재 픽쳐 또는 다른 픽쳐들의 디코딩된 부분을 이용할 수 있다. 복원에 현재 픽쳐만을 이용하는, 즉 화면내 예측만을 수행하는 픽쳐(슬라이스)를 인트라 픽쳐 또는 I 픽쳐(슬라이스), 각 파티션을 예측하기 위하여 최대 하나의 모션 벡터 및 레퍼런스 인덱스를 이용하는 픽쳐(슬라이스)를 예측 픽쳐(predictive picture) 또는 P 픽쳐(슬라이스), 최대 두 개의 모션 벡터 및 레퍼런스 인덱스를 이용하는 픽쳐(슬라이스)를 쌍예측 픽쳐(Bi-predictive picture) 또는 B 픽쳐(슬라이스) 라고 한다.The decoded portion of the current picture or other pictures containing the current partition may be used to reconstruct the current partition on which decoding is performed. Intra picture or I picture (slice) using only the current picture for reconstruction, i.e., performing only intra-picture prediction, predicting a picture (slice) using at most one motion vector and reference index to predict each partition A picture using a predictive picture or a P picture (slice), up to two motion vectors, and a reference index (slice) is called a bi-predictive picture or a B picture (slice).
인트라 예측부에서는 현재 픽쳐 내의 복원된 영역들로부터 대상 파티션의 픽셀값을 예측하는 화면내 예측(Intra prediction)을 수행한다. 예를 들어, 현재 파티션을 중심으로, 상단, 좌측, 좌측 상단 및/또는 우측 상단에 위치한 파티션들의 부호화된 픽셀로부터 현재 파티션의 픽셀값을 예측할 수 있다.The intra prediction unit performs intra prediction for predicting pixel values of the target partition from the reconstructed regions in the current picture. For example, the pixel value of the current partition can be predicted from the encoded pixels of the partitions located at the top, left, top left and / or top right with respect to the current partition.
인트라 모드는 픽셀값 예측에 사용되는 참조 픽셀들이 위치한 참조 영역의 방향 및 예측 방식에 따라 크게 수직(Vertical), 수평(Horizontal), DC, Angular 모드 등으로 나눌 수 있다. 수직 모드는 대상 파티션의 수직으로 인접한 영역의 값을 참조하여 현재 파티션의 예측값으로, 수평 모드는 수평으로 인접한 영역의 값을 참조하여 예측값으로 이용한다. DC 모드에서는 참조 영역들의 평균값을 예측값으로 이용하게 된다. 한편, Angular 모드는 참조 영역이 임의의 방향에 위치한 경우로, 현재 픽셀과 참조 픽셀 간의 각도로 해당 방향을 나타낼 수 있다. 편의를 위하여, 기 정해진 각도 및 예측 모드 번호를 사용할 수 있고, 사용되는 각도의 수는 대상 파티션의 크기에 따라서 달라질 수 있다.The intra mode may be divided into vertical, horizontal, DC, and angular modes according to the direction and prediction method of the reference region where the reference pixels used for pixel value prediction are located. The vertical mode is used as a prediction value of the current partition with reference to the value of the vertically adjacent area of the target partition, and the horizontal mode is used as a prediction value with reference to the value of the horizontally adjacent area. In the DC mode, the average value of the reference regions is used as a prediction value. Meanwhile, in the angular mode, the reference region is located in an arbitrary direction and may indicate the corresponding direction by an angle between the current pixel and the reference pixel. For convenience, a predetermined angle and prediction mode number may be used, and the number of angles used may vary depending on the size of the target partition.
이렇게 다양한 예측 방법들에 대하여 몇 가지 특정 모드들을 정의하여 이용할 수 있다. 예측 모드는 그 모드를 나타내는 값 자체로 전송될 수도 있으나, 전송 효율을 높이기 위하여, 현재 파티션의 예측 모드 값을 예측하는 방법을 이용할 수 있다. 이때 디코더에서는 예측 모드에 대한 예측값이 그대로 사용되는지, 실제 값과의 차이가 얼마인지를 이용한 정보로 현재 파티션의 예측 모드를 획득할 수 있다.Several specific modes can be defined and used for these various prediction methods. The prediction mode may be transmitted as a value indicating the mode itself, but in order to increase transmission efficiency, a method of predicting a prediction mode value of the current partition may be used. In this case, the decoder may obtain the prediction mode of the current partition using information using whether the prediction value for the prediction mode is used as it is or how much the difference with the actual value is.
한편, 인터 예측부에서는 현재 픽쳐가 아닌 복원된 다른 픽쳐들의 정보를 이용하여 대상 파티션의 픽셀값을 예측하는 화면간 예측(Inter prediction)을 수행한다. 이때, 예측에 이용되는 픽쳐를 참조 픽쳐(reference picture)라고 한다. 화면간 예측 과정에서 현재 파티션을 예측하는데 어떤 참조 영역을 이용하는지는, 해당 참조 영역이 포함된 참조 픽쳐를 나타내는 인덱스 및 모션 벡터(motion vector) 정보 등을 이용하여 나타낼 수 있다.Meanwhile, the inter prediction unit performs inter prediction for predicting a pixel value of a target partition by using information of other reconstructed pictures other than the current picture. In this case, a picture used for prediction is referred to as a reference picture. Which reference region is used to predict the current partition in the inter prediction process may be indicated by using an index indicating a reference picture including the reference region, motion vector information, and the like.
화면간 예측에는 순방향 예측(forward direction prediction), 역방향 예측(backward direction prediction) 및 쌍예측(Bi-prediction)이 있을 수 있다. 순방향 예측은 시간적으로 현재 픽쳐 이전에 표시(또는 출력)되는 1개의 참조 픽쳐를 이용한 예측이고, 역방향 예측은 시간적으로 현재 픽쳐 이후에 표시(또는 출력)되는 1개의 참조 픽쳐를 이용한 예측을 의미한다. 이를 위해서는 1개의 모션 정보 (예를 들어, 모션 벡터 및 참조 픽쳐 인덱스)가 필요할 수 있다. 쌍예측 방식에서는 최대 2개의 참조 영역을 이용할 수 있는데, 이 2개의 참조 영역은 동일한 참조 픽쳐에 존재할 수도 있고, 서로 다른 픽쳐에 각각 존재할 수도 있다. 즉, 쌍예측 방식에서는 최대 2개의 모션 정보(예를 들어 모션 벡터 및 참조 픽쳐 인덱스)가 이용될 수 있는데, 2개의 모션 벡터가 동일한 참조 픽쳐 인덱스를 가질 수도 있고 서로 다른 참조 픽쳐 인덱스를 가질 수도 있다. 이때, 참조 픽쳐들은 시간적으로 현재 픽쳐 이전이나 이후 모두에 표시(또는 출력)될 수 있다.The inter prediction may include forward direction prediction, backward direction prediction, and bi-prediction. Forward prediction is prediction using one reference picture displayed (or output) before the current picture in time, and backward prediction means prediction using one reference picture displayed (or output) after the current picture in time. For this purpose, one motion information (eg, a motion vector and a reference picture index) may be required. In the bi-prediction method, up to two reference regions may be used, and these two reference regions may exist in the same reference picture or may exist in different pictures, respectively. That is, in the pair prediction method, up to two motion information (eg, a motion vector and a reference picture index) may be used. The two motion vectors may have the same reference picture index or may have different reference picture indexes. . In this case, the reference pictures may be displayed (or output) before or after the current picture in time.
현재 파티션의 모션 정보(motion information)는 모션 벡터 정보(motion vector information)와 참조 픽쳐 인덱스(reference picture index)를 포함할 수 있다. 상기 모션 벡터 정보는 모션 벡터, 모션 벡터 예측값(motion vector prediction, mvp) 또는 모션 벡터 차분값(motion vector difference, mvd)을 포함할 수 있고, 상기 모션 벡터 예측값을 특정하는 인덱스 정보를 의미할 수도 있다. 차분 모션 벡터는 상기 모션 벡터와 모션 벡터 예측값 간의 차분값을 의미한다.The motion information of the current partition may include motion vector information and a reference picture index. The motion vector information may include a motion vector, a motion vector prediction (mvp), a motion vector difference (mvd), or mean index information for specifying the motion vector prediction value. . The differential motion vector means a difference value between the motion vector and the motion vector prediction value.
모션 벡터 및 참조 픽쳐 인덱스를 이용하여 현재 파티션의 참조 파티션을 획득할 수 있다. 상기 참조 파티션은 상기 참조 픽쳐 인덱스를 가진 참조 픽쳐 내에 존재한다. 또한, 상기 모션 벡터에 의해서 특정된 파티션의 픽셀값 또는 보간(interpolation)된 값이 상기 현재 파티션의 예측값(predictor)으로 이용될 수 있다. 즉, 모션 정보를 이용하여, 이전에 디코딩된 픽쳐로부터 현재 파티션의 영상을 예측하는 모션 보상(motion compensation)이 수행된다.The reference partition of the current partition can be obtained using the motion vector and the reference picture index. The reference partition exists in a reference picture having the reference picture index. In addition, a pixel value or an interpolated value of a partition specified by the motion vector may be used as a predictor of the current partition. That is, using motion information, motion compensation is performed to predict an image of a current partition from a previously decoded picture.
한편, 현재 픽쳐에 대하여, 화면 간 예측을 위하여 사용되는 픽쳐들로 참조 픽쳐 리스트를 구성할 수 있다. B 픽쳐의 경우에는 두 개의 참조 픽쳐 리스트를 필요로 하며, 이하에서는 각각을 참조 픽쳐 리스트 0(또는 L0), 참조 픽쳐 리스트 1(또는 L1)으로 지칭한다.Meanwhile, a reference picture list may be configured of pictures used for inter prediction for the current picture. In the case of a B picture, two reference picture lists are required, and in the following, each of them is referred to as reference picture list 0 (or L0) and reference picture list 1 (or L1).
모션 벡터와 관련한 전송량을 줄이기 위하여, 이전에 코딩된 파티션들의 모션 정보를 이용하여 모션 벡터 예측값(mvp)을 획득하고, 이에 대한 차분값(mvd)만을 전송하는 방법을 이용할 수 있다. 디코더에서는 디코딩된 다른 파티션들의 모션 정보들을 이용하여 현재 파티션의 모션 벡터 예측값을 구하고, 전송된 차분값을 이용하여 현재 파티션에 대한 모션 벡터값을 획득하게 된다. 모션 벡터 예측값을 획득함에 있어서는, 이미 코딩된 파티션들의 모션 정보을 이용하여 다양한 모션 벡터 후보 값들을 획득하고 그 중 하나를 모션 벡터 예측값으로 획득하는 모션 벡터 경쟁(Motion vector competition) 방법을 이용할 수 있다.In order to reduce the amount of transmission associated with the motion vector, a method of obtaining a motion vector prediction value mvp by using motion information of previously coded partitions and transmitting only a difference value mvd thereof. The decoder obtains a motion vector prediction value of the current partition using motion information of other decoded partitions, and obtains a motion vector value for the current partition using the transmitted difference value. In obtaining the motion vector prediction value, a motion vector competition method may be used in which various motion vector candidate values are obtained by using motion information of already coded partitions, and one of them is obtained as the motion vector prediction value.
상기 모션 벡터 예측을 위하여, 현재 파티션의 이웃 파티션들의 모션 벡터로 부터 현재 파티션의 모션 벡터 예측값을 획득할 수 있다. 이러한 이웃 파티션들로는 공간적 이웃 파티션과 시간적 이웃 파티션이 포함될 수 있다. 공간적 이웃 파티션이란 현재 파티션과 동일한 픽쳐 내에서 현재 파티션에 인접하는 파티션들을 가리키며(도 7 참조), 시간적 이웃 파티션이란 현재 파티션과 다른 픽쳐에서 현재 파티션과 대응 되는 위치(co-located)에 존재하는 파티션을 가리킨다(도 8 참조).For the motion vector prediction, the motion vector prediction value of the current partition may be obtained from the motion vectors of neighboring partitions of the current partition. Such neighbor partitions may include spatial neighbor partitions and temporal neighbor partitions. A spatial neighbor partition refers to partitions adjacent to the current partition within the same picture as the current partition (see FIG. 7), and a temporal neighbor partition is a partition existing at a position co-located with the current partition in a picture different from the current partition. (See Fig. 8).
예를 들어 도 7을 참조로 하면, 상기 공간적 이웃 파티션으로는 현재 파티션의 좌측에 이웃하는 파티션들(A0, A1, …, AnA), 현재 파티션의 상단에 이웃하는 파티션들(B0, B1, …, BnB) 및/또는 현재 파티션의 대각선에 인접하는 파티션들(C, D, E)이 포함될 수 있다. 이때, 각 이웃 파티션들의 크기는 서로 다를 수 있다.For example, referring to FIG. 7, the spatial neighbor partitions include partitions A 0 , A 1 ,..., A nA neighboring the left side of the current partition, and neighboring partitions B 0 at the top of the current partition. , B 1 ,..., B nB ) and / or partitions C, D, E adjacent to the diagonal of the current partition may be included. In this case, the size of each neighboring partition may be different.
이처럼 현재 파티션의 공간적 이웃 파티션 및/또는 시간적 이웃 파티션의 모션 벡터들로부터 현재 파티션의 모션 벡터 예측값을 획득하며, 이를 전송된 차분값과 더하여 현재 파티션에 대한 모션 벡터값을 획득할 수 있다. 이때, 현재 픽쳐(또는 슬라이스)가 P 픽쳐(슬라이스)일 경우에는 L0 또는 L1 중 어느 하나의 예측 방향(참조 픽쳐 리스트)에 대한 모션벡터 예측값 및 모션 벡터를 획득할 수 있으며, 현재 픽쳐(또는 슬라이스)가 B 픽쳐(슬라이스)일 경우에는 L0 및 L1 모두의 예측 방향에 대한 모션 벡터 예측값 및 모션 벡터를 획득할 수 있다.As such, the motion vector prediction value of the current partition is obtained from the motion vectors of the spatial neighboring partition and / or the temporal neighboring partition of the current partition, and the motion vector value for the current partition can be obtained by adding this to the transmitted difference value. In this case, when the current picture (or slice) is a P picture (slice), a motion vector prediction value and a motion vector for a prediction direction (reference picture list) of either L0 or L1 may be obtained, and the current picture (or slice) may be obtained. If) is a B picture (slice), the motion vector prediction value and the motion vector for the prediction directions of both L0 and L1 can be obtained.
이때, 현재 파티션의 모션 벡터 예측값을 구하기 위해 사용되는 이웃 파티션의 참조 픽쳐가 현재 파티션의 참조 픽쳐와 다를 경우에도 상기 이웃 파티션의 모션 벡터를 그대로 사용하게 된다면 정확한 모션 벡터 예측에 한계가 있게 된다. 따라서 보다 정확한 모션 벡터 예측을 수행하기 위하여, 모션 벡터 스케일링(scailing) 기술을 사용할 수 있다.In this case, even when the reference picture of the neighbor partition used to obtain the motion vector prediction value of the current partition is different from the reference picture of the current partition, if the motion vector of the neighbor partition is used as it is, there is a limit to accurate motion vector prediction. Therefore, in order to perform more accurate motion vector prediction, a motion vector scaling technique can be used.
모션 벡터 스케일링이란 참조 픽쳐들과 현재 픽쳐 간의 시간적(temporal) 거리에 따라 모션 벡터를 비례 확대 또는 비례 축소 시키는 기법을 말한다. 도 9는 픽쳐들 간의 시간적 거리를 이용하여 모션 벡터 스케일링을 수행하는 방법을 나타내고 있다. 이웃 파티션의 L0 방향의 모션 벡터를 mvL0라 하고 상기 mvL0의 참조 픽쳐를 ref1이라 할때, 상기 mvL0를 현재 파티션의 참조 픽쳐인 ref0에 대해 스케일링한 mvL0N_scaled는 다음과 같이 나타낼 수 있다.Motion vector scaling refers to a technique of scaling up or scaling down a motion vector according to a temporal distance between reference pictures and a current picture. 9 illustrates a method of performing motion vector scaling using a temporal distance between pictures. When the motion vector in the L0 direction of a neighboring partition is referred to as mvL0 and the reference picture of mvL0 is referred to as ref1, mvL0N_scaled which scales mvL0 with respect to ref0 which is a reference picture of the current partition can be expressed as follows.
mvL0N_scaled = mvL0 * (tb/td)mvL0N_scaled = mvL0 * (tb / td)
여기서, td는 현재 픽쳐와 ref1 간의 시간적 거리를 나타내며, tb는 현재 픽쳐와 ref0 간의 시간적 거리를 나타낸다. 각 픽쳐 간의 시간적 거리는 각 픽쳐 간의 POC(Picture Order Count) 값의 차를 통해 구할 수 있다.Here, td denotes a temporal distance between the current picture and ref1, and tb denotes a temporal distance between the current picture and ref0. The temporal distance between each picture may be obtained through a difference of a picture order count (POC) value between each picture.
본 발명의 실시예에 따르면, 상기 모션 벡터 예측의 효율성을 높이기 위해 현재 파티션의 모션 벡터 x성분 및 y성분 중 어느 하나의 성분(제 1성분)을 먼저 획득하고, 이를 이용하여 나머지 다른 성분(제 2성분)의 값을 예측하는데 사용할 수 있다. 첨부된 도 10은 본 발명의 실시예에 따른 이러한 모션 벡터 예측값 및 모션 벡터 획득 과정을 나타내고 있다.According to an embodiment of the present invention, in order to increase the efficiency of the motion vector prediction, one component (first component) of the motion vector x component and y component of the current partition is first obtained, and the remaining other components (first component) are obtained using the first component. Can be used to predict the value of two components). 10 is a diagram illustrating such a motion vector prediction value and a motion vector acquisition process according to an embodiment of the present invention.
도 10을 참조로 하면, 현재 파티션의 모션 벡터 x성분 및 y성분 중 먼저 디코딩이 수행되는 성분을 제 1성분, 상기 제 1성분 이후에 디코딩이 수행되는 나머지 하나의 성분을 제 2성분이라고 할때, 먼저 현재 파티션의 모션 벡터 제 1성분 예측값을 획득할 수 있다(S1020). 이때, 상기 S1020 단계 이전에, 현재 파티션의 모션 벡터 x성분 및 y성분 중 제 1성분을 결정하는 단계(S1010), 즉 x성분 및 y성분 중 먼저 디코딩을 수행할 성분을 결정하는 단계가 추가될 수 있으며, 이에 대해서는 후술하기로 한다. 상기 S1020 단계에서 현재 파티션의 모션 벡터 제 1성분 예측값은 현재 파티션의 이웃 파티션들의 모션 벡터 제 1성분을 이용하여 획득할 수 있다.Referring to FIG. 10, when the first decoding component of the motion vector x component and y component of the current partition is performed as the first component, and the other component performing decoding after the first component is referred to as the second component First, a motion vector first component prediction value of the current partition may be obtained (S1020). At this time, before the step S1020, the step of determining the first component of the motion vector x component and y component of the current partition (S1010), that is, the step of determining the component to be decoded first of the x component and the y component to be added This will be described later. In operation S1020, the motion vector first component prediction value of the current partition may be obtained using the motion vector first components of neighboring partitions of the current partition.
상기 S1020 단계를 통해 현재 파티션의 모션 벡터 제 1성분 예측값을 획득하면, 이를 전송된 모션 벡터 차분값(제 1성분)과 합산하여 현재 파티션의 모션 벡터 제 1성분을 구할 수 있다(S1030). 다음으로, 본 발명에서는 상기 현재 파티션의 모션 벡터 제 1성분에 기초하여, 현재 파티션의 모션 벡터 제 2성분 예측값을 획득할 수 있다(S1040). 이때, 본 발명에서는 이웃 파티션들 중 상기 현재 파티션의 모션 벡터 제 1성분과 가장 유사한 모션 벡터 제 1성분값을 갖는 이웃 파티션을 찾고, 해당 파티션의 모션 벡터 제 2성분값을 이용하여 현재 파티션의 모션 벡터 제 2성분 예측값을 획득할 수 있다.When the motion vector first component prediction value of the current partition is obtained through the operation S1020, the motion vector first component of the current partition may be obtained by adding the first motion vector difference value (first component) to the received motion vector (S1030). Next, in the present invention, based on the motion vector first component of the current partition, a motion vector second component prediction value of the current partition can be obtained (S1040). In this case, the present invention finds a neighbor partition having a motion vector first component value most similar to the motion vector first component of the current partition among the neighbor partitions, and uses the motion vector second component value of the partition to determine the motion of the current partition. A vector second component prediction value may be obtained.
상기 S1040 단계를 통해 현재 파티션의 모션 벡터 제 2성분 예측값을 획득하면, 이를 전송된 모션 벡터 차분값(제 2성분)과 합산하여 현재 파티션의 모션 벡터 제 2성분을 구할 수 있다(S1050). 상기와 같은 과정을 통해 구한 현재 파티션의 모션 벡터 제 1성분 및 제 2 성분을 이용하여 현재 파티션의 예측값을 획득하고(S1060), 이를 이용하여 현재 파티션의 픽셀값을 복원할 수 있다.When the motion vector second component prediction value of the current partition is obtained through operation S1040, the motion vector second component of the current partition may be obtained by adding the motion vector difference value (second component) to the transmitted motion vector (S1050). A prediction value of the current partition may be obtained using the motion vector first component and the second component of the current partition obtained through the above process (S1060), and the pixel value of the current partition may be restored using this.
첨부된 도 11 및 도 12는 본 발명의 실시예에 따라 현재 파티션의 모션 벡터 제 1성분 예측값과 제 2 성분 예측값을 구하는 과정을 더욱 상세히 나타내고 있다. 이하, 도 11 및 도 12를 참조로 모션 벡터 y성분이 제 1성분, x성분이 제 2성분인 경우를 가정하여 설명하기로 한다. 본 발명의 실시예에 따라 상기 제 1성분이 모션 벡터 x성분, 제 2성분이 모션 벡터 y성분으로 치환될 수 있음은 물론이다.11 and 12 illustrate a process of obtaining a motion vector first component prediction value and a second component prediction value of a current partition in detail according to an embodiment of the present invention. Hereinafter, a case in which a motion vector y component is a first component and an x component is a second component will be described with reference to FIGS. 11 and 12. According to an exemplary embodiment of the present invention, the first component may be substituted with the motion vector x component and the second component with the motion vector y component.
먼저, 도 11의 S1110 내지 S1160의 단계는 현재 파티션의 모션 벡터 y성분 예측값을 획득하는 과정(S1020)의 예를 구체화하고 있다. 도시된 바와 같이, 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션들의 모션 벡터 y성분(mvX[1])을 y성분 리스트(listMvCompY)에 추가할 수 있다(S1110). 이를 위해, 현재 파티션의 참조 픽쳐 인덱스 값을 먼저 디코딩할 필요가 있다. 다음으로, 상기 y성분 리스트(listMvCompY)에 포함된 원소의 개수를 통해 현재 파티션의 모션 벡터 y성분 예측값 후보 개수(numCompY)를 획득한다(S1112).First, steps S1110 to S1160 of FIG. 11 specify an example of a process of obtaining a motion vector y component prediction value of the current partition (S1020). As shown, a motion vector y component (mvX [1]) of neighboring partitions having the same reference picture as the current partition may be added to the y component list listMvCompY (S1110). For this purpose, it is necessary to first decode the reference picture index value of the current partition. Next, the number of candidate motion vector y component predicted values numCompY of the current partition is obtained through the number of elements included in the y component list listMvCompY (S1112).
본 발명에서는 상기 y성분 예측값 후보 개수(numCompY)의 값에 따라 현재 파티션의 모션 벡터 y성분 예측값(mvPred[1])을 다음과 같은 방법으로 구할 수 있다.According to the present invention, the motion vector y component predicted value mvPred [1] of the current partition can be obtained according to the value of the y component predicted value candidate number numCompY in the following manner.
i) numCompY = 0인 경우. 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션이 없는 경우(S1120), 이웃 파티션들의 모션 벡터 y성분(mvX[1])들의 중앙값을 현재 파티션의 모션 벡터 y성분 예측값(mvPred[1])으로 설정할 수 있다(S1122). 이때, 더욱 정확한 모션 벡터 예측을 위해 이웃 파티션들의 스케일링 된 모션 벡터 y성분의 중앙값을 mvPred[1]으로 설정할 수 있다. 즉, 이웃 파티션들의 모션 벡터 y성분들을 현재 파티션의 참조 픽쳐에 대하여 스케일링을 수행하고, 상기 스케일링 된 모션 벡터 y성분들의 중앙값을 mvPred[1]으로 할당하는 것이다. 한편, 본 발명의 다른 실시예에 따르면, 상기 numCompY = 0인 경우, 상기 mvPred[1]을 0으로 설정할 수도 있다.i) if numCompY = 0. If there is no neighbor partition having the same reference picture as the current partition (S1120), the median value of the motion vector y components mvX [1] of the neighbor partitions may be set as the motion vector y component prediction value mvPred [1] of the current partition. There is (S1122). In this case, for more accurate motion vector prediction, the median value of the scaled motion vector y component of the neighbor partitions may be set to mvPred [1]. That is, the motion vector y components of neighboring partitions are scaled with respect to the reference picture of the current partition, and the median value of the scaled motion vector y components is assigned to mvPred [1]. Meanwhile, according to another embodiment of the present invention, when numCompY = 0, the mvPred [1] may be set to 0.
ii) numCompY = 1인 경우. 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션이 1개인 경우(S1130), 해당 이웃 파티션의 모션 벡터 y성분을 현재 파티션의 모션 벡터 y성분 예측값(mvPred[1])으로 설정할 수 있다(S1132). 즉, y성분 리스트에 추가된 유일한 원소인 listMvCompY[0]를 mvPred[1]의 값으로 할당할 수 있다.ii) if numCompY = 1. When there is one neighbor partition having the same reference picture as the current partition (S1130), the motion vector y component of the neighbor partition may be set as the motion vector y component prediction value mvPred [1] of the current partition (S1132). That is, listMvCompY [0], the only element added to the y component list, may be assigned as the value of mvPred [1].
iii) numCompY = 2인 경우. 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션이 2개인 경우(S1140), 해당하는 2개의 이웃 파티션의 모션 벡터 y성분(listMvCompY[0], listMvCompY[1])의 평균을 현재 파티션의 모션 벡터 y성분 예측값(mvPred[1])으로 설정할 수 있다(S1142). 한편, 본 발명의 다른 실시예에 따르면, 상기 numCompY = 2인 경우, 상기 y성분 리스트에 포함된 2개의 이웃 파티션 중 크기가 더 큰 파티션의 모션 벡터 y성분을 mvPred[1]으로 설정할 수 있으며, 상기 2개의 이웃 파티션의 크기가 같을 경우 상기 S1142 단계와 같이 모션 벡터 y성분의 평균 값을 mvPred[1]으로 설정할 수 있다.iii) when numCompY = 2. If there are two neighbor partitions having the same reference picture as the current partition (S1140), the average of the motion vector y components (listMvCompY [0], listMvCompY [1]) of the two neighboring partitions is the motion vector y component of the current partition. The prediction value mvPred [1] can be set (S1142). Meanwhile, according to another embodiment of the present invention, when numCompY = 2, the motion vector y component of the partition having the larger size among two neighboring partitions included in the y component list may be set to mvPred [1]. If the sizes of the two neighboring partitions are the same, the average value of the motion vector y component may be set to mvPred [1] as in step S1142.
iv) 기타의 경우. 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션이 3개 이상인 경우, 해당하는 이웃 파티션들의 모션 벡터 y성분의 중앙값을 현재 파티션의 모션 벡터 y성분 예측값(mvPred[1])으로 설정할 수 있다. 이때, y성분 리스트(listMvCompY)에 포함된 원소들을 오름 차순(또는 내림 차순)으로 정렬하고(S1150), 정렬된 상기 y성분 리스트(listMvCompY)의 중앙 인덱스의 원소를 획득함으로 이웃 파티션들의 모션 벡터 y성분의 중앙값을 얻을 수 있다(S1160).iv) in other cases. When there are three or more neighbor partitions having the same reference picture as the current partition, the median value of the motion vector y component of the corresponding neighbor partitions may be set as the motion vector y component prediction value mvPred [1] of the current partition. At this time, the elements included in the y component list listMvCompY are sorted in ascending (or descending) order (S1150), and the motion vectors y of neighboring partitions are obtained by obtaining the elements of the center index of the sorted y component list listMvCompY. The median value of the components can be obtained (S1160).
상기 S1110 내지 S1160의 과정을 통해 획득한 현재 파티션의 모션 벡터 y성분 예측값(mvPred[1])은 전송된 모션 벡터 차분값 y성분(mvDiff[1])과 합산하여 현재 파티션의 모션 벡터 y성분(currMv[1])을 얻을 수 있다(S1030).The motion vector y component prediction value mvPred [1] of the current partition obtained through the processes of S1110 to S1160 is summed with the transmitted motion vector difference value y component mvDiff [1] to add the motion vector y component of the current partition ( currMv [1]) can be obtained (S1030).
한편, 도 12의 S1210 내지 S1270의 단계는 상기 현재 파티션의 모션 벡터 y성분(currMv[1])을 기초로 하여 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])을 획득하는 과정(S1040)의 예를 구체화하고 있다. 먼저, 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])을 획득하기 위해, 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션들의 모션 벡터 x성분(mvX[0])을 모션 벡터 리스트(listMv)에 추가할 수 있다(S1210).Meanwhile, in operations S1210 to S1270 of FIG. 12, a process of obtaining a motion vector x component prediction value mvPred [0] of the current partition based on the motion vector y component (currMv [1]) of the current partition (S1040). An example is given. First, in order to obtain the motion vector x component prediction value mvPred [0] of the current partition, the motion vector x component (mvX [0]) of neighboring partitions having the same reference picture as the current partition is added to the motion vector list listMv. Can be added (S1210).
다음으로, 상기 모션 벡터 리스트(listMv)에 포함된 원소의 개수(numMv)를 획득한다(S1212). 이때, 상기 numMv가 0일 경우(S1220), 즉 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션이 없을 경우, 이웃 파티션들의 모션 벡터 x성분(mvX[0])들의 중앙값을 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])으로 설정할 수 있다(S1222). 상기 도 11을 통해 설명한 바와 같이, 더욱 정확한 모션 벡터 예측을 위해 이웃 파티션들의 스케일링 된 모션 벡터 x성분의 중앙값을 mvPred[0]으로 설정할 수 있다. 즉, 이웃 파티션들의 모션 벡터 x성분들을 현재 파티션의 참조 픽쳐에 대하여 스케일링을 수행하고, 상기 스케일링 된 모션 벡터 x성분들의 중앙값을 mvPred[0]으로 할당하는 것이다. 한편, 본 발명의 다른 실시예에 따르면, 상기 numMV = 0인 경우, 상기 mvPred[0]을 0으로 설정할 수도 있다.Next, the number numMv of elements included in the motion vector list listMv is obtained (S1212). In this case, when the numMv is 0 (S1220), that is, when there is no neighbor partition having the same reference picture as the current partition, the median value of the motion vector x components (mvX [0]) of the neighbor partitions is determined. The predicted value mvPred [0] can be set (S1222). As described with reference to FIG. 11, the median value of the scaled motion vector x component of neighboring partitions may be set to mvPred [0] for more accurate motion vector prediction. That is, the motion vector x components of neighboring partitions are scaled with respect to the reference picture of the current partition, and the median value of the scaled motion vector x components is assigned to mvPred [0]. Meanwhile, according to another embodiment of the present invention, when numMV = 0, the mvPred [0] may be set to 0.
한편, 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션이 1개 이상일 경우(numMv가 0이 아닌 경우), 본 발명의 실시예에 따라 현재 파티션의 모션 벡터 y성분(currMv[1])을 기초로 하여 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])을 획득할 수 있다. 즉, 현재 파티션의 모션 벡터 y성분(currMv[1])과 가장 비슷한 모션 벡터 y성분 값을 갖는 이웃 파티션을 검색하여, 해당 이웃 파티션의 모션 벡터 x성분을 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])으로 설정할 수 있다.On the other hand, when there is at least one neighbor partition having the same reference picture as the current partition (numMv is not 0), based on the motion vector y component (currMv [1]) of the current partition according to an embodiment of the present invention. A motion vector x component prediction value mvPred [0] of the current partition may be obtained. That is, the neighbor partition having the motion vector y component value most similar to the motion vector y component (currMv [1]) of the current partition is searched, and the motion vector x component of the neighbor partition is predicted by the motion vector x component prediction value (mvPred) of the current partition. [0]).
이때, 상기 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])으로 선택될 수 있는 이웃 파티션이 2개 이상이 될 수도 있으며, 이를 위해 다음과 과정을 통해 현재 파티션의 모션 벡터 x성분 예측값을 획득할 수 있다. 먼저, 상기 모션 벡터 리스트(listMv)에 추가된 이웃 파티션의 모션 벡터 y성분들 가운데서, 현재 파티션의 모션 벡터 y성분(currMv[1])과의 차이의 절대값이 최소가 되는 원소(listMv[i][1])를 compY로 설정한다(S1230). 다음으로, 상기 모션 벡터 리스트(listMv)에 포함된 원소(listMv[i][1])들 가운데서 상기 설정된 compY와 같은 값을 갖는 이웃 파티션들의 모션 벡터 x성분(listMv[i][0])을 x성분 리스트(listMvCompX)에 추가한다(S1232). 상기 x성분 리스트(listMvCompX)에 포함된 원소의 개수를 통해 현재 파티션의 모션 벡터 x성분 예측값 후보 개수(numCompX)를 획득할 수 있으며(S1234), 상기 x성분 예측값 후보 개수(numCompX)의 값에 따라 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])을 다음과 같은 방법으로 구할 수 있다.In this case, two or more neighbor partitions that may be selected as the motion vector x component prediction value (mvPred [0]) of the current partition may be obtained. For this, the motion vector x component prediction value of the current partition may be obtained by the following process. can do. First, among the motion vector y components of the neighbor partition added to the motion vector list listMv, the element listMv [i whose absolute value of the difference from the motion vector y component currMv [1] of the current partition is minimum ] [1]) is set to compY (S1230). Next, among the elements listMv [i] [1] included in the motion vector list listMv, the motion vector x component listMv [i] [0] of neighboring partitions having the same value as the compY is set. It adds to x component list listMvCompX (S1232). Through the number of elements included in the x component list listMvCompX, a motion vector x component prediction value candidate number numCompX of the current partition may be obtained (S1234), and according to the value of the x component prediction value candidate number numCompX. The motion vector x component prediction value (mvPred [0]) of the current partition can be obtained by the following method.
i) numCompX = 1인 경우. 현재 파티션의 모션 벡터 y성분과의 차이의 절대값이 최소가 되는 모션 벡터 y성분을 갖는 이웃 파티션이 1개인 경우(S1240), 해당 이웃 파티션의 모션 벡터 x성분을 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])으로 설정할 수 있다(S1242). 즉, x성분 리스트에 추가된 유일한 원소인 listMvCompX[0]를 mvPred[0]의 값으로 할당할 수 있다.i) when numCompX = 1. When there is one neighbor partition having a motion vector y component of which the absolute value of the difference from the motion vector y component of the current partition is the minimum (S1240), the motion vector x component of the current partition is estimated as the motion vector x component of the current partition. (mvPred [0]) can be set (S1242). That is, listMvCompX [0], the only element added to the x component list, may be assigned as the value of mvPred [0].
ii) numCompX = 2인 경우. 현재 파티션의 모션 벡터 y성분과의 차이의 절대값이 최소가 되는 모션 벡터 y성분을 갖는 이웃 파티션이 2개인 경우(S1250), 해당하는 2개의 이웃 파티션의 모션 벡터 x성분(listMvCompX[0], listMvCompX[1])의 평균을 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])으로 설정할 수 있다(S1252). 한편, 본 발명의 다른 실시예에 따르면, 상기 numCompX = 2인 경우, 상기 x성분 리스트에 포함된 2개의 이웃 파티션 중 크기가 더 큰 파티션의 모션 벡터 x성분을 mvPred[0]으로 설정할 수 있으며, 상기 2개의 이웃 파티션의 크기가 같을 경우 상기 S1252 단계와 같이 모션 벡터 x성분의 평균 값을 mvPred[0]으로 설정할 수 있다.ii) when numCompX = 2. If there are two neighbor partitions having the motion vector y component of which the absolute value of the difference with the motion vector y component of the current partition is the minimum (S1250), the motion vector x component of the corresponding two neighbor partitions (listMvCompX [0], An average of listMvCompX [1]) may be set as the motion vector x component predicted value mvPred [0] of the current partition (S1252). Meanwhile, according to another embodiment of the present invention, when numCompX = 2, the motion vector x component of a partition having a larger size among two neighboring partitions included in the x component list may be set to mvPred [0]. If the sizes of the two neighboring partitions are the same, the average value of the motion vector x component may be set to mvPred [0] in step S1252.
iii) 기타의 경우. 현재 파티션의 모션 벡터 y성분과의 차이의 절대값이 최소가 되는 모션 벡터 y성분을 갖는 이웃 파티션이 3개 이상인 경우, 해당하는 이웃 파티션들의 모션 벡터 x성분의 중앙값을 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])으로 설정할 수 있다. 이때, x성분 리스트(listMvCompX)에 포함된 원소들을 오름 차순(또는 내림 차순)으로 정렬하고(S1260), 정렬된 상기 x성분 리스트(listMvCompX)의 중앙 원소를 획득함으로 이웃 파티션들의 모션 벡터 x성분의 중앙값을 얻을 수 있다(S1270).iii) in other cases. If there are three or more neighbor partitions whose motion vector y component is the absolute value of the difference from the motion vector y component of the current partition, the median value of the motion vector x component of the corresponding partitions is set to the motion vector x component of the current partition. The prediction value may be set to mvPred [0]. In this case, the elements included in the x component list listMvCompX are sorted in ascending (or descending order) (S1260), and the motion elements of the neighboring partitions are obtained by obtaining the center elements of the sorted list of the x component listMvCompX. The median value may be obtained (S1270).
상기 S1210 내지 S1270의 과정을 통해 획득한 현재 파티션의 모션 벡터 x성분 예측값(mvPred[0])은 전송된 모션 벡터 차분값 x성분(mvDiff[0])과 합산하여 현재 파티션의 모션 벡터 x성분(currMv[0])을 얻을 수 있다(S1050).The motion vector x component prediction value mvPred [0] of the current partition obtained through the processes of S1210 to S1270 is summed with the transmitted motion vector difference value x component (mvDiff [0]) to obtain the motion vector x component of the current partition ( currMv [0]) can be obtained (S1050).
본 발명에서는 영상의 특성에 따라 더욱 정확한 모션 벡터 예측을 수행하기 위하여, 코딩 되는 모션 벡터 x성분 및 y성분의 순서를 적응적으로 결정할 수 있다. 영상의 특성에 따라 모션 벡터의 x성분과 y성분은 서로 다른 양상을 보일 수 있으며, 이 중 정확한 예측이 어려운 성분을 코딩할 때 이를 처리하기 위한 정보가 많을수록 더욱 좋은 코딩 효율을 갖게 된다. 따라서, 더욱 정확한 예측이 가능한 성분을 먼저 처리하고, 이를 이용하여 나머지 성분을 처리하는 것이 코딩 성능에 좋은 영향을 미칠 수 있다.In the present invention, in order to perform more accurate motion vector prediction according to the characteristics of the image, the order of the coded motion vector x component and y component may be adaptively determined. Depending on the characteristics of the image, the x and y components of the motion vector may be different from each other. When coding components that are difficult to accurately predict, more information to process the components has better coding efficiency. Therefore, processing the components that can be predicted more accurately first and processing the remaining components using the same may have a good effect on the coding performance.
이를 위해 본 발명에서는 도 10에 도시된 바와 같이, 현재 파티션의 모션 벡터 x성분 및 y성분 중 먼저 디코딩이 수행되는 제 1성분을 결정하는 단계(S1010)를 더 포함할 수 있다. 상기 결정 단계(S1010)는 전송되는 플래그 값을 통해 상기 제 1성분을 획득하도록 하는 시그널링 방법을 사용할 수도 있으며, 시그널링 없이 디코더 측에서 상기 제 1성분을 도출해 내는 방법을 사용할 수도 있다.To this end, in the present invention, as shown in FIG. 10, the method may further include a step (S1010) of determining a first component from which the first decoding of the motion vector x component and y component of the current partition is performed. The determining step S1010 may use a signaling method for acquiring the first component through a transmitted flag value, or may use a method of deriving the first component from a decoder side without signaling.
시그널링 방법을 사용할 경우에는 시그널링 오버헤드가 존재하지만 RD(Rate Distortion)-cost 관점에서 더 좋은 성분을 정확하게 알려줄 수 있는 장점이 있다. 상기 시그널링은 i) 시퀀스 파라미터 세트(Sequence Parameter Set, SPS) 단계에서, ii) 픽쳐 파라미터 세트(Picture Parameter Set, PPS) 단계에서, iii) 슬라이스 헤더에서, iv) 최대 코팅 트리 블록(Largest Coding Tree Block, Largest CTB) 단계에서, v) 예측 유닛(Prediction Unit, PU) 단계에서, 또는 vi) 파티션(Motion partition) 단계에서 수행될 수 있다.In case of using the signaling method, signaling overhead exists, but there is an advantage of accurately indicating a better component in terms of RD (Rate Distortion) -cost. The signaling comprises i) at the Sequence Parameter Set (SPS) step, ii) at the Picture Parameter Set (PPS) step, iii) at the slice header, iv) at the largest Coding Tree Block. , Largest CTB) step, v) prediction unit (PU) step, or vi) partition (Motion partition) step.
한편, 시그널링 오버헤드를 줄이기 위해, 어떤 성분을 제 1성분으로 결정할지 도출하는 방법을 사용할 수도 있다. 본 발명의 실시예에 따르면, 상기 도출 방법은 프레임(또는 픽쳐) 단위로 또는 파티션(Motion partition) 단위로 수행될 수 있다.Meanwhile, in order to reduce signaling overhead, a method of deciding which component to determine as the first component may be used. According to an embodiment of the present invention, the derivation method may be performed in units of frames (or pictures) or in units of partitions.
먼저, 프레임 단위로 상기 제 1성분을 도출할 경우, 이전에 코딩된 프레임의 모션 벡터들의 통계적 정보를 이용할 수 있다. 예를 들어, 이전에 디코딩한 영상이 가로 방향의 움직임 벡터 변화가 더 많을 경우 현재 프레임은 모션 벡터 y성분의 디코딩을 먼저 수행하고, 그 반대의 경우 현재 프레임은 모션 벡터 x성분의 디코딩을 먼저 수행할 수 있다. 본 발명의 실시예에 따르면, 다음과 같은 방법을 통해 프레임 단위에서 제 1성분을 도출할 수 있다.First, when deriving the first component on a frame basis, statistical information of motion vectors of a previously coded frame may be used. For example, if the previously decoded image has more motion vector changes in the horizontal direction, the current frame first decodes the motion vector y component, and vice versa, the current frame decodes the motion vector x component first. can do. According to an embodiment of the present invention, the first component may be derived in frame units through the following method.
i) 이전에 코딩된 프레임의 모션 벡터들의 x성분 및 y성분 각각의 절대값의 평균 크기를 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정한다.i) The average magnitude of the absolute value of each of the x component and the y component of the motion vectors of the previously coded frame is obtained, and the component having the smaller size is determined as the first component.
ii) 이전에 코딩된 프레임의 모션 벡터들의 x성분 및 y성분 각각의 분산(variance)을 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정한다.ii) Obtain the variance of each of the x and y components of the motion vectors of the previously coded frame, and determine the component having the smaller size as the first component.
iii) 이전에 코딩된 프레임의 모션 벡터 차분값들의 x성분 및 y성분 각각의 절대값의 평균 크기를 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정한다.iii) The average magnitude of the absolute value of each of the x component and the y component of the motion vector difference values of the previously coded frame is obtained, and the component having the smaller size is determined as the first component.
iv) 상기 i) 내지 iii)의 방법을 조합한다.iv) the method of i) to iii) is combined.
다음으로, 파티션 단위로 상기 제 1성분을 도출할 경우, 이웃 파티션들의 모션 벡터의 통계적 정보를 이용할 수 있다. 예를 들어, 이웃 파티션들의 모션 벡터가 가로 방향의 변화가 더 많을 경우 현재 파티션은 모션 벡터 y성분의 디코딩을 먼저 수행하고, 그 반대의 경우 현재 파티션은 모션 벡터 x성분의 디코딩을 먼저 수행할 수 있다. 본 발명의 실시예에 따르면, 다음과 같은 방법을 통해 파티션 단위에서 제 1성분을 도출할 수 있다.Next, when the first component is derived in a partition unit, statistical information of motion vectors of neighboring partitions may be used. For example, if the motion vectors of neighboring partitions have more changes in the horizontal direction, the current partition may first decode the motion vector y component, and vice versa, the current partition may decode the motion vector x component first. have. According to an embodiment of the present invention, the first component may be derived in a partition unit through the following method.
i) 이웃 파티션들의 모션 벡터의 x성분 및 y성분 각각의 절대값의 평균 크기를 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정한다.i) The average magnitude of the absolute value of each of the x and y components of the motion vectors of neighboring partitions is obtained, and a component having the smaller size is determined as the first component.
ii) 이웃 파티션들의 모션 벡터의 x성분 및 y성분 각각의 분산(variance)을 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정한다.ii) obtain the variance of each of the x and y components of the motion vectors of the neighbor partitions, and determine a component having a smaller size as the first component.
iii) 이웃 파티션들의 모션 벡터 차분값들의 x성분 및 y성분 각각의 절대값의 평균 크기를 구하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정한다.iii) The average magnitude of the absolute value of each of the x component and the y component of the motion vector difference values of neighboring partitions is obtained, and the component having the smaller size is determined as the first component.
iv) 현재 파티션들의 레지듀얼 정보를 분석하여 수평 방향 주파수와 수직 방향 주파수의 크기를 측정하고, 이 중 더 작은 크기를 갖는 성분을 제 1성분으로 결정한다(그 반대도 가능).iv) Analyze the residual information of the current partitions to measure the magnitude of the horizontal frequency and the vertical frequency, and determine a component having the smaller size as the first component (or vice versa).
v) 현재 파티션의 모양에 따라 가로가 세로 보다 길면 x성분을 제 1성분으로 결정하고, 그렇지 않으면 y성분을 제 1성분으로 결정한다(그 반대도 가능).v) If the width is longer than the length according to the shape of the current partition, the x component is determined as the first component, otherwise the y component is determined as the first component (or vice versa).
vi) 상기 i) 내지 v)의 방법을 조합한다.vi) combine the methods of i) to v) above.
본 발명의 다른 실시예에 따르면, 현재 파티션의 제 1성분을 결정하기 위하여 상기 시그널링 방법과 도출 방법을 조합하여 사용할 수 있다. 즉, 파티션 단위로 각각의 예측 방향(L0/L1)에 대하여 제 1성분을 결정하는 플래그를 전송하되, 특정 조건에 있는 파티션에 대해서는 상기 플래그를 전송하지 않고 직접 제 1성분을 도출하도록 할 수 있다. 본 발명의 실시예에 따라 다음 조건 중 어느 하나에 해당할 경우 상기 플래그를 전송하지 않을 수 있다.According to another embodiment of the present invention, the signaling method and the derivation method may be used in combination to determine the first component of the current partition. That is, a flag for determining a first component for each prediction direction L0 / L1 may be transmitted in partition units, but the first component may be directly derived without transmitting the flag for a partition having a specific condition. . According to an embodiment of the present invention, the flag may not be transmitted when any one of the following conditions is met.
i) 현재 파티션의 모션 벡터 예측에 사용될 유효한 이웃 파티션의 모션 벡터가 1개 또는 0개 일때.i) One or zero motion vectors of a valid neighboring partition to be used for motion vector prediction of the current partition.
유효한 이웃 파티션의 모션 벡터가 1개 도는 0개이면, 현재 파티션의 모션 벡터 x성분 및 y성분 예측값 중 어느 성분을 먼저 처리하든지 나중에 처리할 성분의 예측값은 고정되어 있다. 따라서 이 경우 별도의 플래그를 전송할 필요 없이 임의의 성분을 먼저 코딩하도록 결정할 수 있다. 여기서 이웃 파티션이란 공간적 이웃 파티션 및 시간적 이웃 파티션을 모두 포함할 수 있다. 현재 파티션의 모션 벡터 예측에 사용될 유효한 이웃 파티션의 모션 벡터로는 현재 파티션과 동일한 참조 픽쳐를 갖는 이웃 파티션의 모션 벡터만 포함되도록 할 수도 있고, 또는 다른 참조 픽쳐를 갖는 이웃 파티션의 모션 벡터가 함께 포함되도록 할 수도 있다. 만약, 현재 파티션과 다른 참조 픽쳐를 갖는 이웃 파티션의 모션 벡터가 포함될 경우에는 전술한 바와 같이 참조 픽쳐 간의 시간적 거리를 고려하여 스케일링 된 모션 벡터가 포함될 수 있다. 또한, 시간적 이웃 파티션의 모션 벡터를 사용할 경우에도 참조 픽쳐 간의 시간적 거리를 고려하여 스케일링된 모션 벡터를 사용할 수 있다.If there are one or zero motion vectors of a valid neighboring partition, the predicted value of the component to be processed later is fixed, whichever of the motion vector x component and y component predictive value of the current partition is processed first. In this case, therefore, it is possible to decide to code any component first without having to transmit a separate flag. Here, the neighbor partition may include both a spatial neighbor partition and a temporal neighbor partition. The motion vector of a valid neighbor partition to be used for motion vector prediction of the current partition may include only the motion vector of a neighbor partition having the same reference picture as the current partition, or the motion vector of a neighbor partition having another reference picture is included together. You can also If a motion vector of a neighbor partition having a reference picture different from the current partition is included, the scaled motion vector may be included in consideration of the temporal distance between the reference pictures as described above. In addition, even when using a motion vector of a temporal neighboring partition, a scaled motion vector may be used in consideration of a temporal distance between reference pictures.
ii) 현재 파티션의 모션 벡터 예측에 사용될 유효한 이웃 파티션의 모션 벡터의 x성분 및 y성분 중 유효한 값이 1개인 성분이 있을 경우.ii) When there is a component having one valid value among the x and y components of the motion vector of the valid neighbor partition to be used for motion vector prediction of the current partition.
유효한 값이 1개인 성분을 나중에 처리할 경우, 먼저 처리되는 성분의 값이 무엇이든 관계 없이 나중에 처리되는 성분의 모션 벡터 예측값이 고정되기 때문에 모션 벡터 예측의 효율이 떨어지게 된다. 따라서 이 경우 별도의 플래그를 전송할 필요 없이 상기 유효한 값이 1개인 성분을 먼저 코딩할 수 있다. 예를 들어, 현재 파티션의 모션 벡터 예측값 후보 리스트가 {(5, -1), (5, 3), (5, 7)}일 경우, 모션 벡터 예측값 후보의 x 성분은 {5} 이며, 모션 벡터 예측값 후보의 y 성분은 {-1, 3, 7}이 된다. 이때, 유효한 값이 1개인 x성분을 먼저 처리함으로 현재 파티션의 모션 벡터 y성분 예측의 정확도를 높이는데 이를 사용할 수 있다.When later processing a component having one valid value, the efficiency of motion vector prediction is reduced because the motion vector prediction value of the component to be processed later is fixed regardless of the value of the component to be processed first. Therefore, in this case, the component having one valid value can be coded first without having to transmit a separate flag. For example, if the motion vector predictor candidate list of the current partition is {(5, -1), (5, 3), (5, 7)}, the x component of the motion vector predictor candidate is {5}, and the motion The y component of the vector predictor candidate is {-1, 3, 7}. At this time, by processing the x component having one valid value first, it can be used to increase the accuracy of the motion vector y component prediction of the current partition.
본 발명의 또 다른 실시예에 따르면, 기본적으로 모션 벡터 예측값의 y성분을 먼저 처리하되, 특정 조건에 있는 파티션에 대해서는 x성분을 먼저 처리하는 방법을 사용할 수도 있다. 즉, 현재 파티션의 모션 벡터 예측에 사용된 유효한 이웃 파티션의 모션 벡터 x성분의 값이 1개 밖에 없을 경우, x성분을 먼저 코딩할 수 있다.According to another embodiment of the present invention, a method of processing the y component of the motion vector predicted value first, but processing the x component first for a partition in a specific condition may be used. That is, when there is only one value of the motion vector x component of the valid neighbor partition used for motion vector prediction of the current partition, the x component may be coded first.
한편, 본 발명에서는 도 6에 도시된 바와 같이 기하학적으로 분할된 파티션에 대해서도 모션 벡터 예측을 수행할 수 있다. 이때, 분할된 각 파티션과 인접하는 이웃 파티션들의 모션 벡터를 이용하여 현재 파티션의 모션 벡터 예측값을 구할 수 있다.Meanwhile, in the present invention, motion vector prediction may be performed on geometrically divided partitions as shown in FIG. 6. In this case, a motion vector prediction value of the current partition may be obtained by using motion vectors of neighboring partitions adjacent to each partition.
예를 들어, 도 13에서와 같이 현재 코딩 유닛의 좌측 이웃 파티션 중 가장 상단의 파티션(A), 현재 코딩 유닛의 상단 이웃 파티션 중 가장 좌측의 파티션(B) 및 현재 코딩 유닛의 우측 상단 코너의 이웃 파티션(C)이 모두 현재 파티션(G1)에 인접할 경우, 상기 파티션 A, B, C의 모션 벡터의 중앙값을 현재 파티션(G1)의 모션 벡터 예측값으로 사용할 수 있다. 만약, 이를 만족하지 못할 경우, 이웃 파티션 A, B, E(현재 코딩 유닛의 상단 이웃 파티션 중 가장 우측의 파티션), F(현재 코딩 유닛의 좌측 이웃 파티션 중 가장 하단의 파티션) 및 C의 순서로 현재 파티션(G1)과 인접한 파티션을 검색하여, 해당 이웃 파티션의 모션 벡터를 현재 파티션(G1)의 모션 벡터 예측값으로 사용할 수 있다. 만약, 현재 파티션과 인접하는 이웃 파티션이 없을 경우 현재 파티션의 모션 벡터 예측값은 (0, 0)으로 설정할 수 있다.For example, as shown in FIG. 13, the topmost partition A of the left neighboring partitions of the current coding unit, the leftmost partition B of the top neighboring partitions of the current coding unit, and the neighbors of the upper right corner of the current coding unit. When the partition C is adjacent to the current partition G1, the median of the motion vectors of the partitions A, B, and C may be used as the motion vector prediction value of the current partition G1. If this is not satisfied, neighbor partitions A, B, E (the rightmost partition among the top neighboring partitions of the current coding unit), F (the bottommost partition among the left neighboring partitions of the current coding unit), and C A partition adjacent to the current partition G1 may be searched to use the motion vector of the neighboring partition as the motion vector prediction value of the current partition G1. If there is no neighbor partition adjacent to the current partition, the motion vector prediction value of the current partition may be set to (0, 0).
한편, 본 발명의 다른 실시예에 따르면, 분할선의 각도(θ)를 고려하여 현재 파티션과 동일한 모양의 기하학적 분할 모양을 갖는 이웃 파티션이 있다면, 해당 이웃 파티션의 모션 벡터를 현재 파티션의 모션 벡터 예측값으로 사용할 수 있다.Meanwhile, according to another embodiment of the present invention, if there is a neighbor partition having the geometric partition shape having the same shape as the current partition in consideration of the angle θ of the split line, the motion vector of the neighbor partition is used as the motion vector prediction value of the current partition. Can be used.
또한, 본 발명의 또 다른 실시예에 따르면, 기하학적 분할이 수행된 현재 파티션과 인접하는 이웃 파티션이 없을 경우, 동일한 코딩 유닛 내의 다른 파티션의 모션 벡터를 현재 파티션의 모션 벡터 예측값으로 사용할 수 있다. 즉, 도 12에서 기하학적 분할이 수행된 파티션 G2는 인접하는 이웃 파티션이 없지만, 동일한 코딩 유닛 내의 인접한 다른 파티션인 G1의 모션 벡터를 획득하여 이를 모션 벡터 예측값으로 사용할 수 있다.Further, according to another embodiment of the present invention, when there is no neighbor partition adjacent to the current partition on which the geometric division is performed, the motion vector of another partition in the same coding unit may be used as the motion vector prediction value of the current partition. That is, in FIG. 12, the partition G2 in which the geometric division is performed does not have adjacent neighbor partitions, but may obtain a motion vector of G1, which is another adjacent partition in the same coding unit, and use it as a motion vector prediction value.
현재 파티션의 모션 벡터를 예측함에 있어서, 전술한 바와 같이 이웃 파티션들의 모션 벡터 중앙값 또는 선정된 이웃 파티션의 모션 벡터등을 이용하여 현재 파티션의 모션 벡터 예측을 수행하게 되는데, 모션 벡터 예측값의 정확도가 높을 수록 모션 벡터 차분값이 줄어들게 되어 전송해야할 데이터량이 줄어들게 된다. 그러나 실제 영상 시퀀스에서는 회전, 확대/축소 등의 다양한 모션이 존재하게 되고, 이러한 영상에서는 현재 파티션이 이웃 파티션과 동일한 모션 벡터를 갖게될 가능성이 작아진다.In predicting the motion vector of the current partition, as described above, the motion vector prediction of the current partition is performed by using the median of the motion vectors of the neighboring partitions or the motion vector of the selected neighboring partition. As the motion vector difference is reduced, the amount of data to be transmitted is reduced. However, in the actual image sequence, various motions such as rotation and zooming are present, and in such an image, the possibility that the current partition has the same motion vector as the neighboring partition becomes small.
예를 들어, 도 15는 파티션 X를 포함한 주변 파티션 영역들이 파티션 X를 중심으로 축소되고 있는 상황을 나타내고 있는데, 현재 파티션의 모션 벡터(MV)는 이웃 파티션들의 모션 벡터(MVa, MVb, MVc) 중 그 어느 것과도 같은 값을 갖지 않을 수 있다. 이때, 현재 파티션의 모션 벡터 예측값(MVp)으로서 이웃 파티션들의 모션 벡터 중앙값인 파티션 B의 모션 벡터(MVb)를 사용하게 될 경우(또는 파티션 A, B, C 중 어느 하나의 모션 벡터가 사용될 경우), 실제 모션 벡터(MV)와의 차분값인 MVd가 전송되어야 한다. 따라서, 상기 모션 벡터 차분값(MVd)을 줄이기 위한 방법이 필요하다.For example, FIG. 15 illustrates a situation in which peripheral partition areas including partition X are reduced around partition X. The motion vector MV of the current partition is one of the motion vectors MVa, MVb, and MVc of neighboring partitions. It may not have the same value as anything. In this case, when the motion vector MVb of partition B, which is the median motion vector of neighboring partitions, is used as the motion vector prediction value MVp of the current partition (or when the motion vector of any of partitions A, B, and C is used). MVd, which is a difference from the actual motion vector MV, should be transmitted. Therefore, a method for reducing the motion vector difference value MVd is needed.
본 발명의 실시예에 따르면, 현재 파티션 X가 이웃 파티션 A, B, C와 유사한 모션 벡터를 갖는다는 가정하에, 이웃 파티션들의 모션 벡터를 이용하여 아핀(affine) 변환을 수행할 수 있다. 이렇게 획득된 아핀 변환 벡터를 통해 현재 파티션 X의 확대/축소 등의 동작을 보다 정확히 예측할 수 있으며, 이를 통해 모션 벡터 차분값을 줄일 수 있게 된다.According to an embodiment of the present invention, affine transformation may be performed using the motion vectors of neighboring partitions on the assumption that the current partition X has a motion vector similar to neighboring partitions A, B, and C. The affine transformation vector thus obtained can more accurately predict the operation of the current partition X, etc., thereby reducing the motion vector difference value.
본 발명의 실시예에 따라 이웃 파티션들의 모션 벡터로부터 아핀 변환 벡터를 구하는 방법을 도 16을 참조로 설명한다. 좌표 계산을 위한 원점(0, 0)은 현재 파티션 X의 중심으로 하고, 이웃 파티션 A, B, C의 중심의 좌표를 각각 (xa, ya), (xb, yb), (xc, yc)라 한다. 또한, 각 이웃 파티션의 중심이 각각의 모션 벡터(MVa, MVb, MVc)에 의해 이동한 점을 (xa', ya'), (xb', yb'), (xc', yc')라고 한다.A method of obtaining an affine transform vector from motion vectors of neighboring partitions according to an embodiment of the present invention will be described with reference to FIG. 16. The origin (0, 0) for coordinate calculation is the center of the current partition X, and the coordinates of the centers of neighboring partitions A, B, and C are (xa, ya), (xb, yb), and (xc, yc), respectively. do. In addition, the point where the center of each neighboring partition is moved by each motion vector MVa, MVb, MVc is called (xa ', ya'), (xb ', yb'), (xc ', yc'). .
이때, 상기 세 개의 이웃 파티션 A, B 및 C의 모션으로부터 구한 아핀 변환 벡터 A는 다음과 같다.In this case, the affine transformation vector A obtained from the motions of the three neighboring partitions A, B, and C is as follows.
수학식 1
상기 아핀 변환 벡터 A를 이용하여 현재 파티션의 모션 벡터 예측값(MVp)을 다음과 같이 구할 수 있다.The motion vector prediction value MVp of the current partition can be obtained using the affine transform vector A as follows.
MVp = (p3, p6)MVp = (p3, p6)
한편, 본 발명의 다른 실시예에 따르면, 디코딩된 이웃 파티션들과 현재 파티션의 모션 벡터로부터 파라메트틱(parametric) 변환 벡터를 계산하고, 이를 이용하여 현재 파티션의 모션 보상(motion compensation)을 수행할 수 있다. 이때, 상기 파라메트릭 변환 벡터의 모델로서 전술한 방법의 아핀 변환 모델을 이용할 수 있다.Meanwhile, according to another embodiment of the present invention, a parametric transform vector is calculated from the decoded neighbor partitions and the motion vector of the current partition, and motion compensation of the current partition is performed using the same. Can be. In this case, the affine transformation model of the aforementioned method may be used as the model of the parametric transformation vector.
도 16을 참조로 설명하면, 좌표 계산을 위한 원점(0, 0)은 현재 파티션 X의 중심으로 하고, 이웃 파티션 A, B, C 및 현재 파티션 X의 중심의 좌표를 각각 (xa, ya), (xb, yb), (xc, yc), (xd, yd)라 한다. 또한, 각 이웃 파티션 A, B, C 및 현재 파티션 X의 중심이 각각의 모션 벡터(MVa, MVb, MVc, MV)에 의해 이동한 점을 (xa', ya'), (xb', yb'), (xc', yc'), (xd', yd')라고 한다.Referring to FIG. 16, the origin (0, 0) for the coordinate calculation is the center of the current partition X, and the coordinates of the centers of the neighbor partitions A, B, C and the current partition X are (xa, ya), (xb, yb), (xc, yc) and (xd, yd). Also, the centers of the neighboring partitions A, B, C and the current partition X are moved by the respective motion vectors MVa, MVb, MVc, and MV (xa ', ya'), (xb ', yb'). ), (xc ', yc') and (xd ', yd').
이때, 상기 세 개의 이웃 파티션 A, B, C와 현재 파티션 X의 모션으로부터 구한 아핀 변환 벡터 A'는 다음과 같다.In this case, the affine transformation vector A 'obtained from the motions of the three neighboring partitions A, B, and C and the current partition X is as follows.
수학식 2
여기서, here,
상기 아핀 변환 벡터 A'를 이용하여 현재 파티션에 대한 모션 보상을 수행할 수 있다. 즉, 현재 파티션 X 내부의 임의의 점의 좌표가 (x, y)인 경우 참조 픽쳐에서의 좌표 (x', y')는 다음과 같이 계산할 수 있다.Motion compensation for the current partition may be performed using the affine transform vector A '. That is, when the coordinate of any point in the current partition X is (x, y), the coordinate (x ', y') in the reference picture may be calculated as follows.
x' = p1*x + p2*y + p3x '= p1 * x + p2 * y + p3
y' = p4*x + p5*y + p6y '= p4 * x + p5 * y + p6
이때, 상기 (x', y')는 실수 단위로 계산되므로, 참조 픽쳐가 1/4 픽셀 단위로 보간(interpolation) 되어 있는 경우에는 1/4 단위로 반올림한 좌표값 (x'', y'')을 구하여, 해당 참조 픽쳐의 (x'', y'')의 픽셀값을 현재 파티션의 (x, y) 위치의 픽셀값으로 할당할 수 있다.At this time, since the (x ', y') is calculated in real units, when the reference picture is interpolated in units of 1/4 pixels, the coordinate value (x '', y 'is rounded in units of 1/4) ') Can be obtained, and the pixel value of (x' ', y' ') of the corresponding reference picture can be allocated to the pixel value of the position (x, y) of the current partition.
본 발명의 또 다른 실시예에 따르면, 상기 아핀 변환 벡터 A를 이용하여 구한 현재 파티션의 모션 벡터 예측값(MVp)을 기존의 모션 벡터 경쟁에 사용되는 후보 중 하나로 추가할 수도 있다.According to another embodiment of the present invention, the motion vector prediction value MVp of the current partition obtained by using the affine transform vector A may be added as one of candidates used for existing motion vector competition.
이상에서 설명된 실시예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성하는 것도 가능하다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.The embodiments described above are the components and features of the present invention are combined in a predetermined form. Each component or feature should be considered optional unless stated otherwise. Each component or feature may be embodied in a form that is not combined with other components or features. It is also possible to combine some of the components and / or features to form an embodiment of the invention. The order of the operations described in the embodiments of the present invention may be changed. Some components or features of one embodiment may be included in another embodiment or may be replaced with corresponding components or features of another embodiment.
본 발명이 적용되는 디코딩/인코딩 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 인코딩 방법에 의해 생성된 비트스트림은 컴퓨터가 읽을 수 있는 기록 매체에 저장되거나, 유/무선 통신망을 이용해 전송될 수 있다.The decoding / encoding method to which the present invention is applied may be stored in a computer-readable recording medium that is produced as a program for execution on a computer, and the computer-readable recording medium may also have multimedia data having a data structure according to the present invention. Can be stored in. The computer readable recording medium includes all kinds of storage devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. In addition, the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted using a wired / wireless communication network.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어적인 구현에 의하면, 여기에 설명되는 실시예는 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays, 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 파티션 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시예들이 제어부 자체로 구현될 수 있다.Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. According to a hardware implementation, embodiments described herein include application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), and the like. It may be implemented using at least one of processors, controllers, micro-controllers, microprocessors, and electrical partitions for performing other functions. The described embodiments may be implemented by the controller itself.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리에 저장되고, 제어부에 의해 실행될 수 있다.According to the software implementation, embodiments such as the procedures and functions described herein may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein. Software code may be implemented in software applications written in a suitable programming language. The software code may be stored in a memory and executed by a controller.
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.As described above, although the present invention has been described by way of limited embodiments and drawings, the present invention is not limited thereto and is intended by those skilled in the art to which the present invention pertains. Of course, various modifications and variations are possible within the scope of the claims to be described.
본 발명은 비디오 신호를 인코딩 또는 디코딩 하는데 적용될 수 있다.The present invention can be applied to encoding or decoding a video signal.
Claims (9)
Applications Claiming Priority (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US34826110P | 2010-05-26 | 2010-05-26 | |
| US61/348,261 | 2010-05-26 | ||
| US34919310P | 2010-05-27 | 2010-05-27 | |
| US34919410P | 2010-05-27 | 2010-05-27 | |
| US61/349,193 | 2010-05-27 | ||
| US61/349,194 | 2010-05-27 | ||
| US36142410P | 2010-07-04 | 2010-07-04 | |
| US61/361,424 | 2010-07-04 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2011149292A2 true WO2011149292A2 (en) | 2011-12-01 |
| WO2011149292A3 WO2011149292A3 (en) | 2012-03-08 |
Family
ID=45004586
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2011/003877 Ceased WO2011149292A2 (en) | 2010-05-26 | 2011-05-26 | Method and apparatus for processing video signals |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2011149292A2 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2017026681A1 (en) * | 2015-08-07 | 2017-02-16 | 엘지전자 주식회사 | Inter prediction method and apparatus in video coding system |
| CN116193139A (en) * | 2020-06-05 | 2023-05-30 | Oppo广东移动通信有限公司 | Inter-frame prediction method, decoder, encoder and computer storage medium |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2725577B1 (en) * | 1994-10-10 | 1996-11-29 | Thomson Consumer Electronics | CODING OR DECODING METHOD OF MOTION VECTORS AND CODING OR DECODING DEVICE USING THE SAME |
| KR100587561B1 (en) * | 2004-04-08 | 2006-06-08 | 삼성전자주식회사 | Method and apparatus for implementing motion scalability |
| FR2872974A1 (en) * | 2004-07-06 | 2006-01-13 | Thomson Licensing Sa | ADAPTIVE CODING METHOD OR DEVICE |
-
2011
- 2011-05-26 WO PCT/KR2011/003877 patent/WO2011149292A2/en not_active Ceased
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2017026681A1 (en) * | 2015-08-07 | 2017-02-16 | 엘지전자 주식회사 | Inter prediction method and apparatus in video coding system |
| US10582215B2 (en) | 2015-08-07 | 2020-03-03 | Lg Electronics Inc. | Inter prediction method and apparatus in video coding system |
| US11122290B2 (en) | 2015-08-07 | 2021-09-14 | Lg Electronics Inc. | Inter prediction method and apparatus in video coding system |
| US11503334B2 (en) | 2015-08-07 | 2022-11-15 | Lg Electronics Inc. | Inter prediction method and apparatus in video coding system |
| US11902569B2 (en) | 2015-08-07 | 2024-02-13 | Lg Electronics Inc. | Inter prediction method and apparatus in video coding system |
| CN116193139A (en) * | 2020-06-05 | 2023-05-30 | Oppo广东移动通信有限公司 | Inter-frame prediction method, decoder, encoder and computer storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2011149292A3 (en) | 2012-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2011149291A2 (en) | Method and apparatus for processing a video signal | |
| WO2011019247A2 (en) | Method and apparatus for encoding/decoding motion vector | |
| WO2019147079A1 (en) | Method and apparatus for video signal processing using sub-block based motion compensation | |
| WO2011099792A2 (en) | Method and apparatus for processing a video signal | |
| WO2011090313A2 (en) | Method and apparatus for encoding/decoding images using a motion vector of a previous block as a motion vector for the current block | |
| WO2011019246A2 (en) | Method and apparatus for encoding/decoding image by controlling accuracy of motion vector | |
| WO2011126277A2 (en) | Low complexity entropy-encoding/decoding method and apparatus | |
| WO2011019234A2 (en) | Method and apparatus for encoding and decoding image by using large transformation unit | |
| WO2017052000A1 (en) | Method and apparatus for motion vector refinement-based inter prediction in image coding system | |
| WO2013069932A1 (en) | Method and apparatus for encoding image, and method and apparatus for decoding image | |
| WO2011126285A2 (en) | Method and apparatus for encoding and decoding information on encoding modes | |
| WO2016204360A1 (en) | Method and device for predicting block on basis of illumination compensation in image coding system | |
| WO2011139099A2 (en) | Method and apparatus for processing a video signal | |
| WO2017057953A1 (en) | Method and device for coding residual signal in video coding system | |
| WO2017069419A1 (en) | Intra-prediction method and apparatus in video coding system | |
| WO2012005551A2 (en) | Method and apparatus for entropy encoding/decoding a transform coefficient | |
| WO2016200043A1 (en) | Method and apparatus for inter prediction on basis of virtual reference picture in video coding system | |
| WO2012023763A2 (en) | Inter prediction encoding method | |
| WO2010114283A9 (en) | Method and apparatus for processing video signals | |
| WO2011010900A2 (en) | Method and apparatus for encoding images and method and apparatus for decoding images | |
| WO2013077659A1 (en) | Method and apparatus for predictive encoding/decoding of motion vector | |
| WO2013157820A1 (en) | Video coding method and device using high-speed edge detection, and related video decoding method and device | |
| WO2015194913A1 (en) | Method for encoding/decoding image and device using same | |
| WO2017052272A1 (en) | Method and apparatus for intra prediction in video coding system | |
| WO2014178563A1 (en) | Intra prediction method and apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11786924 Country of ref document: EP Kind code of ref document: A2 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 11786924 Country of ref document: EP Kind code of ref document: A2 |