A video decoding method comprising the steps of: determining whether a merge motion difference encoding method is applied to a current block; generating a merge candidate list for the current block; specifying a merge candidate for the current block based on the merge candidate list; and deriving a motion vector for the current block based on the merge candidate, wherein when the merge motion difference encoding method is applied to the current block, the motion vector of the current block is derived by adding an offset vector to a motion vector of the merge candidate, when the maximum number of merge candidates that the merge candidate list may include is plural, the merge candidate of the current block is selected based on index information decoded from a bitstream indicating one among the merge candidates, and when the maximum number is 1, the merge candidate is determined without decoding the index information, wherein the magnitude of the offset vector is obtained by applying a shift operation by a preset value to the value indicated by the motion magnitude value specified by first index information, wherein the direction of the offset vector is determined based on second index information specifying one among vector direction values, wherein the range of motion vector offset size values is set differently based on motion vector precision, and wherein when the motion vector precision for the current block is a fractional-pel, values of the first index information are set to 1, 2, 4, 8, or 16, and when the motion vector precision for the current block is an integer-pel, values of the variable motion magnitude corresponding to respective values of the first index information are set to 4, 8, 16, 32, or 64. determining whether a merge motion difference encoding method is applied to a current block; generating a merge candidate list for the current block; specifying a merge candidate for the current block based on the merge candidate list; and deriving a motion vector for the current block based on the merge candidate, wherein when the merge motion difference encoding method is applied to the current block, the motion vector of the current block is derived by adding an offset vector to a motion vector of the merge candidate, when the maximum number of merge candidates that the merge candidate list may include is plural, the merge candidate of the current block is selected based on index information decoded from a bitstream indicating one among the merge candidates, and when the maximum number is 1, the merge candidate is determined without decoding the index information, wherein the magnitude of the offset vector is obtained by applying a shift operation by a preset value to the value indicated by the motion magnitude value specified by first index information, wherein the direction of the offset vector is determined based on second index information specifying one among vector direction values, wherein the range of motion vector offset size values is set differently based on motion vector precision, and wherein when the motion vector precision for the current block is a fractional-pel, values of the first index information are set to 1, 2, 4, 8, or 16, and when the motion vector precision for the current block is an integer-pel, values of the variable motion magnitude corresponding to respective values of the first index information are set to 4, 8, 16, 32, or 64.