Video decoding method
The video decoding method improves encoding and decoding efficiency by extracting and utilizing temporal motion information from reference pictures, addressing inefficiencies in high-definition and ultra-high-definition video compression.
Patent Information
- Application Number
- JP2024193933
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2011-12-19
- Filing Date
- 2024-11-05
- Publication Date
- 2025-01-20
- Estimated Expiration
- 2031-12-19
Smart Images

Figure 2025010421000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to video processing, and more particularly to a video decoding method. [Background technology]
[0002] Recently, as broadcasting services with HD (High Definition) resolution are expanding not only domestically but also globally, many users are becoming accustomed to high-resolution, high-quality images, and as a result, many organizations are spurring the development of next-generation imaging devices. In addition, interest in UHD (Ultra High Definition), which has a resolution four times that of HDTV, is growing along with HDTV, and compression techniques for higher resolution, higher quality images are being demanded.
[0003] For video compression, techniques such as inter prediction, which predicts pixel values contained in a current picture from previous and / or subsequent pictures, intra prediction, which predicts pixel values contained in a current picture using pixel information within the current picture, and entropy coding, which assigns short codes to symbols that occur frequently and long codes to symbols that occur less frequently, can be used. Summary of the Invention [Problem to be solved by the invention]
[0004] An object of the present invention is to provide a video encoding method capable of improving the efficiency of video encoding / decoding.
[0005] Another technical object of the present invention is to provide a video decoding method and apparatus capable of improving the efficiency of video encoding / decoding.
[0006] Another technical object of the present invention is to provide an inter prediction method and apparatus capable of improving efficiency of video encoding / decoding.
[0007] Another technical object of the present invention is to provide a method and apparatus for encoding temporal motion information, which can improve the efficiency of video encoding / decoding.
[0008] Another technical object of the present invention is to provide a method and apparatus for decoding temporal motion information, which can improve the efficiency of video encoding / decoding. [Means for solving the problem]
[0009] 1. An embodiment of the present invention is a video decoding method, comprising: deriving reference motion information for a unit to be decoded in a current picture; and performing motion compensation for the unit to be decoded using the derived reference motion information, wherein the reference motion information is motion information included in a reference picture for the current picture, and includes at least one of a reference picture list, a reference picture index, a motion vector, a prediction direction, and a motion vector predictor.
[0010] In 2.1, the reference motion information derivation step further includes a step of extracting the reference motion information from the reference picture.
[0011] In 3.2, the reference motion information extraction step further includes a step of counting the number of occurrences of each of the multiple motion information in the reference picture to obtain count information, and a step of selecting the reference motion information from the multiple motion information in the reference picture based on the obtained count information.
[0012] In 4.2, the reference motion information extraction step further includes a step of performing a median operation on the motion information in the reference picture to derive a median motion information value, and extracting the median motion information value as the reference motion information.
[0013] In 5.2, the reference motion information extracting step further includes a step of performing sub-sampling on the motion information in the reference picture.
[0014] In 6.5, the sub-sampling performing step further includes a step of selecting a block at a predetermined position from a plurality of blocks of a second size included in a block of a first size in the reference picture, and a step of extracting motion information corresponding to the selected block as the reference motion information, and each motion information in the reference picture can be stored in units of blocks of the second size.
[0015] In 7.6, the predetermined position is the top left position within the block of the first size.
[0016] In 8.2, the reference motion information extraction step further includes a step of grouping motion information in the reference picture into a plurality of groups, and a step of selecting a predetermined number of motion information from each of the plurality of groups as the reference motion information based on the frequency of occurrence of motion information, and in the grouping step, the grouping is performed based on at least one characteristic of a depth value of a unit included in the reference picture, a size of a unit included in the reference picture, and a partition type of a unit included in the reference picture.
[0017] In 9.2, the reference motion information extraction step further includes a step of dividing the reference picture into multiple regions, and a step of selecting a predetermined number of motion information from each of the multiple regions as the reference motion information based on the frequency of occurrence of the motion information.
[0018] In 10.2, when the number of reference pictures is two or more, the reference motion information extraction step further includes a step of selecting a predetermined number of motion information from each of the reference pictures based on the occurrence frequency of the motion information.
[0019] In 11.10, the reference motion information extraction step further includes a step of deriving a temporal distance from the current picture for each of the reference pictures, and a step of scaling the selected motion information based on the derived temporal distance.
[0020] In 12.1, the performing motion compensation step further includes a step of receiving and decoding a motion information difference for the unit to be decoded, a step of deriving a predicted motion vector for the unit to be decoded, a step of deriving a motion vector for the unit to be decoded using the decoded motion vector difference and the derived predicted motion vector, and a step of performing motion compensation for the unit to be decoded using the derived motion vector.
[0021] In 13.12, the predicted motion vector derivation step further includes a step of using the reference motion information to generate a motion vector candidate for the unit to be decoded, and a step of using the motion vector candidate to derive the predicted motion vector.
[0022] In 14.1, the motion compensation performing step further includes a step of receiving and decoding a merge index, a step of generating a merge candidate list using the reference motion information, a step of selecting motion information indicated by the merge index from among the merge candidates included in the merge candidate list, and a step of performing motion compensation for the unit to be decoded using the selected motion information.
[0023] In 15.1, when the number of reference motion information is two or more, the motion compensation performing step further includes a step of receiving and decoding an encoded motion information index, a step of selecting motion information indicated by the motion information index from the reference motion information, and a step of performing motion compensation for the unit to be decoded using the selected motion information.
[0024] In 16.1, the reference motion information deriving step further includes the steps of receiving encoded reference motion information and decoding the received reference motion information.
[0025] In 17.16, if the number of the encoded reference motion information is two or more, the decoding step uses DPCM (Differential Pulse Code Modulation) to decode the received reference motion information. Effect of the Invention
[0026] According to the video encoding method of the present invention, the efficiency of video encoding / decoding can be improved.
[0027] According to the video decoding method according to the present invention, the efficiency of video encoding / decoding can be improved.
[0028] According to the inter prediction method according to the present invention, it is possible to improve the efficiency of video encoding / decoding.
[0029] According to the method for encoding temporal motion information according to the present invention, the efficiency of video encoding / decoding can be improved.
[0030] According to the method for decoding temporal motion information according to the present invention, the efficiency of video encoding / decoding can be improved. [Brief description of the drawings]
[0031] [Figure 1] 1 is a block diagram showing a configuration of an embodiment of a video encoding device to which the present invention is applied; [Diagram 2] 1 is a block diagram showing a configuration of an embodiment of a video decoding device to which the present invention is applied; [Diagram 3] FIG. 1 is a conceptual diagram illustrating an embodiment in which one unit is divided into multiple sub-units; [Figure 4] 1 is a flow chart that outlines an embodiment of a method for inter prediction at an encoder; [Diagram 5] 1 illustrates an embodiment of a reference picture division method. [Figure 6] 1 illustrates an example of a reference picture used for inter prediction and / or motion compensation for a current unit to be coded. [Figure 7] 1 is a flow chart that outlines an embodiment of a method for inter prediction at a decoder. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0032] Hereinafter, the embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the embodiments of the present invention, if a detailed description of related known configurations or functions is determined to obscure the gist of the present specification, the detailed description will be omitted.
[0033] When a component is described as being "connected" or "coupled" to another component, it should be understood that the component may be directly connected or coupled to the other component, but there may be other components in between. In addition, in the present invention, the content of a description that "includes" a specific component does not exclude components other than the component, but means that additional components may be included in the implementation of the present invention or within the scope of the technical idea of the present invention.
[0034] Terms such as "first" and "second" may be used to describe various components, but the components should not be limited by the terms. The terms are used only to distinguish one component from another. For example, a first component may be named a second component, and similarly, a second component may be named a first component, without departing from the scope of the present invention.
[0035] In addition, components shown in the embodiments of the present invention are illustrated independently to show different characteristic functions, and do not mean that each component is configured as a separate hardware or software unit. That is, each component is included as a list of components for convenience of explanation, and at least two components among each component may be integrated into one component, or one component may be divided into multiple components to perform a function, and such integrated and separated embodiments of each component are included in the scope of the present invention as long as they do not deviate from the essence of the present invention.
[0036] In addition, some components are not essential components for performing essential functions in the present invention, but are optional components merely for improving performance. The present invention may be embodied including only components essential for embodying the essence of the present invention, excluding components merely used for improving performance, and a structure including only essential components, excluding optional components merely used for improving performance, is also included in the scope of the present invention.
[0037] FIG. 1 is a block diagram showing the configuration of an embodiment of a video encoding device to which the present invention is applied.
[0038] Referring to FIG. 1, the video encoding device 100 includes a motion prediction unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference picture buffer 190.
[0039] The video encoding device 100 may perform encoding in an intra mode or an inter mode on an input image and output a bitstream. Intra prediction means prediction within a frame, and inter prediction means prediction between frames. In the case of an intra mode, the switch 115 may be switched to intra, and in the case of an inter mode, the switch 115 may be switched to inter. The video encoding device 100 may generate a prediction block for an input block of an input image, and then encode a residual between the input block and the prediction block.
[0040] In the case of the intra mode, the intra prediction unit 120 may generate a prediction block by performing spatial prediction using pixel values of already-encoded blocks surrounding the current block.
[0041] In the case of an inter mode, the motion prediction unit 111 may obtain a motion vector by searching for an area that best matches an input block in a reference image stored in the reference picture buffer 190 during the motion prediction process. The motion compensation unit 112 may generate a prediction block by performing motion compensation using the motion vector. Here, the motion vector is a two-dimensional vector used in inter prediction and may indicate an offset between a current picture to be encoded / decoded and a reference picture.
[0042] The subtractor 125 can generate a residual block based on the difference between the input block and the generated prediction block. The transform unit 130 can output a transform coefficient by performing a transform on the residual block. The quantization unit 140 can output a quantized coefficient by quantizing the input transform coefficient based on a quantization parameter.
[0043] The entropy coding unit 150 can output a bit stream by performing entropy coding based on the value calculated by the quantization unit 140 or the coding parameter value calculated during the coding process.
[0044] When entropy coding is applied, a smaller number of bits are assigned to symbols having a higher occurrence probability, and a larger number of bits are assigned to symbols having a lower occurrence probability to represent the symbols, thereby reducing the size of the bit string for the symbol to be coded. Therefore, the compression performance of the video coding can be improved through the entropy coding. The entropy coding unit 150 can use coding methods such as exponential golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) for the entropy coding.
[0045] Since the video encoding apparatus according to the embodiment of Fig. 1 performs inter-prediction encoding, i.e., inter-frame predictive encoding, a currently encoded image needs to be decoded and stored in order to be used as a reference image. Therefore, the quantized coefficients are inverse quantized by the inverse quantization unit 160 and inverse transformed by the inverse transform unit 170. The inverse quantized and inverse transformed coefficients are added to the predicted block via the adder 175 to generate a reconstructed block.
[0046] The reconstructed block passes through a filter unit 180, which may apply at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstructed block or the reconstructed picture. The filter unit 180 may also be called an adaptive in-loop filter. The deblocking filter may remove block distortion that occurs at the boundary between blocks. The SAO may add an appropriate offset value to pixel values to compensate for coding errors. The ALF may perform filtering based on a value obtained by comparing a reconstructed image with an original image. The reconstructed block that has passed through the filter unit 180 may be stored in a reference picture buffer 190.
[0047] FIG. 2 is a block diagram showing the configuration of an embodiment of a video decoding device to which the present invention is applied.
[0048] Referring to FIG. 2, the video decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra prediction unit 240, a motion compensation unit 250, an adder 255, a filter unit 260, and a reference picture buffer 270.
[0049] The video decoding apparatus 200 may receive a bitstream output from an encoder and perform decoding in an intra mode or an inter mode to output a reconstructed image, i.e., a restored image. In the intra mode, a switch may be converted to intra, and in the inter mode, a switch may be converted to inter. The video decoding apparatus 200 may obtain a residual block from the input bitstream to generate a prediction block, and may then generate a reconstructed block, i.e., a restored block, by adding the residual block and the prediction block.
[0050] The entropy decoding unit 210 may entropy decode the input bit stream according to a probability distribution to generate symbols including symbols in the form of quantized coefficients. The entropy decoding method is the same as the entropy coding method described above.
[0051] When the entropy decoding method is applied, a smaller number of bits are assigned to symbols having a higher occurrence probability, and a larger number of bits are assigned to symbols having a lower occurrence probability to represent the symbols, thereby reducing the size of the bit string for each symbol. Therefore, the compression performance of the image decoding can be improved through the entropy decoding method.
[0052] The quantized coefficients are inverse quantized in the inverse quantization unit 220 and inverse transformed in the inverse transform unit 230, and a residual block may be generated as a result of the inverse quantization / inverse transformation of the quantized coefficients.
[0053] In the case of the intra mode, the intra prediction unit 240 may generate a prediction block by performing spatial prediction using pixel values of already-encoded blocks surrounding the current block. In the case of the inter mode, the motion compensation unit 250 may generate a prediction block by performing motion compensation using a motion vector and a reference image stored in the reference picture buffer 270.
[0054] The residual block and the prediction block are added via an adder 255, and the added block may pass through a filter unit 260. The filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to the reconstructed block or the reconstructed picture. The filter unit 260 may output a reconstructed image, i.e., a reconstructed image. The reconstructed image may be stored in a reference picture buffer 270 and used for inter prediction.
[0055] Hereinafter, a unit refers to a unit of video encoding and decoding. A coding or decoding unit in video encoding and decoding refers to a divided unit when dividing an image and encoding or decoding the divided unit, and may be called a block, coding unit (CU), coding block, prediction unit (PU), prediction block, transform unit (TU), transform block, etc. Also, one unit may be divided into smaller sub-units.
[0056] Here, the prediction unit means a basic unit that is a unit of prediction and / or motion compensation. The prediction unit may be divided into a plurality of partitions, and each partition may be referred to as a prediction unit partition. When the prediction unit is divided into a plurality of partitions, each of the plurality of partitions is a basic unit that is a unit of prediction and / or motion compensation. Hereinafter, in the embodiment of the present invention, each partition into which the prediction unit is divided may also be referred to as a prediction unit.
[0057] Meanwhile, as described above, in the inter mode, the encoder and decoder may perform inter prediction and / or motion compensation on the encoding / decoding target unit. Here, the encoding / decoding target unit refers to a prediction unit and / or a prediction unit partition. In this case, the encoder and decoder may improve the efficiency of encoding / decoding by using the motion vector of a reconstructed neighbor unit and / or a collocated unit. Here, the reconstructed neighbor unit refers to a unit that is adjacent to the encoding / decoding target unit or located at a corner of the encoding / decoding target unit and has already been encoded or decoded and restored. In addition, the collocated unit refers to a unit that exists at the same spatial position as the encoding / decoding target unit in the reconstructed reference picture. Hereinafter, the motion vector of a unit included in a reference picture is referred to as a temporal motion vector. For example, the motion vector of the collocated unit may be called a temporal motion vector.
[0058] For example, the encoder and decoder can use the motion vector and / or temporal motion vector of the reconstructed neighboring unit as the motion vector of the current unit to be encoded / decoded. At this time, the encoder does not code the motion vector for the current unit to be encoded / decoded, since the motion vector and temporal motion vector of the reconstructed neighboring unit are used in the current unit to be encoded / decoded. Therefore, the amount of bits transmitted to the decoder can be reduced, and the coding efficiency can be improved. Such inter prediction modes include skip mode and / or direct mode.
[0059] In this case, the encoder may use an identifier and / or index indicating which of the reconstructed neighboring units a motion vector of which is to be used. The inter-prediction mode in which the identifier and / or index is used may be called a merge mode.
[0060] As another example, the encoder and decoder may use a predicted motion vector for a unit to be encoded / decoded when encoding the motion vector of the unit to be encoded / decoded after performing prediction and / or compensation using the motion vector of the unit to be encoded / decoded. Here, the predicted motion vector is a motion vector or a temporal motion vector of a reconstructed neighboring unit. That is, the encoder and decoder may efficiently encode the motion vector of the unit to be encoded / decoded by using the motion vector or the temporal motion vector of the reconstructed neighboring unit as a predicted motion vector.
[0061] The encoder may generate a motion vector difference based on a difference between a motion vector of a unit to be encoded and a predicted motion vector. Here, the motion vector difference means a residual value between a motion vector of a unit to be encoded and a predicted motion vector. The encoder may encode the generated motion vector difference and transmit it to a decoder. At this time, the decoder may decode the motion vector difference and derive a motion vector of a unit to be decoded through a sum of the decoded motion vector difference and the predicted motion vector. Such an inter prediction method may be called MVP (Motion Vector Prediction). By using MVP, the amount of information transmitted from the encoder to the decoder may be reduced, and the efficiency of encoding may be improved.
[0062] In this case, the encoder may use an identifier and / or index indicating which of the reconstructed neighboring units the motion vector of which is to be used. MVP in which the identifier and / or index are additionally used is also called Advanced Motion Vector Prediction (AMVP).
[0063] In the above-mentioned skip mode, direct mode, merge mode, MVP, AMVP, etc., motion information in a reference picture can be used for prediction and / or motion compensation of a current encoding / decoding target unit. The motion information in a reference picture used for prediction and / or motion compensation of a current encoding / decoding target unit may be called temporal motion information. The temporal motion information may include, for example, a temporal motion vector.
[0064] Here, the motion information refers to coding parameters used in inter prediction and motion compensation. The coding parameters may include not only information that is coded by an encoder and transmitted to a decoder, such as a syntax element, but also information that can be inferred during coding or decoding, and refer to information required when coding or decoding an image. The motion information may include at least one of a reference picture list, a reference picture index, a motion vector, a prediction direction, and a motion vector predictor.
[0065] Here, the reference picture list is a list consisting of a plurality of reference pictures used in inter prediction. Two reference picture lists may be used in inter prediction, one of which may be called reference picture list 0 and the other may be called reference picture list 1. At this time, a prediction direction included in the motion information is information indicating which reference picture list is used in inter prediction. That is, the prediction direction may indicate whether reference picture list 0 is used, reference picture list 1 is used, or both reference picture list 0 and reference picture list 1 are used.
[0066] The reference picture index is an index indicating a reference picture used for inter prediction of a current unit to be coded / decoded among reference pictures included in a reference picture list, and the motion vector predictor means a unit that is a prediction candidate and / or a motion vector of the unit that is a prediction candidate when the encoder and decoder predict a motion vector.
[0067] The above-mentioned coding parameters may include values and / or statistics of an inter prediction mode, a coded block pattern (CBP), a block size, block partition information, etc., as well as motion information. Here, the block partition information may include information on the depth of a unit. The depth information may indicate the number of times and / or the degree to which a unit is partitioned.
[0068] FIG. 3 is a conceptual diagram illustrating an embodiment in which one unit is divided into a number of sub-units.
[0069] A unit may be hierarchically divided with depth information under a tree structure. Each divided subunit may have depth information. The depth information may include information on the size of the subunit to indicate the number and / or degree to which the unit is divided.
[0070] Referring to 310 in Figure 3, the most upper node may be called a root node and may have the smallest depth value, in which case the most upper node may have a depth of level 0 and may indicate the first unit that is not divided.
[0071] A lower node having a depth of level 1 may indicate a unit in which the original unit is divided once, and a lower node having a depth of level 2 may indicate a unit in which the original unit is divided twice. For example, in 320 of FIG. 3, unit a corresponding to node a is a unit in which the original unit is divided once, and may have a depth of level 1.
[0072] A leaf node at level 3 may indicate a unit that is a result of dividing the first unit three times. For example, in 320 of FIG. 3, unit d corresponding to node d is a unit that is a result of dividing the first unit three times, and may have a depth of level 3. Therefore, the leaf node at level 3, which is the lowest node, may have the deepest depth.
[0073] As described above, when performing inter prediction and / or motion compensation using skip mode, direct mode, merge mode, MVP, AMVP, etc., the encoder and decoder can use temporal motion information (e.g., temporal motion vectors). However, the inter prediction method using temporal motion information has a drawback that a reference picture for a picture to be encoded / decoded must be stored in a memory. In addition, if a reference picture is lost, the motion information (e.g., temporal motion vectors) in the reference picture cannot be used accurately, so that errors may be propagated as the encoding / decoding process proceeds. Therefore, the inter prediction method using temporal motion information may also have a drawback in terms of error resiliency. Therefore, there is a need for an inter prediction method that can efficiently encode / decode motion information in a reference picture and improve error resiliency.
[0074] FIG. 4 is a flow chart that illustrates a schematic example of an embodiment of a method for inter prediction at an encoder.
[0075] Referring to Fig. 4, an encoder may extract motion information of a reference picture for a current picture (S410). At this time, the encoder may extract N pieces of motion information from the motion information included in the reference picture. The extracted motion information may be used for inter prediction and / or motion compensation of a unit to be coded in the current picture. Here, N represents a positive integer, and N in the following embodiments refers to a positive integer.
[0076] Hereinafter, an embodiment of a method for extracting motion information of a reference picture will be described. The encoder can extract the motion information of the reference picture using at least one of the motion information extraction methods described below.
[0077] As an example of the motion information extraction method, the encoder may extract motion information according to the frequency of occurrence of motion information in a reference picture. In this case, for example, the encoder may select and extract N pieces of motion information in order of frequency of occurrence from the motion information in the reference picture. Table 1 below shows an example of the motion information extraction method according to the frequency of occurrence of motion information.
[0078] [Table 1]
[0079] Referring to Table 1, the encoder may count the number of occurrences of motion vectors in a reference picture during encoding to obtain count information. In this case, the encoder may select N motion vectors in descending order of frequency of occurrence. In the embodiment of Table 1, when N is 3, the extracted motion vectors are [0,0], [1,0], and [0,-1].
[0080] As another example, the encoder may obtain count information for each component of a motion vector, not the motion vector itself, during the encoding process. Here, since the motion vector has a two-dimensional vector form and can be expressed as [x, y], each component of the motion vector means an x component and a y component. In this case, the encoder may select N components in order of high frequency of occurrence for each of the motion vector components. The encoder may extract N motion vectors using the selected motion vector components.
[0081] In the above embodiment, the encoder may quantize the motion information of the reference picture, and then count the frequency of occurrence of the quantized motion information to obtain count information. For example, the encoder may quantize a motion vector in a quarter pixel unit to a motion vector in an integer pixel unit during the encoding process, and count the frequency of occurrence of the quantized motion vector. In this case, the encoder may select and / or extract N motion vectors in order of high frequency of occurrence from the quantized motion vectors.
[0082] At this time, the encoder can perform quantization of the motion information according to a quantization step size. The information on the quantization step size is stored in the same manner in the encoder and the decoder. At this time, since the decoder knows the quantization step size used in the encoder, the encoder does not transmit the information on the quantization step size to the decoder. If the decoder does not have the information on the quantization step size, the encoder can encode the information on the quantization step size and transmit it to the decoder through a bit stream. The decoder can decode the transmitted quantization step size information and use it to quantize the motion information.
[0083] As another embodiment of the motion information extraction method, the encoder can extract temporal motion information by performing a predetermined process on a plurality of pieces of motion information contained in the reference picture.
[0084] As an example, the encoder can extract temporal motion information by performing a median operation on multiple motion information included in a reference picture. For example, assume that there are three motion vectors [0,0], [-3,5], and [-4,2] in a reference picture. In this case, the encoder can extract one motion vector [-3,2] by performing a median operation on each component of the motion vector.
[0085] As another example, the encoder may extract N pieces of motion information by performing sub-sampling on a plurality of pieces of motion information included in the reference picture. For example, it is assumed that the motion vectors in the reference picture are arranged in a two-dimensional form as shown in Table 2 below.
[0086] [Table 2]
[0087] Referring to Table 2, the encoder can extract motion vectors existing in odd-numbered rows and odd-numbered columns from a two-dimensional motion vector array through sub-sampling. In this case, four motion vectors can be extracted, such as [-2,4], [0,-1], [5,-1], and [-2,1].
[0088] As another example of a method for extracting N pieces of motion information by performing sub-sampling on multiple pieces of motion information contained in a reference picture, the encoder can extract a motion vector corresponding to a specific position from a two-dimensional motion vector array.
[0089] For example, if the motion vectors in the reference picture are arranged in a two-dimensional form as shown in Table 2, the encoder can extract a motion vector corresponding to a specific position from the two-dimensional motion vector array.
[0090] For example, the motion vectors may be stored in a two-dimensional motion vector array in units of 4×4 blocks. In this case, the encoder may select a block corresponding to a predetermined position from among 4×4 blocks included in a 16×16 block, and extract a motion vector corresponding to the selected block. Here, the predetermined position may be, for example, the top left position in the 16×16 block. In the embodiment of Table 2, the predetermined position is a position corresponding to the motion vector of [-2, 4]. In this case, the encoder may extract the motion vector of [-2, 4].
[0091] As another embodiment of the motion information extraction method, the encoder may classify and / or group motion information in a reference picture into a plurality of groups based on characteristics of units included in the reference picture. The characteristics of the units include a depth of the unit, a size of the unit, and / or a partition type of the unit. In this case, the encoder may extract M (hereinafter, M is a positive integer) pieces of motion information according to the occurrence frequency for each group, thereby extracting a total of N pieces of motion information.
[0092] For example, when the depth value of a unit ranges from 0 to P-1 (hereinafter, P is a positive integer) in a reference picture, the encoder may classify motion information in the reference picture into P groups based on the depth value of the unit. In this case, the encoder may count the number of occurrences of a motion vector for each group during the encoding process to obtain count information. That is, the encoder may obtain count information of the motion vectors for each depth of the unit. Based on the count information, the encoder may select M motion vectors in descending order of occurrence frequency for each group to extract a total of N motion vectors, where N is M*P.
[0093] As another example, when there are units of P different sizes in a reference picture, the encoder may classify motion information in the reference picture into P groups based on the size of the units. In this case, the encoder may count the number of occurrences of motion vectors for each group during the encoding process to obtain count information. That is, the encoder may obtain count information of motion vectors according to the size of the units. The encoder may select M motion vectors in descending order of occurrence frequency for each group based on the count information, and extract a total of N motion vectors, where N is M*P.
[0094] As another example, when P types of partition types exist in a reference picture, the encoder may classify motion information in the reference picture into P groups based on the partition types. In this case, the encoder may count the number of occurrences of motion vectors for each group during the encoding process to obtain count information. That is, the encoder may obtain count information of motion vectors for each partition type. The encoder may select M motion vectors in descending order of occurrence frequency for each group based on the count information, and extract a total of N motion vectors, where N is N*P. Here, the partition of a unit refers to a basic unit used in inter prediction and motion compensation, and may have a size of L*K (L and K are positive integers).
[0095] In another embodiment of the motion information extraction method, the encoder may divide the reference picture into a plurality of regions, each of which is divided into slices, and each of which may have a different motion vector occurrence distribution. In this case, the encoder may extract M (hereinafter, M is a positive integer) pieces of motion information according to the occurrence frequency for each region, thereby extracting a total of N pieces of temporal motion information.
[0096] 5 shows an example of a reference picture division method. Referring to FIG. 5, a reference picture may be divided into a first region 510 and a second region 520. Table 3 below shows an example of a motion information extraction method according to the motion information occurrence frequency when a reference picture is divided into the first region 510 and the second region 520.
[0097] [Table 3]
[0098] Referring to Table 3, the encoder may count the number of times motion vectors occur for each region during the encoding process to obtain count information. That is, the encoder may count the number of times motion vectors occur for each of the first region 510 and the second region 520 to obtain count information. In this case, the encoder may select M motion vectors in descending order of frequency of occurrence for each region based on the count information to extract a total of N motion vectors. For example, if a reference picture is divided into two regions and M is 3, the number of extracted motion vectors is 6 in total.
[0099] As another embodiment of the motion information extraction method, when multiple reference pictures are used for the unit to be coded and / or the current picture, the encoder can extract M pieces of motion information for each reference picture based on their occurrence frequency, thereby extracting a total of N pieces of temporal motion information.
[0100] FIG 6 shows an example of reference pictures used for inter prediction and / or motion compensation for a current unit to be coded. Referring to FIG 6, a current picture 630 may include a current unit to be coded. In this case, a first reference picture 610 and a second reference picture 620 may be used for inter prediction of the current unit to be coded. Table 4 below shows an example of a method for extracting motion information according to the frequency of motion information generation when multiple reference pictures are used.
[0101] [Table 4]
[0102] Referring to Table 4, the encoder may count the number of times a motion vector occurs for each reference picture during encoding to obtain count information. That is, the encoder may count the number of times a motion vector occurs for each of the first reference picture 610 and the second reference picture 620 to obtain count information. In this case, the encoder may select M motion vectors in descending order of frequency of occurrence for each reference picture based on the count information to extract a total of N motion vectors. For example, when two reference pictures are used and M is 3, the number of extracted motion vectors is 6 in total.
[0103] As another embodiment of the motion information extraction method, when multiple reference pictures are used for the unit to be coded and / or the current picture, the encoder may select M pieces of motion information for each reference picture, and then extract N pieces of temporal motion information by scaling the selected motion information.
[0104] In this case, for example, the encoder may calculate a temporal distance from the current picture for each reference picture and perform scaling using the calculated temporal distance, where the temporal distance is determined based on a display order when the current picture and a plurality of reference pictures are arranged in the display order.
[0105] For example, the encoder may count the number of times a motion vector occurs for each reference picture during the encoding process to obtain count information. That is, the encoder may count the number of times a motion vector occurs for each reference picture to obtain count information. In this case, the encoder may select M motion vectors in descending order of frequency of occurrence for each reference picture based on the count information, thereby selecting a total of N motion vectors.
[0106] The encoder may calculate a temporal distance from the current picture for each reference picture. The encoder may perform scaling on the selected motion vector using the calculated temporal distance, and extract the scaled motion vector as a temporal motion vector for the current picture and / or the current coding unit. In this case, if a plurality of scaled motion vectors are identical to each other, the encoder may extract only one of the identical motion vectors as a temporal motion vector.
[0107] As an example, assume that two reference pictures are used, each of the reference pictures being a first reference picture and a second reference picture, and that a first temporal distance between the current picture and the first reference picture is 2, and a second temporal distance between the current picture and the second reference picture is 4.
[0108] If the motion vector selected from the first reference picture is [0,2], [1,1], and the motion vector selected from the second reference picture is [0,4], [2,4], the selected motion vector is [0,2], [1,1], [0,4], [2,4]. At this time, the encoder may scale the motion vector selected from the first reference picture and / or the motion vector selected from the second reference picture based on the first temporal distance and the second temporal distance. For example, if the motion vectors [0,4], [2,4] selected from the second reference picture are scaled, the scaled motion vectors are [0,2], [1,2]. At this time, since [0,2] of the scaled motion vectors is the same as the motion vector selected from the first reference picture, the finally extracted temporal motion vector may be configured as {[0,2], [1,1], [1,2]}.
[0109] Meanwhile, the decoder can extract motion information of the reference picture using a method similar to the motion information extraction method used by the encoder. At this time, the encoder does not transmit the extracted motion information to the decoder. Meanwhile, the above-mentioned motion information extraction process can be performed only by the encoder, not the decoder. At this time, the encoder can encode the extracted motion information and transmit it to the decoder.
[0110] Referring back to FIG. 4, the encoder may use the extracted temporal motion information to perform inter prediction and / or motion compensation on the current unit to be coded in the current picture (S420).
[0111] For example, the encoder may use the extracted temporal motion information when performing Motion Vector Prediction (MVP) and / or Advanced Motion Vector Prediction (AMVP) on the encoding target unit. In this case, the encoder may use a temporal motion vector extracted from a reference picture as one of motion vector candidates. When motion vector prediction and / or AMVP are applied, the encoder may perform inter prediction and / or motion compensation using a block matching algorithm, skip mode, direct mode, etc.
[0112] The block matching algorithm refers to an algorithm for determining a reference unit for a current unit to be coded among reconstructed units in a reference picture. An encoder may determine a reference unit for a current unit to be coded among reconstructed units in a reference picture using a motion vector of the current unit to be coded. In this case, the encoder may perform inter prediction and / or motion compensation for the current unit to be coded using the determined reference unit.
[0113] In the skip mode and the direct mode, the motion vector and the temporal motion vector of the reconstructed neighboring unit can be used as the motion vector of the encoding target unit, and the reference picture index of the reconstructed neighboring unit can be used as the reference picture index of the encoding target unit. In the direct mode, a residual signal for the currently encoding target unit can be encoded and transmitted to the decoder. However, in the skip mode, since there is no residual signal, the encoder does not encode the residual signal.
[0114] As another example, the encoder may perform inter prediction and / or motion compensation using a merge mode. In the merge mode, the encoder may perform inter prediction and / or motion compensation by using at least one of the motion vector and the temporal motion vector of the reconstructed neighboring unit as a motion vector of the encoding target unit. In this case, the encoder may use the extracted temporal motion vector to derive the motion vector of the encoding target unit. For example, the encoder may use the extracted temporal motion vector as one of the merge candidates included in a merge candidate list. That is, the encoder may generate a merge candidate list using the extracted temporal motion vector.
[0115] At this time, the encoder may encode the merge index and transmit it to the decoder. Here, the merge index is an index indicating which of the merge candidates included in the merge candidate list is used for inter prediction and motion compensation of the encoding target unit. The decoder may receive and decode the merge index, and may generate a merge candidate list in the same manner as the encoder. At this time, the decoder may derive motion information used for inter prediction and motion compensation of the decoding target unit by using the generated merge candidate list and the decoded merge index.
[0116] Also, in the merge mode, if there is no residual signal for the unit to be coded, the encoder does not code the residual signal, and this coding mode is sometimes called a merge skip mode.
[0117] Meanwhile, two or more pieces of temporal motion information are extracted from the reference picture. In this case, the encoder may select one of the extracted pieces of temporal motion information and use the selected temporal motion information for inter prediction and / or motion compensation for the encoding target unit. In this case, the encoder may select optimal temporal motion information by a rate-distortion optimization (RDO) method. Here, the rate-distortion optimization method refers to a method of selecting an optimal encoding method in terms of rate and distortion.
[0118] For example, the encoder may calculate a rate-distortion cost when encoding is performed for each of a plurality of temporal motion vectors. In this case, the encoder may select one temporal motion vector having a minimum rate-distortion cost value. The encoder may use the selected temporal motion vector when performing inter prediction and / or motion compensation. In addition, the encoder may code a motion vector index for the selected temporal motion vector, and the coded motion vector index may be included in a bitstream and transmitted to a decoder.
[0119] The encoder may use temporal motion information extracted from a reference picture to encode the motion information of the encoding target unit. At this time, the temporal motion information extracted from the reference picture may be used as a predicted value for the motion information of the encoding target unit. Hereinafter, the predicted value for the motion information of the encoding target unit is referred to as predicted motion information, and the predicted value for the motion vector of the encoding target unit is referred to as predicted motion vector.
[0120] For example, the encoder may use a temporal motion vector extracted from a reference picture as a predicted motion vector for the current unit to be encoded. The encoder may obtain a motion vector difference based on a difference between the motion vector of the current unit to be encoded and the predicted motion vector. In this case, the encoder may encode the obtained motion vector difference, and the encoded motion vector difference may be included in a bitstream and transmitted to a decoder. The following Equation 1 shows an example of a motion vector difference calculation method.
[0121]
number
[0122] Here, motion_vector_difference may indicate a motion vector difference, motion_vector may indicate a motion vector of the current unit to be coded, and extracted_motion_vector may indicate a temporal motion vector extracted from a reference picture.
[0123] 4 again, the encoder may encode motion information extracted from a reference picture and / or information related to the motion information (S430). The encoded information may be included in a sequence parameter set (SPS), a picture parameter set (PPS), or a slice header for the encoding target unit and transmitted to the decoder.
[0124] In one embodiment, the encoder may encode a motion information encoding indicator indicating whether motion information extracted from a reference picture is encoded and transmitted to a decoder. In this case, the motion information encoding indicator may indicate whether the extracted motion information is used for inter prediction and motion compensation. The encoded motion information encoding indicator may be included in a bitstream and transmitted to a decoder.
[0125] For example, the motion information coding indicator is indicated by a syntax element called coded_motion_vector_present_flag, which may be coded in a picture parameter set or a slice header.
[0126] When the value of coded_motion_vector_present_flag is 1, the encoder may encode the extracted temporal motion information and transmit it to the decoder. At this time, the decoder may decode the transmitted temporal motion information. The decoder may perform inter prediction and motion compensation for the unit to be decoded by using the decoded temporal motion information. When the value of coded_motion_vector_present_flag is 0, the encoder does not encode the extracted temporal motion information. At this time, the decoder does not use the extracted temporal motion information when performing inter prediction and motion compensation.
[0127] The encoder may also encode motion information values extracted from the reference picture, and the encoded motion information values may be included in a bitstream and transmitted to the decoder.
[0128] When a plurality of motion vectors are extracted from a reference picture, the encoder may encode the extracted motion vector values using Difference Pulse Code Modulation (DPCM). In this case, the encoder may perform prediction for each motion vector using DPCM.
[0129] For example, assume that two motion vectors are extracted from a reference picture. The extracted motion vectors are referred to as a first motion vector and a second motion vector, respectively. Here, the first motion vector is indicated by extracted_motion_vector_1, and the second motion vector is indicated by extracted_motion_vector_2. When DPCM is used, the first motion vector value can be used as a predicted value for the second motion vector value. In this case, when encoding the second motion vector value, the encoder can obtain a motion vector difference for the second motion vector using the predicted value (first motion vector value). This is merely an example and is shown in the following Equation 2.
[0130]
number
[0131] Here, motion_vector_difference_2 denotes the motion vector difference for the second motion vector. Once the motion vector difference is derived in the manner described above, the encoder can encode the derived motion vector difference value and transmit it to the decoder.
[0132] When there is only one piece of motion information extracted from a reference picture, the encoder may not perform prediction on the extracted motion information, but may encode the extracted motion information value itself. In this case, the encoded motion information value may be included in a bitstream and transmitted to a decoder.
[0133] Meanwhile, as described above, the number of pieces of motion information extracted from the reference picture is two or more. When the number of pieces of extracted motion information is two or more, the encoder may select one of the extracted motion information and use it for inter prediction and / or motion compensation for the encoding target unit. In this case, the encoder may encode a motion information index indicating which motion information is to be used from the extracted motion information. The encoded motion information index may be included in a bitstream and transmitted to a decoder.
[0134] Table 5 below shows an example of the extracted motion vectors when the number of motion vectors extracted from the reference picture is two or more.
[0135] [Table 5]
[0136] Referring to Table 5, each motion vector may be assigned a motion information index. For example, if [0,-1] is used among the extracted motion vectors, the encoder may encode a motion information index value of 2 and transmit it to the decoder. In this case, the decoder may derive a motion vector used for inter prediction and motion compensation using the transmitted motion information index.
[0137] If the number of motion information extracted from the reference picture is one, the encoder does not encode the motion information index.
[0138] As described below, the decoder can extract N (N is a positive integer) pieces of temporal motion information in the same manner as the encoder. The extracted temporal motion information can be used for inter prediction and motion compensation for the unit to be decoded. In this case, the encoder may not code the temporal motion information value and / or the motion information index extracted from the reference picture.
[0139] According to the above-described inter prediction method, an encoder can efficiently encode temporal motion information during video encoding. In addition, since the encoder does not store motion information in a reference picture in a memory, memory requirement and memory bandwidth can be reduced and error resilience can be improved during inter prediction and motion compensation for a unit to be encoded. Therefore, overall video encoding efficiency can be improved.
[0140] FIG. 7 is a flow chart that illustrates an example of an inter prediction method at a decoder.
[0141] Referring to FIG. 7, the decoder may extract motion information of a reference picture for a current picture (S710).
[0142] The decoder may extract N pieces of motion information from the motion information included in the reference picture. The extracted motion information may be used for inter prediction and / or motion compensation of a unit to be decoded in a current picture. Here, N represents a positive integer, and N in the following embodiments refers to a positive integer.
[0143] The decoder can extract motion information of the reference picture using a method similar to the motion information extraction method used by the encoder. In this case, the decoder can extract motion information that is the same as the temporal motion information extracted by the encoder. An example of the motion information extraction method is omitted since it has been described above with reference to FIG.
[0144] Meanwhile, as described above, the encoder can encode the motion information value extracted from the reference picture, and the encoded motion information value can be included in a bitstream and transmitted to the decoder. In this case, the decoder can derive the motion information of the reference picture from the transmitted bitstream, so the decoder does not perform a motion information extraction process.
[0145] 7, the decoder may decode motion information of a reference picture and / or information related to the motion information transmitted by the encoder (S720). The decoder may decode the information in a sequence parameter set (SPS), a picture parameter set (PPS), or a slice header.
[0146] In one embodiment, the decoder may decode a motion information encoding indicator indicating whether the temporal motion information extracted by the encoder is encoded and transmitted to the decoder, where the motion information encoding indicator may indicate whether the temporal motion information extracted by the encoder is used for inter prediction and motion compensation.
[0147] For example, the motion information coding indicator is indicated by a syntax element called coded_motion_vector_present_flag, which can be decoded in a picture parameter set or a slice header.
[0148] When the value of coded_motion_vector_present_flag is 1, the encoder may encode temporal motion information extracted from a reference picture and transmit the encoded temporal motion information to a decoder. At this time, the decoder may decode the transmitted temporal motion information. The decoder may perform inter prediction and motion compensation for a current unit to be decoded by using the decoded temporal motion information. When the value of coded_motion_vector_present_flag is 0, the encoder does not encode the temporal motion information extracted from a reference picture. At this time, the decoder does not decode the extracted temporal motion information and does not use the extracted temporal motion information when performing inter prediction and motion compensation.
[0149] As described above, the encoder may encode motion information values extracted from a reference picture and transmit the encoded motion information values to the decoder, and the decoder may receive and decode the transmitted motion information values.
[0150] When a plurality of motion vectors are extracted from a reference picture, the encoder may predict the extracted motion vector values using DPCM, and then encode the difference between the predicted motion vector values and the extracted motion vector values, i.e., the motion vector differential. The encoded motion vector differential may be transmitted to a decoder, and the decoder may derive temporal motion information using the transmitted motion vector differential.
[0151] For example, assume that two motion vectors are coded in an encoder. The coded motion vectors are referred to as a first motion vector and a second motion vector, respectively. Here, the first motion vector is indicated by extracted_motion_vector_1, and the second motion vector is indicated by extracted_motion_vector_2. When DPCM is used, the first motion vector value can be used as a predicted value for the second motion vector value. In this case, as described above, the encoder can transmit a motion vector difference for the second motion vector to the decoder. Here, the motion vector difference for the second motion vector is indicated by motion_vector_difference_2.
[0152] The decoder may decode a first motion vector value, and may decode a motion vector differential for a second motion vector and add the decoded motion vector differential to the first motion vector value to derive the second motion vector value, as shown by way of example only in Equation 3 below.
[0153]
number
[0154] When there is only one piece of motion information extracted from the reference picture, the encoder may not perform prediction on the extracted motion information, but may encode the extracted motion information value itself and transmit it to the decoder, in which case the decoder may decode the transmitted motion information value itself without performing prediction on the motion information.
[0155] Meanwhile, the number of pieces of motion information extracted from the reference picture is 2 or more. The motion information may be extracted by the encoder and transmitted to the decoder, or may be extracted by the decoder. In this case, the decoder may select one piece of motion information and use it for inter prediction and / or motion compensation for the unit to be decoded.
[0156] As described above, when the number of pieces of motion information extracted from the reference picture is two or more, the encoder may encode a motion information index and transmit the encoded motion information index to the decoder. Here, the motion information index is an index indicating which of the extracted pieces of motion information is to be used. At this time, the decoder may decode the received motion information index. Since the decoder may have a plurality of pieces of motion information that are the same as the motion information extracted by the encoder, the decoder may select motion information to be used for inter prediction and motion compensation using the decoded motion information index.
[0157] Table 6 below shows an example of the extracted motion vectors when the number of motion vectors extracted from the reference picture is two or more.
[0158] [Table 6]
[0159] Referring to Table 6, each motion vector may be assigned a motion information index. For example, if the motion information index value transmitted from the encoder is 2, the decoder may use the motion vector [0,-1] assigned an index value of 2 for inter prediction and motion compensation.
[0160] If the number of motion information extracted from the reference picture is one, the encoder does not encode the motion information index, and the encoder does not transmit the motion information index, so the decoder does not decode the motion information index.
[0161] Also, as described above, the decoder can extract N (N is a positive integer) pieces of temporal motion information in the same manner as the encoder. The extracted temporal motion information can be used for inter prediction and motion compensation for the unit to be decoded. At this time, the encoder does not encode the temporal motion information value and / or motion information index extracted from the reference picture. At this time, the decoder does not decode the motion information value, motion information index, etc. That is, the above-mentioned process of decoding the motion information value, motion information index, etc. can be omitted.
[0162] Through the above-mentioned motion information extraction process (S710) and / or motion information decoding process (S720), the decoder can derive temporal motion information of the reference picture. The motion information of the reference picture derived by the decoder is the same as the temporal motion information extracted by the encoder. Hereinafter, the motion information of the reference picture derived by the decoder is referred to as reference motion information, and the motion vector of the reference picture derived by the decoder is referred to as reference motion vector.
[0163] Also, referring to FIG. 7, the decoder may perform inter prediction and / or motion compensation for a unit to be decoded in a current picture using the reference motion information derived by the above-described method (S730).
[0164] For example, a decoder may use the reference motion information when performing motion vector prediction (MVP) and / or advanced motion vector prediction (AMVP) for a unit to be decoded. In this case, the decoder may use the reference motion vector as one of motion vector candidates. When motion vector prediction and / or AMVP are applied, the decoder may perform inter prediction and / or motion compensation using the reference motion vector.
[0165] In skip mode and direct mode, the motion vector and temporal motion vector of the reconstructed neighboring unit can be used as the motion vector of the unit to be decoded, and the reference picture index of the reconstructed neighboring unit can be used as the reference picture index of the unit to be decoded. In the direct mode, a residual signal for the currently decoded unit can be decoded. However, in the skip mode, since there is no residual signal, the decoder does not decode the residual signal.
[0166] As another example, the decoder may perform inter prediction and / or motion compensation using a merge mode. In the merge mode, the decoder may perform inter prediction and / or motion compensation by using at least one of the motion vector and the temporal motion vector of the reconstructed neighboring unit as a motion vector of the unit to be decoded. In this case, the decoder may use a reference motion vector to derive the motion vector of the unit to be decoded. For example, the decoder may use the reference motion vector as one of the merge candidates included in a merge candidate list.
[0167] In the merge mode, if there is no residual signal for the unit to be decoded, the decoder does not decode the residual signal. This coding mode is sometimes called a merge skip mode.
[0168] Meanwhile, the number of reference motion information derived by the decoder is two or more. In this case, the decoder may select one of the derived reference motion information and use the selected reference motion information for inter prediction and / or motion compensation for the encoding target unit. In this case, as an example, the decoder may decode a motion information index transmitted from the encoder and may select reference motion information to be used for inter prediction and motion compensation using the decoded motion information index. Here, the motion information index may indicate which reference motion information is to be used among the derived reference motion information.
[0169] The decoder may also use reference motion information to derive motion information of the current unit, where the reference motion information may be used as a predictor for the motion information of the current unit.
[0170] For example, the decoder can use the reference motion vector as a predicted motion vector for the unit to be decoded. Here, the predicted motion vector means a predicted value for the motion vector of the unit to be decoded. As described above, the encoder can derive a motion vector difference between the motion vector of the unit to be encoded and a motion vector extracted from the reference picture, and transmit the motion vector difference to the decoder. At this time, the decoder can receive and decode the motion vector difference, and can derive the motion vector of the unit to be decoded by adding the decoded motion vector difference and the reference motion vector. This is shown, for example, by the following Equation 4.
[0171]
number
[0172] Here, motion_vector may indicate a motion vector of the unit to be decoded, motion_vector_difference may indicate a motion vector difference, and extracted_motion_vector may indicate a reference motion vector.
[0173] According to the above-mentioned inter prediction method, a decoder can efficiently decode temporal motion information during video decoding. In addition, since the decoder does not store motion information in a reference picture in a memory, memory requirement and memory bandwidth can be reduced and error resilience can be improved during inter prediction and motion compensation for a unit to be decoded. Therefore, the overall efficiency of video decoding can be improved.
[0174] In the above embodiments, the method is described based on a flow chart with a series of steps or blocks, but the present invention is not limited to the order of steps, and some steps may occur in a different order or simultaneously with other steps described above. Also, a person skilled in the art can understand that the steps shown in the flow chart are not exclusive, and other steps may be included, or one or more steps in the flow chart may be deleted without affecting the scope of the present invention.
[0175] The above-described embodiments include examples of various aspects. It is not possible to describe all possible combinations for illustrating various aspects, but a person skilled in the art can recognize that other combinations are possible. Therefore, the present invention includes all alterations, modifications, and variations that fall within the scope of the claims.
Claims
1. deriving spatial motion information from neighboring units of the current block; obtaining a reference picture index associated with temporal motion information of the current block, the reference picture index describing a reference picture having the temporal motion information of the current block among a plurality of reference pictures in a reference picture list; determining the reference picture that has the temporal motion information of the current block based on the reference picture index; obtaining spatial merging candidates for the current block from the neighboring units, the spatial merging candidates including the spatial motion information, and temporal merging candidates for the current block from the reference pictures, the temporal merging candidates including the temporal motion information; generating a merge candidate list for the current block including the spatial merge candidates and the temporal merge candidates; performing motion compensation on the current block using the merge candidate list; Equipped with if an indicator obtained from a bitstream indicates that the temporal motion information from the reference picture can be used, the temporal motion information from the reference picture is used to generate the merging candidate list; The step of performing motion compensation comprises: obtaining a merge index for the current block; selecting motion information indicated by the merge index from among the merge candidates included in the merge candidate list; performing the motion compensation for the current block using the selected motion information; The video decoding method according to claim 1, wherein the merge index and the reference picture index are obtained from a bitstream.
2. deriving spatial motion information from neighboring units of the current block; obtaining spatial merging candidates for the current block from the neighboring units, the spatial merging candidates including the spatial motion information, and temporal merging candidates for the current block from reference blocks in a reference picture of the current block; generating a merge candidate list for the current block including the spatial merge candidates and the temporal merge candidates; determining a merge index for the current block based on the merge candidate list; Equipped with the merge index of the current block indicates motion information of the current block among merge candidates included in the merge candidate list; the reference picture comprises temporal motion information of the current block; if the indicator indicates that the temporal motion information from the reference picture can be used, the temporal motion information from the reference picture is used to generate the merge candidate list; the reference picture is one of a plurality of reference pictures in a reference picture list; The reference picture is selected by a reference picture index; The video encoding method, wherein the merge index and the reference picture index are encoded in a bitstream.
3. 1. A method for transmitting a bitstream generated by a video encoding method, comprising the steps of: The video encoding method includes: deriving spatial motion information from neighboring units of the current block; obtaining spatial merging candidates for the current block from the neighboring units, the spatial merging candidates including the spatial motion information, and temporal merging candidates for the current block from reference blocks in a reference picture of the current block; generating a merge candidate list for the current block including the spatial merge candidates and the temporal merge candidates; determining a merge index for the current block based on the merge candidate list; Equipped with the merge index of the current block indicates motion information of the current block among merge candidates included in the merge candidate list; the reference picture comprises temporal motion information of the current block; if the indicator indicates that the temporal motion information from the reference picture can be used, the temporal motion information from the reference picture is used to generate the merge candidate list; the reference picture is one of a plurality of reference pictures in a reference picture list; The reference picture is selected by a reference picture index; 13. A method for transmitting a bitstream, wherein the merge index and the reference picture index are encoded in the bitstream.
Citation Information
Patent Citations
Method and apparatus for motion prediction in direct mode for multi-viewpoint video
JP2008509592A
Method and apparatus for encoding / decoding motion vector
WO2011019247A2
Video encoding device, video decoding device, and data structure
WO2011048903A1
Image encoding method and image decoding method
WO2011125211A1
Method for deriving a temporal predictive motion vector, and apparatus using the method
WO2013036041A2