Video Symbolization Method, Video Decryption Method, and Recording Medium
By adjusting the motion vector candidate list in video encoding and decoding methods, the proposed solution addresses the challenge of reducing computational complexity while improving efficiency in motion vector prediction and inter prediction.
Patent Information
- Application Number
- JP2024137850
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2013-01-18
- Filing Date
- 2024-08-19
- Publication Date
- 2025-05-27
- Estimated Expiration
- 2033-01-18
AI Technical Summary
Existing video encoding and decoding methods face challenges in improving efficiency while reducing computational complexity, particularly in motion vector prediction and inter prediction techniques.
The proposed method adjusts the motion vector candidate list by adding or removing specific motion vector candidates based on the maximum number of motion vector candidates, thereby determining a predicted motion vector for improved video encoding and decoding efficiency.
This approach reduces computational complexity and enhances video encoding and decoding efficiency by optimizing the motion vector prediction process.
Smart Images

Figure 0007684498000001 
Figure 0007684498000002 
Figure 0007684498000003
Abstract
Description
Technical Field
[0001] The present invention relates to a video encoding / decoding method and apparatus, and more particularly, to a motion vector prediction technique capable of reducing computational complexity.
Background Art
[0002] Recently, as broadcast services with HD (High Definition) resolution have expanded not only in Korea but also worldwide, many users have become accustomed to high-resolution and high-quality videos. As a result, many institutions are accelerating the development of next-generation video devices. In addition, while interest in UHD (Ultra High Definition) with a resolution more than four times that of HDTV is increasing along with HDTV, compression techniques for higher-resolution and high-quality videos are being demanded.
[0003] For video compression, an inter prediction technique that predicts pixel values included in the current video from videos before and / or after in time, an intra prediction technique that predicts pixel values included in the current video using pixel information within the current video, an entropy encoding technique that assigns short codes to symbols with high occurrence frequencies and long codes to symbols with low occurrence frequencies, etc. can be used.
Summary of the Invention
Problems to be Solved by the Invention
[0004] A technical problem of the present invention is to provide a video encoding method and apparatus that can not only improve video encoding efficiency but also reduce computational complexity.
[0005] Another technical problem of the present invention is to provide a video decoding method and apparatus that can not only improve video decoding efficiency but also reduce computational complexity.
[0006] Another technical problem of the present invention is to provide a prediction block generation method and apparatus that can not only improve video encoding efficiency but also reduce computational complexity.
[0007] Another technical problem of the present invention is to provide an inter prediction method and apparatus that can not only improve video encoding efficiency but also reduce computational complexity.
[0008] Another technical problem of the present invention is to provide a motion vector prediction method and apparatus that can not only improve video encoding efficiency but also reduce computational complexity.
Means for Solving the Problems
[0009] The video decoding method of the present invention for achieving the above object includes steps of inverse quantizing and inverse transforming an entropy-decoded residual block to restore the residual block, performing motion compensation to generate a prediction block, and adding the restored residual block to the prediction block to restore the video. A specific motion vector candidate is added or a part is removed from the motion vector candidate list based on the maximum number value of motion vector candidates in the motion vector candidate list related to the prediction block to adjust the motion vector candidate list. In the step of generating the prediction block, the predicted motion vector of the prediction block is determined based on the adjusted motion vector candidate list.
[0010] The step of generating the prediction block includes steps of inducing motion vector candidates related to the prediction block to form a motion vector candidate list, removing one identical motion vector candidate from the spatial motion vector candidates included in the motion vector candidate list, adjusting the motion vector candidate list by adding the specific motion vector candidate or removing a part, and determining a predicted motion vector from the motion vector candidates included in the adjusted motion vector candidate list.
[0011] The step of adjusting the motion vector candidate list includes adding the specific motion vector candidate regardless of whether there is a motion vector candidate in the motion vector candidate list or whether the specific motion vector candidate exists in the motion vector candidate list when the number of motion vector candidates included in the motion vector candidate list is smaller than the maximum number of motion vector candidates value.
[0012] The step of adjusting the motion vector candidate list includes repeatedly adding the specific motion vector candidate until the number of motion vector candidates included in the motion vector candidate list reaches the maximum number of motion vector candidates when the number of motion vector candidates included in the motion vector candidate list is smaller than the maximum number of motion vector candidates value.
[0013] The specific motion vector is the (0, 0) motion vector, and the maximum number of motion vector candidates value is 2.
[0014] Two specific motion vectors are added when there is no motion vector candidate in the motion vector candidate list.
[0015] One more specific motion vector is added when one specific motion vector exists in the motion vector candidate list.
[0016] The step of adjusting the motion vector candidate list includes removing a motion vector candidate having an index value greater than the index value obtained by subtracting 1 from the maximum number of motion vector candidates value from the motion vector candidate list when the number of motion vector candidates included in the motion vector candidate list is greater than the maximum number of motion vector candidates value.
[0017] The video decoding apparatus of the present invention for achieving the above object includes a residual block restoration unit that inverse quantizes and inverse transforms an entropy-decoded residual block to restore the residual block, a prediction block generation unit that executes motion compensation to generate a prediction block, and a video restoration unit that adds the restored residual block to the prediction block to restore the video. The prediction block generation unit adjusts the motion vector candidate list by adding a specific motion vector candidate or removing some of the motion vector candidates based on the maximum number value of motion vector candidates in the motion vector candidate list related to the prediction block, and determines the predicted motion vector of the prediction block based on the adjusted motion vector candidate list.
[0018] The prediction block generation unit includes a motion vector candidate list configuration unit that induces motion vector candidates related to the prediction block to configure a motion vector candidate list, an identical motion vector candidate removal unit that removes one identical motion vector candidate from the spatial motion vector candidates included in the motion vector candidate list, a motion vector candidate list adjustment unit that adjusts the motion vector candidate list by adding the specific motion vector candidate or removing some of them to the motion vector candidate list, and a predicted motion vector determination unit that determines a predicted motion vector from the adjusted motion vector candidate list.
[0019] When the number of motion vector candidates included in the motion vector candidate list is smaller than the maximum number value of motion vector candidates, the motion vector candidate list adjustment unit adds the specific motion vector candidate regardless of whether there is a motion vector candidate in the motion vector candidate list or whether the specific motion vector candidate exists in the motion vector candidate list.
[0020] When the number of motion vector candidates included in the motion vector candidate list is smaller than the maximum number of motion vector candidates value, the motion vector candidate list adjustment unit repeatedly adds the specific motion vector candidate until the number of motion vector candidates included in the motion vector candidate list reaches the maximum number of motion vector candidates.
[0021] The specific motion vector is the (0, 0) motion vector, and the maximum number of motion vector candidates value is 2.
[0022] In a state where there is no motion vector candidate in the motion vector candidate list, 2 specific motion vectors are added.
[0023] In a state where one specific motion vector exists in the motion vector candidate list, 1 more specific motion vector is added.
[0024] The video encoding method of the present invention for achieving the above object includes a step of performing inter-picture prediction or motion compensation on an input video to generate a prediction block, and a step of converting, quantizing, and entropy encoding a residual block, which is a difference between the current input block and the prediction block predicted by the inter-picture prediction. The motion vector candidate list is adjusted by adding a specific motion vector candidate or removing a part from the motion vector candidates based on the maximum number of motion vector candidates value of the motion vector candidate list associated with the prediction block. In the step of generating the prediction block, the predicted motion vector of the prediction block is determined based on the adjusted motion vector candidate list.
[0025] The step of generating the prediction block includes the steps of deriving motion vector candidates related to the prediction block to form a motion vector candidate list, removing one identical motion vector candidate from among the spatial motion vector candidates included in the motion vector candidate list, adjusting the motion vector candidate list by adding the specific motion vector candidate or removing a part thereof to the motion vector candidate list, and determining a predicted motion vector from the adjusted motion vector candidate list.
[0026] The step of adjusting the motion vector candidate list includes adding the specific motion vector candidate regardless of whether there is a motion vector candidate in the motion vector candidate list or whether the specific motion vector candidate exists in the motion vector candidate list when the number of motion vector candidates included in the motion vector candidate list is smaller than the maximum motion vector candidate number value.
[0027] The video encoding apparatus of the present invention for achieving the above object includes a prediction block generation unit that performs inter-picture prediction or motion compensation on an input video to generate a prediction block, and an encoding unit that converts, quantizes, and entropy-encodes a residual block that is a difference between a current input block and a prediction block predicted by the inter-picture prediction. The prediction block generation unit adjusts the motion vector candidate list by adding a specific motion vector candidate or removing a part from among the motion vector candidates based on the maximum motion vector candidate number value of the motion vector candidate list related to the prediction block, and determines a predicted motion vector of the prediction block based on the adjusted motion vector candidate list.
Effect of the Invention
[0028] According to the video encoding method of the present invention, not only can the computational complexity be reduced, but also the video encoding efficiency can be improved.
[0029] According to the video decoding method of the present invention, not only can the computational complexity be reduced, but also the video coding efficiency can be improved.
[0030] According to the prediction block generation method of the present invention, not only can the computational complexity be reduced, but also the video coding efficiency can be improved.
[0031] According to the inter prediction method of the present invention, not only can the computational complexity be reduced, but also the video coding efficiency can be improved.
[0032] According to the motion vector prediction method of the present invention, not only can the computational complexity be reduced, but also the video coding efficiency can be improved.
Brief Description of the Drawings
[0033]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Modes for Carrying Out the Invention
[0034] Hereinafter, embodiments of the present invention will be specifically described with reference to the drawings. In describing the embodiments of this specification, when it is determined that a specific description of a related known configuration or function will obscure the gist of this specification, the detailed description thereof will be omitted.
[0035] When one component is referred to as being “connected to” or “coupled to” another component, it should be understood that it may be directly connected to or coupled to the other component in question, but there may also be other components in between. Also, in the present invention, the description of including a specific configuration does not exclude configurations other than the relevant configuration, but means that additional configurations can be included within the scope of the implementation of the present invention or the technical idea of the present invention.
[0036] Terms such as "first" and "second" can be used to describe various components, but the components should not be limited by these terms. These terms are only used for the purpose of distinguishing one component from another. For example, unless it exceeds the scope of the rights of the present invention, the first component can be named the second component, and similarly, the second component can be named the first component.
[0037] In addition, the components disclosed in the embodiments of the present invention are independently illustrated to show different characteristic functions from each other, and it does not mean that each component is configured by separate hardware or a single software component. That is, for the convenience of explanation, each component is listed and included as each component, and at least two of the components can be integrated into one component, or one component can be divided into multiple components to perform functions. Such integrated and separated embodiments of each component are also included in the scope of the rights of the present invention unless they deviate from the essence of the present invention.
[0038] In addition, some components are not essential components for performing the essential functions of the present invention, but are merely optional components for improving performance. The present invention can be implemented by including only the essential components necessary for the essential implementation of the present invention excluding the components used only for performance improvement, and the structure including only the essential components excluding the optional components used only for performance improvement is also included in the scope of the rights of the present invention.
[0039] FIG. 1 is a block diagram showing the configuration according to an embodiment of a video encoding apparatus to which the present invention is applied.
[0040] Referring to FIG. 1, the video encoding apparatus 100 includes a motion prediction unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, a conversion unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse conversion unit 170, an adder 175, a filter unit 180, and a reference video buffer 190.
[0041] The video encoding device 100 can output a bitstream by performing encoding on an input video in either the intra mode or the inter mode. Intra prediction means in-picture prediction, and inter prediction means inter-picture prediction. When in the intra mode, switch 115 can be switched to intra, and when in the inter mode, switch 115 can be switched to inter. The video encoding device 100 can generate a prediction block for an input block of the input video and then encode the difference between the input block and the prediction block.
[0042] When in the intra mode, the intra prediction unit 120 can generate a prediction block by performing spatial prediction using the pixel values of the already encoded blocks around the current block.
[0043] When in the inter mode, the motion prediction unit 111 can find the region in the reference video stored in the reference video buffer 190 that best matches the input block in the motion prediction process to obtain a motion vector. Here, the video can be used in the same sense as the picture described later. The motion compensation unit 112 can generate a prediction block by performing motion compensation using the motion vector. Here, the motion vector is a two-dimensional vector used for inter prediction and can indicate the offset between a block in the currently encoded / decoded target video and a block in the reference video.
[0044] The subtractor 125 can generate a residual block from the difference between the input block and the generated prediction block. The transform unit 130 can output transform coefficients by performing a transform on the residual block. Then, the quantization unit 140 can output quantized coefficients by quantizing the input transform coefficients according to quantization parameters.
[0045] The entropy encoding unit 150 can output a bit stream by performing entropy encoding based on values calculated by the quantization unit 140 or encoding parameters calculated during the encoding process, such as a motion vector difference, a reference picture index, a motion vector candidate index, and prediction direction information.
[0046] When entropy encoding is applied, symbols with a high occurrence probability are assigned a small number of bits, and symbols with a low occurrence probability are assigned a large number of bits to represent the symbols, so that the size of the bit sequence for the symbol to be encoded can be reduced. Therefore, the compression performance of video encoding can be improved through entropy encoding. The entropy encoding unit 150 can use encoding methods such as exponential golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) for entropy encoding.
[0047] The video encoding apparatus according to the embodiment of FIG. 1 performs inter-prediction encoding, that is, inter-picture prediction encoding. Therefore, the currently encoded video needs to be decoded and stored for use as a reference video. Accordingly, 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 prediction block via the adder 175 to generate a restored block.
[0048] The restoration block passes through the filter unit 180, and the filter unit 180 can apply at least one or more of a deblocking filter, SAO (Sample Adaptive Offset), and ALF (Adaptive Loop Filter) to the restoration block or the restored video. The filter unit 180 is also called an adaptive in-loop filter. The deblocking filter can remove block distortion occurring at the boundary between blocks. SAO can add an appropriate offset value to the pixel value to compensate for coding errors. ALF can perform filtering based on a value obtained by comparing the restored video with the original video. The restoration block that has passed through the filter unit 180 can be stored in the reference video buffer 190.
[0049] FIG. 2 is a block diagram showing a configuration according to an embodiment of a video decoding apparatus to which the present invention is applied.
[0050] Referring to FIG. 2, the video decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transformation unit 230, an intra prediction unit 240, a motion compensation unit 250, an adder 255, a filter unit 260, and a reference video buffer 270.
[0051] The video decoding apparatus 200 can receive the input of the bitstream output by the encoder and perform decoding in the intra mode or the inter mode, and output the reconstructed video, that is, the restored video. In the case of the intra mode, the switch can be switched to intra, and in the case of the inter mode, the switch can be switched to inter. The video decoding apparatus 200 can obtain a reconstructed residual block restored from the input bitstream, generate a prediction block, and then add the reconstructed residual block and the prediction block to generate a reconstructed block, that is, a restored block.
[0052] The entropy decoding unit 210 can generate symbols including symbols in the form of quantized coefficients by entropy-decoding the input bit stream according to a probability distribution. The entropy decoding method is the same as the entropy encoding method described above.
[0053] When the entropy decoding method is applied, symbols with a high occurrence probability are assigned a small number of bits, and symbols with a low occurrence probability are assigned a large number of bits to represent the symbols, so that the size of the bit string for each symbol can be reduced. Therefore, the compression performance of video decoding can be enhanced through the entropy decoding method.
[0054] The quantized coefficients can be inverse-quantized by the inverse quantization unit 220 and inverse-transformed by the inverse transform unit 230. As a result of the inverse quantization / inverse transformation of the quantized coefficients, a restored residual block can be generated.
[0055] In the case of the intra mode, the intra prediction unit 240 can generate a prediction block by performing spatial prediction using the pixel values of the already encoded / decoded blocks around the current block. In the case of the inter mode, the motion compensation unit 250 can generate a prediction block by performing motion compensation using the motion vector and the reference video stored in the reference video buffer 270.
[0056] The restored residual block and the prediction block are added via the adder 255, and the added block can pass through the filter unit 260. The filter unit 260 can apply at least one of a deblocking filter, SAO, and ALF to the restored block or the restored video. The filter unit 260 can output the reconstructed video, that is, the restored video. The restored video can be stored in the reference video buffer 270 and used for inter prediction.
[0057] Hereinafter, a block means a unit of video encoding and decoding. Since the encoding unit or decoding unit during video encoding and decoding means the divided unit when dividing the video for encoding or decoding, it is also called a unit, a coding unit (CU), a prediction unit (PU), a transform unit (TU), a transform block, etc. Furthermore, one block can be divided into lower-level blocks with a smaller size. The prediction unit is the basic unit during inter prediction or motion compensation execution, and is also called a prediction block. The prediction unit can also be divided into a plurality of partitions, and the plurality of partitions also become the basic unit during prediction execution, and the partitions obtained by dividing the prediction unit can also be called prediction units. Also, in this specification, "picture" can be used interchangeably with "video", "frame", "field", and / or "slice" depending on the context, and such a distinction can be easily made by those with ordinary knowledge in the relevant technical field. For example, the P picture, B picture, and forward B picture described later can be used interchangeably with P slice, B slice, and forward B slice, respectively, depending on the picture. Also, in this specification, the current block can indicate the block during inter prediction or motion compensation execution, and in such a case, the current block means a prediction unit or a prediction block.
[0058] FIG. 3 is a flowchart schematically showing an embodiment of the inter prediction method.
[0059] Referring to FIG. 3, the encoder and decoder can derive motion information for the current block (S310).
[0060] In inter mode, after the encoder and decoder derive the motion information of the current block, they can perform inter prediction and / or motion compensation based on the derived motion information. At this time, the encoder and decoder can improve the coding efficiency by using the motion information of the collocated block corresponding to the current block in the restored neighboring block and / or the already restored collocated picture. Here, the restored neighboring block is a block in the currently restored picture that has already been encoded and / or decoded, and can include blocks adjacent to the current block and / or blocks located at the outer corners of the current block. Also, the encoder and decoder can determine a predetermined relative position based on a block that exists at the same spatial position as the current block in the collocated picture, and derive the collocated block based on the determined predetermined relative position (positions inside and / or outside the block that exists at the same spatial position as the current block). Here, as an example, the collocated picture can correspond to one of the reference pictures included in the reference picture list. Also, here, the motion information means information required for inter prediction or motion compensation including at least one of a motion vector, a reference picture index, a motion vector candidate index, a motion vector difference, a reference picture list, a predicted motion vector, a merge flag, a merge index, a prediction direction, and availability information.
[0061] On the other hand, the motion information derivation method can vary depending on the prediction mode of the current block. The prediction modes applied for inter prediction include motion vector prediction including AMVP (Advanced Motion Vector Prediction), merge mode, etc.
[0062] As an example, when motion vector prediction is applied, the encoder and decoder can utilize the motion vectors of the restored adjacent blocks and / or the motion vectors of the collocated blocks to generate a motion vector candidate list. That is, the motion vectors of the restored adjacent blocks and / or the motion vectors of the collocated blocks can be used as motion vector candidates. The encoder can send a predicted motion vector index indicating the optimal predicted motion vector selected from among the motion vector candidates included in the list to the decoder. At this time, the decoder can use the predicted motion vector index to select the predicted motion vector of the current block from among the predicted motion vector candidates included in the motion vector candidate list.
[0063] The encoder can obtain the motion vector difference (MVD: Motion Vector Difference) between the motion vector of the current block and the predicted motion vector, encode this, and send it to the decoder. At this time, the decoder can decode the received motion vector difference and derive the motion vector of the current block through the sum of the decoded motion vector difference and the predicted motion vector.
[0064] As another example, when the merge mode is applied, the encoder and decoder can utilize the motion information of the restored adjacent blocks and / or the motion information of the collocated blocks to generate a merge candidate list. That is, when the motion information of the restored adjacent blocks and / or the collocated blocks exists, the encoder and decoder can use this as a merge candidate for the current block.
[0065] The symbolizer can select, as the motion information for the current block, a merge candidate that can provide the optimal coding efficiency among the merge candidates included in the merge candidate list. At this time, a merge index indicating the selected merge candidate can be included in the bitstream and transmitted to the decoder. The decoder can use the transmitted merge index to select one from the merge candidates included in the merge candidate list, and can determine the selected merge candidate as the motion information of the current block. Therefore, when the merge mode is applied, the motion information of the restored adjacent block and / or collocated block can be directly used as the motion information of the current block.
[0066] In the above-described AMVP and merge mode, the motion information of the restored adjacent block and / or collocated block can be used to derive the motion information of the current block. Hereinafter, in the embodiments described later, the motion information derived from the restored adjacent block is referred to as spatial motion information, and the motion information derived based on the collocated block is referred to as temporal motion information. For example, the motion vector derived from the restored adjacent block is referred to as a spatial motion vector, and the motion vector derived based on the collocated block is referred to as a temporal motion vector.
[0067] Referring to FIG. 3, the encoder and decoder can generate a prediction block by performing motion compensation on the current block based on the induced motion information (S320). Here, the prediction block means a motion-compensated block generated as a result of performing motion compensation on the current block. Also, a plurality of motion-compensated blocks can constitute one motion-compensated video. Therefore, in the embodiments described below, the prediction block is expressed as'motion-compensated block' and / or'motion-compensated video' depending on the context, and such a distinction can be easily made by those having ordinary knowledge in the relevant technical field.
[0068] On the other hand, the pictures for which inter prediction is performed include P pictures and B pictures. A P picture means a picture for which uni-directional prediction using one reference picture is performed, and a B picture means a picture for which forward-directional, backward-directional, or bi-predictive prediction using one or more, for example, two reference pictures can be performed. For example, in a B picture, inter prediction can be performed using one forward reference picture (past picture) and one backward reference picture (future picture). Also, in a B picture, prediction can be performed using two forward reference pictures, and prediction can also be performed using two backward reference pictures.
[0069] Here, the reference pictures can be managed by a reference picture list. The reference pictures used in P pictures can be assigned to reference picture list 0 (L0 or List0). The two reference pictures used in B pictures can be assigned to reference picture list 0 and reference picture list 1 (L1 or List1), respectively. Hereinafter, the L0 reference picture list can have the same meaning as reference picture list 0, and the L1 reference picture list can have the same meaning as reference picture list 1.
[0070] Generally, forward reference pictures can be assigned to reference picture list 0, and backward reference pictures can be assigned to reference picture list 1. However, the method of assigning reference pictures is not limited thereto, and forward reference pictures may be assigned to reference picture list 1, or backward reference pictures may be assigned to reference picture list 0. Hereinafter, the reference pictures assigned to reference picture list 0 are referred to as L0 reference pictures, and the reference pictures assigned to reference picture list 1 are referred to as L1 reference pictures.
[0071] Reference pictures can generally be assigned to the reference picture list in descending order according to the reference picture number. Here, the reference picture number means the number assigned to each reference picture in the POC (Picture Order Count) order, and the POC order means the display order and / or time order of the pictures. For example, two reference pictures with the same reference picture number can correspond to the same reference picture. The reference pictures assigned to the reference picture list can be rearranged by reference picture list modification.
[0072] As described above, in a P picture, unidirectional prediction using one L0 reference picture can be performed, and in a B picture, forward, backward, or bidirectional prediction using one L0 reference picture and one L1 reference picture, i.e., two reference pictures, can be performed. Prediction using one reference picture is called uni-prediction, and prediction using two reference pictures including the L0 reference picture and the L1 reference picture is called bi-prediction.
[0073] Bi-prediction can be used as a concept including all of forward prediction, backward prediction, and bidirectional prediction. However, in the embodiments described later, for convenience, prediction using two reference pictures (L0 reference picture and L1 reference picture) is called bidirectional prediction. That is, in the embodiments described later, bidirectional prediction means bi-prediction and can be understood as a concept including all of forward, backward, and bidirectional predictions using two reference pictures (L0 reference picture and L1 reference picture). Also, when bi-prediction is performed, forward prediction or backward prediction can be performed. However, in the embodiments described later, for convenience, prediction using only one reference picture is called unidirectional prediction. That is, in the embodiments described later, unidirectional prediction means uni-prediction and must be understood as a concept including only prediction using one reference picture. Also, hereinafter, information indicating whether unidirectional prediction (uni-prediction) or bidirectional prediction (bi-prediction) is applied to a block where prediction is performed is called prediction direction information.
[0074] FIG. 4 is a flowchart showing a process in which a video encoding / decoding apparatus according to an embodiment of the present invention induces motion vector candidates and determines a predicted motion vector.
[0075] Referring to FIG. 4, the encoder and decoder first derive spatial motion vector candidates (S410) in order to determine the predicted motion vector. As described above, the encoder and decoder can derive motion vector candidates from the blocks (reference blocks) that have already been restored in the spatial periphery of the current block as the spatial motion vector candidates. At this time, the number of spatial motion vector candidates that can be derived is up to the maximum number of spatial motion vector candidates (maxNumSpatialMVPCand). When the reference picture of the reference block is different from the reference picture of the current block, scaling can be performed to derive the spatial motion vector candidates.
[0076] When the derivation of the spatial motion vector candidates is completed, the encoder and decoder derive temporal motion vector candidates (S420). The encoder and decoder can derive motion vector candidates from the collocated blocks restored in the collocated picture that is temporally adjacent to the current block. Also, the number of temporal motion vector candidates that can be derived is up to the maximum number of temporal motion vector candidates (maxNumTemporalMVPCand). Also, when the distance between the current picture and the reference picture of the current block is different from the distance between the collocated picture and the reference picture of the collocated block, scaling can be performed to derive the temporal motion vector candidates.
[0077] When the derivation of the spatial motion vector candidates or the derivation of the temporal motion vector candidates is completed, the derived motion vector candidates are added to the motion vector candidate list (S430). That is, the encoder and decoder can add the derived spatial motion vector candidates and temporal motion vector candidates to the motion vector candidate list (mvpListLX) in order. The motion vector candidate list (mvpListLX) means a motion vector candidate list corresponding to one of the reference picture lists L0 and L1. For example, the motion vector candidate list corresponding to the reference picture list L0 can be represented by mvpListL0.
[0078] After the motion vector candidate list is configured, the encoder and decoder remove identical motion vector candidates (S440). It is considered whether there are motion vector candidates having the same motion vector value within the motion vector candidate list (mvpListLX). For example, when there are a plurality of identical spatial motion vector candidates, only the spatial motion vector candidate with the smallest motion vector candidate index is left among the identical spatial motion vector candidates, and the remaining spatial motion vector candidates are removed from the motion vector candidate list. That is, when there are a plurality of candidates having the same motion vector value, only one candidate having the same motion vector value can be left in the motion vector candidate list. And the number of motion vector candidates to be removed is one.
[0079] Then, the encoder and decoder adjust the motion vector candidate list by adding or partially removing a specific motion vector (S450). The encoder and decoder can adjust the size of the motion vector candidate list by adding a motion vector to the motion vector candidate list (mvpListLX) or by partially removing some of the motion vector candidates included in the motion vector candidate list. And the number of motion vector candidates to be removed is one. At this time, a specific motion vector can be added without considering whether there is a motion vector candidate in the motion vector candidate list based on the maximum number of motion vector candidates (maxNumMVPCand). Also, the number of motion vector candidates in the motion vector candidate list can be adjusted by adding a specific motion vector without considering whether the specific motion vector exists in the motion vector candidate list. At this time, the specific motion vector to be added is a vector having a fixed integer value, and in some cases, it is the (0, 0) motion vector. Here, the (0, 0) motion vector means a motion vector in which the values of the x component and y component of the vector are 0, and is called a zero motion vector.
[0080] Finally, the encoder and decoder can determine a predicted motion vector based on the adjusted motion vector candidate list (S460).
[0081] FIG. 5 schematically shows an example of a spatial motion vector candidate derivation process.
[0082] Referring to FIG. 5, the encoder and decoder determine whether there is motion information of the restored adjacent blocks 510, 512, 514, 516, 518 to derive the spatial motion vector candidate of the current block 500. If there is no motion information of the restored adjacent blocks, it can be determined that it is not available as a motion vector candidate.
[0083] According to an embodiment of the present invention, the encoder and decoder can derive a spatial motion vector from the AO block 510 located at the lower left corner of the current block 500, the A1 block 512 adjacent to the left lowermost end of the current block 500, the B0 block 514 located at the upper right corner of the current block 500, the B1 block 516 adjacent to the upper rightmost side of the current block 500, and the B2 block 518 located at the upper left corner of the current block 500, and determine it as the spatial motion vector candidate of the current block 500.
[0084] At this time, it is possible to determine whether a motion vector exists in each block in the order of the A0, A1, BO, B1, and B2 blocks 510, 512, 514, 516, 518. If a motion vector exists, the motion vector of the corresponding block can be determined as a motion vector candidate. The spatial motion vector candidates can be induced up to the maximum number of spatial motion vectors (maxNumSpatialMVPCand), where the maximum number of spatial motion vectors (maxNumSpatialMVPCand) is a positive integer including 0. According to an embodiment of the present invention, the maximum number of spatial motion vectors (maxNumSpatialMVPCand) is 2. Therefore, by inducing one motion vector candidate from the A0 block 510 and the A1 block 512, and inducing one motion vector candidate from the BO block 514, the B1 block 516, and the B2 block 518, a total of two spatial motion vectors are induced. At the same time, if the motion vector induced from the A0 block 510 and the A1 block 512 is not the same as the motion vector induced from the BO block 514, the B1 block 516, and the B2 block 518, the process of inducing the temporal motion vector candidate is not executed. Further, when the reference picture of the restored adjacent block is different from the reference picture of the current block 500, the motion vector of the adjacent block can be scaled and used by using the distance between the reference picture of the current block 500 and the reference picture of the restored adjacent block.
[0085] According to another embodiment of the present invention, the following method can be followed as a specific method for inducing a spatial motion vector from the restored adjacent block.
[0086] 1) If a block exists at a predetermined position, the corresponding block is not intra-coded in the picture, and the reference picture list and reference picture of the corresponding block are the same as the reference picture list and reference picture of the current block, the motion vector of the corresponding block can be induced as a motion vector candidate of the current block.
[0087] 2) A block exists at a predetermined position, the corresponding block is not intra-coded, the reference picture list of the corresponding block is different from that of the current block, but the reference pictures of the corresponding block and the current block are the same. In this case, the motion vector of the corresponding block can be induced as a candidate motion vector of the current block.
[0088] 3) A block exists at a predetermined position, the corresponding block is not intra-coded, the reference picture list of the corresponding block is the same as that of the current block, but the reference pictures of the corresponding block and the current block are different. In this case, scaling can be performed on the motion vector of the corresponding block to induce it as a candidate motion vector of the current block.
[0089] 4) A block exists at a predetermined position, the corresponding block is not intra-coded, and the reference picture list and reference picture of the corresponding block are different from those of the current block. In this case, scaling can be performed on the motion vector of the corresponding block to induce it as a candidate motion vector of the current block.
[0090] Based on the above processes 1) to 4), the encoder and decoder can sequentially perform the following steps: execute processes 1) and 2) for the AO block 510, execute processes 1) and 2) for the A1 block 512, execute processes 3) and 4) for the AO block 510, execute processes 3) and 4) for the A1 block 512, execute processes 1) and 2) for the B0 block 514, execute processes 1) and 2) for the B1 block 516, execute processes 1) and 2) for the B2 block 518, execute processes 3) and 4) for the B0 block 514, execute processes 3) and 4) for the B1 block 516, and execute processes 3) and 4) for the B2 block 518.
[0091] FIG. 6 schematically shows an embodiment of the temporal motion vector candidate induction process.
[0092] Referring to FIG. 6, the encoder and decoder can derive motion vector candidates from the corresponding position block (or collocated block 600) restored in the corresponding position picture (or collocated picture) which is the temporal neighborhood of the current block 500.
[0093] According to an embodiment of the present invention, temporal motion vector candidates can be derived in the order of the block 610 at the H position existing outside the collocated block 600 corresponding to the same spatial position as the current block 500 in the collocated picture of the current picture and the block 612 at the C3 position existing inside the collocated block 600. At this time, when a motion vector can be derived from the H block 610, a temporal motion vector is derived from the H block 610, and when a motion vector cannot be derived from the H block 610, a temporal motion vector candidate can be derived from the C3 block 612.
[0094] Here, the H block 610 is the block at the lower right corner of the collocated block 600, and the C3 block 612 is the lower right block among the blocks obtained by dividing a square centered on the center of the collocated block 600 into four. The temporal motion vector can be determined by the relative positions of the H block 610 and the C3 block 612. If a predetermined H block 610 and C3 block 612 are intra-picture encoded, temporal motion vector candidates cannot be derived.
[0095] In addition, the temporal motion vector candidates can be induced up to the maximum number of temporal motion vectors (maxNumTemporalMVPCand). At this time, the maximum number of temporal motion vectors (maxNumTemporalMVPCand) is a positive integer including 0. As an example, the maximum number of temporal motion vectors (maxNumTemporalMVPCand) is 1. If the distance between the current picture and the reference picture of the current block 500 is different from the distance between the collocated picture and the reference picture of the collocated block 600, the temporal motion vector candidates can be induced by performing scaling on the motion vector.
[0096] Scaling can be performed through the following process.
[0097] First, obtain the POC (Picture Order Count) difference values between the collocated picture and the reference picture of the H block 610 or C3 block 612, and the td value and tb value indicating the POC difference values between the current picture and the reference picture of the current block. At this time, i) in the case of the spatial motion vector induction process, the td value indicates the difference value between the POC of the current picture and the POC of the reference picture referred to by the spatially adjacent reference block, and the tb value indicates the difference value between the POC of the current picture and the POC of the reference picture referred to by the current block. At this time, if the prediction directions of the reference picture of the current block and the reference picture of the reference block are different from each other, the signs of the td and tb values can be made different. In some cases, the td value or tb value can be adjusted to be included in the range of -128 to 127. At this time, if the td value or tb value is less than -128, the td value or tb value can be adjusted to -128, and if the td value or tb value is greater than 127, the td value or tb value can be adjusted to 127. If the td value or tb value is included in the range of -128 to 127, the td value or tb value is not adjusted.
[0098] After obtaining the td value and the tb value, calculate the tx value, which is the inverse proportional value of the td value. This can be determined using the formula (16384+(Abs(td)>>1)) / td. At this time, Abs() represents the absolute value of the input value.
[0099] Then, determine the scaling factor DistScaleFactor using the formula (tb*tx+32)>>6 and adjust it to be within the range of -1024 to 1023.
[0100] It is possible to calculate the scaled temporal motion vector having the adjusted DistScaleFactor value using the formula Sign(DistScaleFactor*mvCol)*((Abs(DistScaleFactor*mvCol)+127)>>8). At this time, Sign() outputs the sign information of the input value, and mvCol represents the temporal motion vector value before scaling.
[0101] FIG. 7 schematically shows an example of constructing a motion vector candidate list based on the induced motion vector.
[0102] Referring to FIG. 7, the encoder and the decoder add the induced motion vector candidates to the motion vector candidate list (mvpListLX). The encoder and the decoder add the induced spatial motion vector candidates and temporal motion vector candidates to the motion vector candidate list in order. mvpListLX means a motion vector candidate list corresponding to one of the reference picture lists L0 and L1. For example, the motion vector candidate list corresponding to the reference picture list L0 can be represented by mvpListL0.
[0103] The size of the motion vector candidate list (mvpListLX) can be determined based on a predetermined number, the maximum number of motion vector candidates (maxNumMVPCand). At this time, the maximum number of motion vector candidates (maxNumMVPCand) is 2. If the maximum number of motion vector candidates is 3 and the number of induced motion vector candidates is 3, the motion vector candidate first added to the motion vector candidate list (mvpListLX) can have a motion vector candidate index value of 0, and the last added motion vector candidate can have a motion vector candidate index value of 2.
[0104] According to the embodiment of FIG. 7, when a spatial motion vector candidate (1, 0) that is not scaled from the A1 block 512 is induced, a spatial motion vector candidate (4, -1) scaled from the B1 block 516 is induced, and a temporal motion vector candidate (2, 3) is induced from the H block 610, the motion vector candidates are added to the motion vector candidate list 700 in order. At this time, the motion vector candidate index value induced from the A1 block 512 can be 0, the motion vector candidate index value induced from the B1 block 516 can be 1, and the motion vector candidate index value induced from the H block 610 can be 2. In the above embodiment, assuming that the maximum number of motion vector candidates is 2, since the motion vector candidates induced from the A1 block 512 and the B1 block 516 are not the same as each other, the motion vector candidates induced from the A1 block 512 and the B1 block 516 are added to the motion vector candidate list without inducing a temporal motion vector candidate.
[0105] FIG. 8 schematically shows an embodiment of removing identical motion vectors from the motion vector candidate list.
[0106] Referring to FIG. 8, the encoder and decoder check whether there are identical motion vector candidates in the motion vector candidate list 800. As a result of the check, if there are multiple identical motion vector candidates, only the motion vector candidate with the smallest motion vector candidate index among the identical motion vector candidates is left in the motion vector candidate list 800, and the remaining motion vector candidates are removed from the motion vector candidate list 800. At this time, the identical motion vector candidate removal operation can be executed only for the spatial motion vector candidates.
[0107] According to the embodiment of FIG. 8, when the motion vector candidate list 800 is composed of three motion vector candidates of (1, 0), (1, 0), and (2, 3), the candidates corresponding to index 0 and index 1 are identical (1, 0). If there are identical motion vectors, the encoder and decoder, similar to the reconstructed motion vector candidate list 810, leave only the motion vector candidate with the smallest index among the identical motion vector candidates in the motion vector candidate list 810 and remove the remaining motion vector candidates.
[0108] FIG. 9 is a flowchart schematically showing a process of adjusting a motion vector candidate list according to an embodiment of the present invention.
[0109] Referring to FIG. 9, the encoder and decoder determine whether the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list is less than the maximum number of motion vector candidates (maxNumMVPCand) (S910). If the number of the included motion candidates is less than the maximum number of motion vector candidates, a (0, 0) motion vector is added to the motion vector candidate list (S920). When a (0, 0) motion vector is added to the motion vector candidate list, the number of motion vector candidates (numMVPCandLX) can be increased by one. After adding the (0, 0) motion vector, the determination as to whether the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list is less than the maximum number of motion vector candidates (maxNumMVPCand) and the operation of adding the (0, 0) motion vector are repeated until the number of motion vector candidates (numMVPCandLX) reaches the maximum number of motion vector candidates (maxNumMVPCand). That is, by executing the above process until the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list becomes the same as the maximum number of motion vector candidates (maxNumMVPCand), the number of motion vector candidates (numMVPCandLX) can become the same as the maximum number of motion vector candidates (maxNumMVPCand).
[0110] However, according to another embodiment of the present invention, when the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list is less than the maximum number of motion vector candidates (maxNumMVPCand), only one (0, 0) motion vector can be added.
[0111] Conclusively, the number of motion vector candidates included in the motion vector candidate list can be determined by the maximum number of motion vector candidates.
[0112] According to an embodiment of the present invention, also, when the number (numMVPCandLX) of motion vector candidates included in the motion vector candidate list is larger than the maximum number of motion vector candidates (maxNumMVPCand), the motion vector candidate list can be adjusted by removing some of the motion vector candidates. At this time, the motion vector candidates to be removed are motion vector candidates having an index value larger than the number (maxNumMVPCand - 1) that is one less than the maximum number of motion vector candidates. Also, when the number of the included motion candidates is the same as the maximum number of motion vector candidates, the final motion vector candidates are derived. At this time, when the maximum number of motion vector candidates (maxNumMVPCand) is 2, finally, up to 2 motion vector candidates can be derived. At this time, the derived motion vector candidates can be included in the motion vector candidate list, and one of the derived motion vector candidates can be determined as the predicted motion vector of the prediction block.
[0113] According to another embodiment of the present invention, also, when the number (numMVPCandLX) of motion vector candidates included in the motion vector candidate list is larger than or the same as the maximum number of motion vector candidates (maxNumMVPCand), the motion vector candidate list can be adjusted by removing some of the motion vector candidates. Similarly, when the number (numMVPCandLX) of motion vector candidates included in the motion vector candidate list is the same as the maximum number of motion vector candidates (maxNumMVPCand), since there is no need to remove the motion vector candidates, only when the number (numMVPCandLX) of motion vector candidates included in the motion vector candidate list is larger than the maximum number of motion vector candidates (maxNumMVPCand), the motion vector candidate list can be adjusted by removing some of the motion vector candidates.
[0114] Through the above process, only the number of motion vector candidates in the motion vector candidate list is compared with the maximum number of motion vector candidates to add a motion vector candidate to the motion vector candidate list. Therefore, by not performing a duplicate check on whether a specific motion vector candidate to be added ((0, 0) motion vector) exists in the motion vector candidate list, the computational complexity can be reduced in motion vector prediction.
[0115] Also, only the number of motion vector candidates in the motion vector candidate list is compared with the maximum number of motion vector candidates, and it is not necessary to perform a list empty check on the existence of motion vectors in the motion vector candidate list that is executed in an intermediate step of the motion vector candidate list configuration. As a result, the computational complexity of motion vector prediction can be further reduced.
[0116] FIG. 10 schematically shows an example of adding a (0, 0) motion vector when there is one motion vector candidate in the motion vector candidate list.
[0117] The encoder and decoder can adjust the size of the motion vector candidate list by adding a motion vector to or removing a part of the motion vector candidate list (mvpListLX). Here, numMVPCandLX means the number of motion vector candidates in the motion vector candidate list corresponding to one of the reference picture lists L0 and L1, and the size of the maximum motion vector candidate list can be determined by a predetermined number, the maximum number of motion vector candidates (maxNumMVPCand). For example, the number of motion vector candidates in the motion vector candidate list corresponding to the reference picture list L0 can be expressed as numMVPCandL0. At this time, numMVPCandLX and maxNumMVPCand are positive integers including 0, and as an example, maxNumMVPCand is 2.
[0118] Referring to FIG. 10, in one embodiment of the present invention, when the maximum number of motion vector candidates (maxNumMVPCand) is 2, the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list 1000 is 1. Since the number of motion vector candidates included in the motion vector candidate list 1000 is smaller than the maximum number of motion vector candidates (maxNumMVPCand), a specific motion vector can be added to the motion vector candidate list 1000, and the number of motion vector candidates (numMVPCandLX) can be increased by 1. As a result, by adding the specific motion vector, a motion vector candidate list 1010 with adjusted size can be generated. At this time, the added specific motion vector is a vector having a predetermined fixed integer value and is a (0,0) motion vector.
[0119] FIG. 11 schematically shows an additional embodiment of the (0,0) motion vector when there is one (0,0) motion vector candidate in the motion vector candidate list.
[0120] Referring to FIG. 11, in another embodiment of the present invention, the maximum number of motion vector candidates (maxNumMVPCand) is 2, the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list 1100 is smaller than the maximum number of motion vector candidates (maxNumMVPCand), and one specific motion vector ((0,0) motion vector) can exist in the motion vector candidate list 1100. In this case, the encoder and decoder can add a specific motion vector regardless of whether a specific motion vector ((0,0) motion vector) exists in the motion vector candidate list 1100. As a result, by adding one more specific motion vector, a motion vector candidate list 1110 with adjusted size can be generated. At this time, the added specific motion vector is a vector having a predetermined fixed integer value and is a (0,0) motion vector. By adding specific motion vectors, the number of motion vector candidates (numMVPCandLX) can be increased. Therefore, the motion vector candidate list 1110 can contain up to the maximum number of motion vector candidates (maxNumMVPCand) of (0,0) motion vectors. Since the encoder and decoder only compare the maximum number of motion vector candidates (maxNumMVPCand) with the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list to add specific motion vectors, the arithmetic complexity can be reduced by not determining whether the specific motion vector exists in the list.
[0121] FIG. 12 schematically shows an example of adding a (0,0) motion vector when no motion vector exists in the motion vector candidate list.
[0122] Referring to FIG. 12, in another embodiment of the present invention, the maximum number of motion vector candidates (maxNumMVPCand) is 2, the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list 1200 is smaller than the maximum number of motion vector candidates (maxNumMVPCand), and there is no motion vector in the motion vector candidate list 1200. In this case, the encoder and decoder can repeatedly add a specific motion vector regardless of whether there is a motion vector candidate in the motion vector candidate list 1200. By adding the specific motion vector, the number of motion vector candidates (numMVPCandLX) can be increased. That is, the encoder and decoder can add a specific motion vector until the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list reaches the maximum number of motion vector candidates (maxNumMVPCand). As in the above embodiment, when the maximum number of motion vector candidates (maxNumMVPCand) is 2, two specific motion vectors can be added. At this time, the specific motion vector to be added is a vector having a predetermined fixed integer value and is the (0, 0) motion vector. Therefore, the motion vector candidate list 1210 can include as many (0, 0) motion vectors as the maximum number of motion vector candidates (maxNumMVPCand). Since the encoder and decoder compare only the maximum number of motion vector candidates (maxNumMVPCand) with the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list and add a specific motion vector, the arithmetic complexity can be reduced by not determining whether the motion vector candidate exists in the list.
[0123] Although not shown in the drawings, according to another embodiment of the present invention, when the maximum number of motion vector candidates (maxNumMVPCand) is 2 and the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list is smaller than the maximum number of motion vector candidates (maxNumMVPCand), one specific motion vector can be added. By adding the specific motion vector, the number of motion vector candidates (numMVPCandLX) can be increased. That is, only one specific motion vector can be added without repeatedly adding the added specific motion vector. For example, when there is no motion vector in the motion vector candidate list, the encoder and decoder can add one specific motion vector regardless of whether there are motion vector candidates in the motion vector candidate list. By adding the specific motion vector, the number of motion vector candidates (numMVPCandLX) can be increased. At this time, the added specific motion vector is a vector having a predetermined fixed integer value and is the (0, 0) motion vector. Even in such a case, since the encoder and decoder compare only the maximum number of motion vector candidates (maxNumMVPCand) with the number of motion vector candidates (numMVPCandLX) included in the motion vector candidate list to add the specific motion vector, the calculation complexity can be reduced without determining whether the motion vector candidate exists in the list.
[0124] FIG. 13 schematically shows an embodiment of removing a part of the motion vector candidates from the motion vector candidate list.
[0125] Referring to FIG. 13, in one embodiment of the present invention, when the number (numMVPCandLX) of motion vector candidates included in the motion vector candidate list 1300 is greater than the maximum number of motion vector candidates (maxNumMVPCand), a motion vector candidate having an index value greater than a value (maxNumMVPCand - 1) that is 1 less than the maximum number of motion vector candidates can be removed from the motion vector candidate list 1300. For example, when the maximum number of motion vector candidates (maxNumMVPCand) is 2 and the number (numMVPCandLX) of motion vector candidates included in the motion vector candidate list 1300 is 3, the motion vector candidate (4, -3) having an index value of 2, which is greater than 1 (the value (maxNumMVPCand - 1) that is 1 less than the maximum number of motion vector candidates of 2), can be removed from the motion vector candidate list 1300 to generate a motion vector candidate list 1310 with an adjusted size.
[0126] According to another embodiment of the present invention, when the number (numMVPCandLX) of motion vector candidates included in the motion vector candidate list is greater than or equal to the maximum number of motion vector candidates (maxNumMVPCand), a motion vector candidate having an index value greater than a value (maxNumMVPCand - 1) that is 1 less than the maximum number of motion vector candidates can be removed from the motion vector candidate list.
[0127] FIG. 14 schematically shows the process of determining a predicted motion vector from among the motion vector candidates in the motion vector candidate list.
[0128] Referring to FIG. 14, the encoder and decoder can determine a predicted motion vector from the motion vector candidates included in the motion vector candidate list 1400 adjusted through the above process.
[0129] According to one embodiment, the encoder and decoder can determine a motion vector candidate in the motion vector candidate list 1400 corresponding to a specific motion vector candidate index as the predicted motion vector. For example, when the maximum number of motion vector candidates (maxNumMVPCand) is 2 and the motion vector candidate index is 1, the motion vector candidate (2, 3) can be determined as the predicted motion vector.
[0130] The encoder and decoder can generate a predicted block by performing inter prediction or motion compensation based on the predicted motion vector value determined as described above.
[0131] In the foregoing embodiments, the method is described based on a sequence diagram in a series of steps or blocks. However, the present invention is not limited to the order of the steps, and a certain step can occur in a different order or simultaneously with steps different from the foregoing. Also, those with ordinary knowledge in the relevant technical field can understand that the steps shown in the sequence diagram are not exclusive, other steps are included, or one or more steps in the sequence diagram can be deleted without affecting the scope of the present invention.
[0132] The foregoing embodiments include examples of various aspects. Although it is not possible to describe all possible combinations for showing various aspects, those with ordinary knowledge in the relevant technical field can recognize that other combinations are possible. Therefore, the present invention includes all alternatives, modifications, and changes that fall within the scope of the claims.
Claims
1. a motion vector candidate list constructing unit that constructs a motion vector candidate list; a motion vector candidate list adjustment unit that adjusts the motion vector candidate list based on a maximum number of motion vector candidates in the motion vector candidate list; a motion vector predictor determination unit that determines a motion vector predictor based on the adjusted motion vector candidate list, the motion vector candidate list includes at least one of a spatial motion vector candidate, a temporal motion vector candidate, and a specific motion vector candidate; the candidate temporal motion vector is generated by performing scaling if a difference between a current picture and a reference picture of a current block is different from a difference between a collocated picture and a reference picture of a collocated block; The maximum number of motion vector candidates is two; if there is no motion vector candidate in the motion vector candidate list, two specific motion vector candidates are added to the motion vector candidate list by the motion vector candidate list adjuster; the motion vector candidate list constructing unit induces the spatial motion vector candidate, induces the temporal motion vector candidate, and adds at least one of the induced spatial motion vector candidate and the induced temporal motion vector candidate to the motion vector candidate list; The operation of removing duplicate motion vector candidates is performed only on the spatial motion vector candidates, and the temporal motion vector candidates are derived except when there are two derived spatial motion vector candidates and they are different from each other; and when the number of motion vector candidates in the motion vector candidate list is smaller than the maximum number of motion vector candidates, the motion vector candidate list adjustment unit repeatedly adds the specific motion vector candidate based only on the maximum number of motion vector candidates and the number of motion vector candidates in the motion vector candidate list until the number of motion vector candidates in the motion vector candidate list reaches the maximum number of motion vector candidates.
2. The video decoding apparatus of claim 1 , wherein the specific motion vector candidate is a (0,0) motion vector.
3. a prediction block generation unit that performs inter prediction to generate a prediction block; an encoding unit that performs entropy encoding of a residual block corresponding to a difference between a current block and a prediction block predicted by the inter prediction; a predicted motion vector corresponding to the predicted block is included in a motion vector candidate list; one or more specific motion vector candidates are added to the motion vector candidate list based on a maximum number of motion vector candidates in the motion vector candidate list; the motion vector candidate list includes at least one of spatial motion vector candidates, temporal motion vector candidates, and the particular motion vector candidate; The temporal motion vector candidate is generated by performing scaling when a difference between a current picture and a reference picture of a current block is different from a difference between a collocated picture and a reference picture of a collocated block; The maximum number of motion vector candidates is two; if there is no motion vector candidate in the motion vector candidate list, two specific motion vector candidates are added to the motion vector candidate list by the motion vector candidate list adjuster; The motion vector candidate list includes: Deriving the spatial motion vector candidates; deriving said candidate temporal motion vectors; adding at least one of the induced spatial motion vector candidates and the induced temporal motion vector candidates to the motion vector candidate list; The operation of removing duplicate motion vector candidates is performed only on the spatial motion vector candidates, and the temporal motion vector candidates are derived except when there are two derived spatial motion vector candidates and they are different from each other; a video encoding device, wherein, when the number of motion vector candidates in the motion vector candidate list is smaller than a maximum number of motion vector candidates, the specific motion vector candidate is repeatedly added to the motion vector candidate list based only on the maximum number of motion vector candidates and the number of motion vector candidates in the motion vector candidate list, until the number of motion vector candidates in the motion vector candidate list reaches the maximum number of motion vector candidates.
4. The video encoding device according to claim 3 , wherein the specific motion vector candidate is a (0,0) motion vector.
Citation Information
Patent Citations
Moving image decoder, moving image decoding method, moving image decoding program, receiver, reception method and reception program
JP2013085235A
Method and apparatus for encoding motion information and method and apparatus for decoding same
WO2012173415A2
Method and apparatus for encoding motion information, and method and apparatus for decoding same
WO2013002557A2
Method of decoding motion vector
WO2013067924A1