WO2023085704A1 - 비디오 복호화 방법, 비디오 복호화 장치, 비디오 부호화 방법, 및 비디오 부호화 장치 - Google Patents
비디오 복호화 방법, 비디오 복호화 장치, 비디오 부호화 방법, 및 비디오 부호화 장치 Download PDFInfo
- Publication number
- WO2023085704A1 WO2023085704A1 PCT/KR2022/017321 KR2022017321W WO2023085704A1 WO 2023085704 A1 WO2023085704 A1 WO 2023085704A1 KR 2022017321 W KR2022017321 W KR 2022017321W WO 2023085704 A1 WO2023085704 A1 WO 2023085704A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- motion vector
- candidate
- reference frame
- block
- motion
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000013598 vector Substances 0.000 claims abstract description 788
- 238000010586 diagram Methods 0.000 description 26
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 10
- 238000001914 filtration Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000000691 measurement method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 101100520660 Drosophila melanogaster Poc1 gene Proteins 0.000 description 2
- 101100520662 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PBA1 gene Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Definitions
- the present disclosure relates to a video decoding method and apparatus, and a video encoding method and apparatus, and more specifically, in bi-directional prediction, a first motion vector among two pieces of motion vector information (first motion vector information and second motion vector information).
- Video decoding in which related information is transmitted only for information, and second motion vector information is derived using a first motion vector obtained using the transmitted first motion vector information and a motion vector candidate list for the second motion vector; and It relates to an encoding method and apparatus.
- codecs such as H.264 Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), and Versatile Video Coding (VVC)
- AVC High Efficiency Video Coding
- VVC Versatile Video Coding
- Intra prediction is a method of compressing an image by removing spatial redundancy in images
- inter prediction is a method of compressing an image by removing temporal redundancy between images.
- a prediction block is generated through intra prediction or inter prediction
- a residual block is generated by subtracting the prediction block from a current block
- residual samples of the residual block are transformed and quantized.
- residual samples of the residual block are generated by inverse quantization and inverse transformation of quantized transform coefficients of the residual block, and a prediction block generated through intra prediction or inter prediction is combined with the residual block to reconstruct the current block.
- the restored current block may be output after being processed according to one or more filtering algorithms.
- codecs such as H.264 AVC, HEVC, and VVC
- codecs such as H.264 AVC, HEVC, and VVC
- motion information for both directions is transmitted and motion estimation is performed twice to find two reference blocks.
- a video decoding method includes obtaining information on a first motion vector of a current block from a bitstream; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block using the first motion vector and the second motion vector.
- a video decoding apparatus includes a memory for storing one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may obtain information about a first motion vector of a current block from a bitstream. At least one processor may determine the first motion vector based on information on the first motion vector. At least one processor may determine a candidate list including a plurality of candidate prediction motion vectors for determining the second motion vector of the current block. At least one processor may determine one of the plurality of candidate motion vectors as the second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector. At least one processor may determine the motion vector of the current block using the first motion vector and the second motion vector.
- a video encoding method includes generating information about a first motion vector of a current block; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block by using the first motion vector and the second motion vector, and encoding information on the first motion vector.
- a video encoding apparatus based on AI includes a memory for storing one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may generate information about the first motion vector of the current block. At least one processor may determine the first motion vector based on information on the first motion vector. At least one processor may determine a candidate list including a plurality of candidate prediction motion vectors for determining the second motion vector of the current block. At least one processor may determine one of the plurality of candidate motion vectors as the second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector. At least one processor may determine a motion vector of the current block using the first motion vector and the second motion vector, and encode information on the first motion vector.
- 1 is a diagram illustrating a process of encoding and decoding an image.
- FIG. 2 is a diagram illustrating blocks divided from an image according to a tree structure.
- 3A is a diagram for explaining an example of a reference block in bi-directional prediction.
- 3B is a diagram for explaining an example of a reference block in bidirectional prediction.
- 3C is a diagram for explaining an example of a reference block in bidirectional prediction.
- 3D is a diagram for explaining an example of a reference block in bi-directional prediction.
- 3E is a diagram for explaining a method of obtaining a current block by using a reference block in bi-directional prediction.
- 4A is a diagram for explaining a method of obtaining a first reference block of a current block through motion estimation according to an embodiment of the present disclosure.
- 4B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
- 5A is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
- 5B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
- FIG. 6 is a flowchart of a video decoding method according to an embodiment of the present disclosure.
- FIG. 7 is a diagram showing the configuration of a video decoding apparatus according to an embodiment of the present disclosure.
- FIG. 8 is a flowchart of a video encoding method according to an embodiment of the present disclosure.
- FIG. 9 is a diagram showing the configuration of a video encoding apparatus according to an embodiment of the present disclosure.
- one component when one component is referred to as “connected” or “connected” to another component, the one component may be directly connected or directly connected to the other component, but in particular Unless otherwise described, it should be understood that they may be connected or connected via another component in the middle.
- components expressed as ' ⁇ unit (unit)', 'module', etc. are two or more components combined into one component, or one component is divided into two or more for each function. may be differentiated into.
- each of the components to be described below may additionally perform some or all of the functions of other components in addition to its own main function, and some of the main functions of each component may be different from other components. Of course, it may be performed exclusively by a component.
- an 'image or picture' may mean a still image (or frame), a motion picture composed of a plurality of continuous still images, or a video.
- 'current block' means a block that is currently a processing target.
- the current block may be a slice, tile, maximum coding unit, coding unit, prediction unit, or transformation unit divided from the current image.
- sample' refers to data to be processed as data allocated to a sampling position within data such as an image or a block.
- a sample may include a pixel in a 2D image.
- 1 is a diagram illustrating a process of encoding and decoding an image.
- the encoding device 110 transmits the bitstream generated through encoding of the image to the decoding device 150, and the decoding device 150 receives and decodes the bitstream to restore the image.
- the prediction encoder 115 outputs a prediction block through inter prediction and intra prediction
- the transform and quantization unit 120 outputs a residual sample of a residual block between the prediction block and the current block. are transformed and quantized to output quantized transform coefficients.
- the entropy encoding unit 125 encodes the quantized transform coefficient and outputs it as a bitstream.
- the quantized transform coefficient is reconstructed into a residual block including residual samples in the spatial domain through the inverse quantization and inverse transform unit 130 .
- the reconstructed block obtained by adding the prediction block and the residual block is output as a filtered block after passing through the deblocking filtering unit 135 and the loop filtering unit 140.
- the reconstructed image including the filtered block may be used as a reference image for the next input image in the predictive encoder 115 .
- the bitstream received by the decoding device 150 is reconstructed into a residual block including residual samples in the spatial domain through an entropy decoding unit 155 and an inverse quantization and inverse transform unit 160 .
- a reconstructed block is generated by combining the prediction block output from the prediction decoding unit 175 and the residual block, and the reconstructed block is output as a filtered block through the deblocking filtering unit 165 and the loop filtering unit 170.
- the reconstructed image including the filtered block may be used as a reference image for the next image in the prediction decoding unit 175.
- the loop filtering unit 140 of the encoding device 110 performs loop filtering using filter information input according to user input or system settings.
- the filter information used by the loop filtering unit 140 is transmitted to the decoding apparatus 150 through the entropy encoding unit 125 .
- the loop filtering unit 170 of the decoding device 150 may perform loop filtering based on filter information input from the entropy decoding unit 155 .
- an image is hierarchically segmented, and encoding and decoding are performed on blocks divided from the image.
- a block segmented from an image will be described with reference to FIG. 2 .
- FIG. 2 is a diagram showing blocks divided from the image 200 according to a tree structure.
- One image 200 may be divided into one or more slices or one or more tiles.
- One slice may include a plurality of tiles.
- One slice or one tile may be a sequence of one or more Maximum Coding Units (Maximum CUs).
- One maximum coding unit may be divided into one or more coding units.
- a coding unit may be a reference block for determining a prediction mode. In other words, it may be determined whether the intra prediction mode or the inter prediction mode is applied to each coding unit.
- a maximum coding unit may be referred to as a maximum coding block, and a coding unit may be referred to as a coding block.
- the size of the coding unit may be equal to or smaller than the maximum coding unit. Since a maximum coding unit is a coding unit having a maximum size, it may be referred to as a coding unit.
- One or more prediction units for intra prediction or inter prediction may be determined from the coding unit.
- the size of the prediction unit may be equal to or smaller than the coding unit.
- one or more transform units for transform and quantization may be determined from the coding unit.
- the size of the conversion unit may be equal to or smaller than the coding unit.
- a transform unit is a reference block for transform and quantization, and residual samples of a coding unit may be transformed and quantized for each transform unit within the coding unit.
- a current block may be a slice, a tile, a maximum coding unit, a coding unit, a prediction unit, or a transformation unit divided from the image 200 .
- a sub-block of the current block is a block divided from the current block, and for example, if the current block is a maximum coding unit, the sub-block may be a coding unit, a prediction unit, or a transformation unit.
- an upper block of the current block is a block including the current block as part of the upper block, and for example, if the current block is a maximum coding unit, the upper block may be a picture sequence, picture, slice, or tile.
- FIGS. 3A to 9 a video decoding method, a video decoding apparatus, a video encoding method, and a video encoding apparatus according to an exemplary embodiment will be described with reference to FIGS. 3A to 9 .
- 3A is a diagram for explaining an example of a reference block in bi-directional prediction.
- two reference blocks that is, a first reference block 315 and a second reference block 325 are obtained in a first reference frame 310, and the first reference block 315 ) and the second reference block 325, the current block 305 in the current frame 300 may be predicted.
- 3B is a diagram for explaining an example of a reference block in bidirectional prediction.
- a first reference block 315 in a first reference frame 320 of a past view of a current frame 300 and a second reference frame of a future view of the current frame 300 may be predicted using the first reference block 315 and the second reference block 325.
- 3C is a diagram for explaining an example of a reference block in bidirectional prediction.
- a first reference block 315 in a first reference frame 340 of a past view of the current frame 300 and a second reference frame of a past view of the current frame 300 ( The second reference block 325 in 350 is obtained, and the current block 305 in the current frame 300 may be predicted using the first reference block 315 and the second reference block 325 .
- 3D is a diagram for explaining an example of a reference block in bi-directional prediction.
- a first reference block 315 in a first reference frame 360 of a future view of a current frame 300 and a second reference frame of a future view of the current frame 300 ( The second reference block 325 in 370 is obtained and the current block 305 in the current frame 300 may be predicted using the first reference block 315 and the second reference block 325 .
- 3E is a diagram for explaining a method of obtaining a current block by using a reference block in bi-directional prediction.
- a reference image 335 is acquired using the first reference block 315 and the second reference block 325 acquired according to FIGS. 3A to 3D , and the reference image 335 is the current block. (305).
- the information on the reference block may include information on the reference frame including the reference block (eg, reference index) and positional information (eg, motion vector) of the reference block relative to the position of the current block.
- the motion vector may express the displacement of each x-axis and y-axis in units of specific fractional pixels or specific integer pixels based on the position of the upper left pixel of the current block.
- a motion vector difference value which is a difference between neighboring motion vector information and current motion vector information
- a motion vector prediction index for information used when selecting and using information of several neighboring blocks may be additionally transmitted. That is, in order to acquire one reference block, reference frame information, a motion vector prediction index, and a motion vector difference value must be transmitted.
- reference frame information, motion vector prediction index, Two motion vector difference values are required. Accordingly, since motion estimation is performed for each reference block to acquire two reference blocks, two motion estimation is required, such as a system requiring real-time low-delay or low latency video transmission in terms of complexity. It may not be suitable for real-time transmission.
- a method in which the motion vector difference value of the second reference block is not transmitted may be considered.
- motion estimation is performed by transmitting information on the first reference block only for the first reference block, and motion estimation is not performed on the second reference block. Therefore, although there may be some loss in terms of compression efficiency, it is advantageous for real-time transmission applications in terms of complexity.
- a motion vector difference value for a first reference block is transmitted, and a motion vector difference value for a second reference block is not transmitted, and motion vector prediction for a second reference block is performed.
- a motion vector of the second reference block may be determined using the candidate. In this case, if the number of motion vector prediction candidates selectable for the second reference block is plural, since a flag or index must be signaled to select one of the plurality of motion vector prediction candidates, the encoding side additionally predicts the motion vector. A decision process must be performed to select one of the candidates.
- a reference block at a corresponding location is fetched from a reference picture referred to by each of the motion vector prediction candidates and obtained through the motion vector of the first reference block.
- the cost is calculated using a cost function such as sum of absolute differences (SAD), and then a block with a small cost is selected.
- SAD sum of absolute differences
- a motion vector prediction candidate indicated by a value of a specific index position among motion vector prediction candidates for the selectable second reference block may be set to be transmitted unconditionally.
- the motion vector prediction candidate indicated by the first index may be configured to always be transmitted.
- the flag of the motion vector prediction candidate of the second reference block may be always set to 0 and transmitted. In this case, there is no need to fetch several reference blocks to determine motion vector prediction candidates, which has an advantage in terms of complexity, but may degrade performance in terms of compression efficiency.
- one of the motion vector prediction candidates of the second reference block is determined by considering the relationship between the motion vector of the first reference block and the motion vector prediction candidates of the second reference block. 2 can be selected as a reference block.
- there is no need to fetch several reference blocks from the external memory so it has an advantage in terms of complexity, and in terms of compression efficiency, performance is improved compared to simply using a specific index. That is, it is efficient in terms of complexity while minimizing loss in terms of image quality.
- 4A is a diagram for explaining a method of obtaining a first reference block of a current block through motion estimation according to an embodiment of the present disclosure.
- a motion search area is used by using information on the first reference block.
- a motion search in 400 is performed, and motion compensation is performed to obtain the first reference block 315 .
- 4B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
- a first reference block 315 is first acquired according to motion compensation as in FIG. 4A .
- the first reference frame 310 When included in the first reference frame 310, which is the same frame as the first reference block 315 and the second reference block, the first reference frame 310 from neighboring blocks of the current block 305 of the current frame 300
- the first candidate block 405 and the second candidate block 410 of the candidate positions of the second reference block in ) are obtained.
- the distance between each of the first candidate block 405 and the second candidate block 410 of the second reference block and the first reference block 315 is identified, and the candidate furthest from the first reference block 315 is identified.
- the first candidate block 405 that is a block may be determined as a second reference block.
- the distance between each of the first candidate block 405 and the second candidate block 410 of the second reference block and the first reference block 315 is a Euclidean distance measurement method or a Manhattan distance measurement method. can be identified using
- the motion vector of the first reference block is (x0, y0)
- the motion vector of the second reference block is (x1, y1)
- the motion vector prediction candidates of the second reference block MV1 are two
- the first candidate (MVP_1_1) of the reference block is (x11, y11)
- the second candidate (MVP_1_2) of the second reference block is (x12, y12)
- the Manhattan distance between each candidate and the first reference block is measured
- the second reference block may be determined according to a pseudo code such as Equation 1 below.
- the decoding side receives motion information (motion vector difference value, motion vector prediction candidate index) for the first reference block, determines the motion vector of the first reference block using the transmitted motion information, and determines the motion vector of the current block.
- a candidate list including candidate blocks for the second reference block is determined using the block, and a block farthest from the location of the first reference block among the candidate blocks for the second reference block is determined as the second reference block. and use it Accordingly, only the motion information for the first reference block is transmitted, and the motion vector for the second reference block is determined using the transmitted motion information for the first reference block without transmission of the motion information for the second reference block. , compression efficiency can be improved by reducing the size of transmission information and selecting an efficient reference block.
- the decoding side obtains information on the motion vector of the first reference block.
- the information on the motion vector of the first reference block includes an index indicating one of motion vector prediction candidates for the first reference block and a motion vector difference value.
- the decoding side obtains the motion vector of the first reference block by using information on the motion vector of the first reference block, and determines a candidate list including motion vector prediction candidates of the second reference block.
- the decoding side identifies a distance between a motion vector of the first reference block and motion vectors of motion vector prediction candidates of the second reference block.
- a motion vector of a motion vector prediction candidate having the furthest distance from the motion vector of the first reference block is determined as the motion vector of the second reference block.
- the motion vector prediction candidate of the candidate block having the shortest distance is the motion vector of the second reference block.
- a motion vector prediction candidate of may be determined as the motion vector of the second reference block or a motion vector prediction candidate of the candidate block having the closest distance may be determined as the motion vector of the second reference block.
- the motion vector prediction candidate of the candidate block furthest from the first reference block 315 is determined as the motion vector of the second reference block. or a motion vector prediction candidate of a candidate block having the closest distance may be determined as the motion vector of the second reference block.
- the motion vector prediction candidate of the candidate block furthest from the first reference block 315 is the second reference block.
- the motion vector prediction candidate of the candidate block closest to the first reference block 315 is the second It may be determined as a motion vector of a reference block.
- the motion vector prediction candidate of the candidate block furthest from the first reference block 315 is the second reference block.
- the motion vector prediction candidate of the candidate block closest to the first reference block 315 is the second reference block. It may be determined as a motion vector of a block. Even in this case, since there is no need to load several reference blocks from an external memory, it has an advantage in terms of complexity and performance can be improved in terms of compression efficiency compared to simply using a specific index.
- an index or a flag may be signaled for motion vector candidates of the second reference block, or a first signal may be signaled without signaling.
- the motion vector of the second reference block may be determined based on the distance between the motion vector of the first reference block and the motion vectors of the motion vector prediction candidates of the second reference block.
- 5A is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
- a first reference block 315 is first acquired according to motion compensation.
- the current frame 300 The first candidate block 505 and the second candidate block 510 of candidate positions of the second reference block in the second reference frame 330 are obtained from neighboring blocks of the current block 305 of ).
- a distance between each of the first candidate block 505 and the second candidate block 510 of the second reference block and the first reference block 315 is identified to determine the distance between the first candidate block 505 and the second candidate block 510. ), a candidate block having the closest distance may be determined as the second reference block.
- bidirectional prediction when two reference blocks are located in different reference frames and the distance between the two reference blocks is short, the probability that the reference blocks point to the same object is high. Based on the distance between each candidate block of the first reference block and the second reference block obtained using the method, a candidate block having a short distance is determined as the second reference block, so that coding efficiency may be improved.
- the decoding side obtains information on the motion vector of the first reference block.
- Information on the motion vector of the first reference block includes the direction of the first reference frame to which the first reference block belongs, that is, a direction index indicating whether it is a past view or a future view based on the current frame, a reference index indicating the first reference frame, and a first reference frame.
- 1 includes an index indicating one of motion vector prediction candidates for a reference block and a motion vector difference value.
- the decoding side obtains a motion vector of the first reference block by using information on the motion vector of the first reference block.
- the decoding side determines a candidate list including motion vector prediction candidates of the second reference block having a direction different from that of the motion vector of the first reference block among motion vector prediction candidates of the second reference block by using the direction index.
- the decoding side obtains the picture order count (POC) of the reference frame using the reference index.
- POC means a value numbered according to the display order of pictures.
- the decoding side identifies a scaled distance between a motion vector of the first reference block and motion vectors of motion vector prediction candidates having a direction different from that of the first reference block among motion vector prediction candidates of the second reference block by using the POC.
- the scaled distance is measured according to Equation 2 when the motion vector and POC of the first reference block are (x0, y0, POC0) and the motion vector and POC of the motion vector prediction candidate are (x1, y1, POC1).
- a motion vector of a motion vector prediction candidate having the closest distance from the motion vector of the first reference block based on the measured distance (dist), that is, the scaled distance, is determined as the motion vector of the second reference block.
- a motion vector of a motion vector prediction candidate having the furthest distance from the motion vector of the first reference block based on the scaled distance may be determined as the motion vector of the second reference block. If there is one motion vector having a POC distant from POC0, the corresponding motion vector may be used as it is.
- the motion vector having the farthest distance from the motion vector of the first reference block among motion vector candidates having POCs farther from POC0 can be used
- the corresponding motion vector may be used as it is.
- the motion vector having the closest distance to the motion vector of the first reference block among motion vector candidates having POCs that are close to POC0 is the motion vector.
- 5B is a diagram for explaining a method of deriving a second reference block using a first reference block obtained through motion estimation and candidate blocks of a current block according to an embodiment of the present disclosure.
- a first reference block 315 is obtained first according to motion compensation.
- the current frame 300 Candidate positions 515 and 520 of the second reference block in the second reference frame 350 are obtained from neighboring blocks of the current block 305 of ).
- a distance between each of the first candidate block 515 and the second candidate block 520 of the second reference block and the first reference block 315 is identified to determine the distance between the first candidate block 515 and the second candidate block 520. ), a candidate block having the closest distance may be determined as the second reference block.
- the decoding side obtains information on the motion vector of the first reference block.
- the information on the motion vector of the first reference block includes a reference index indicating a first reference frame to which the first reference block belongs, an index indicating one of motion vector prediction candidates for the first reference block, and a motion vector difference value.
- the decoding side obtains the motion vector of the first reference block by using information on the motion vector of the first reference block, and determines a candidate list including motion vector prediction candidates of the second reference block.
- the decoding side obtains the picture order count (POC) of the reference frame using the reference index.
- the decoding side identifies a scaled distance between a motion vector of the first reference block and motion vectors of motion vector prediction candidates of the second reference block by using the POC. The scaled distance is measured according to Equation 3 when the motion vector and POC of the first reference block are (x0, y0, POC0) and the motion vector and POC of the motion vector prediction candidate are (x1, y1, POC1).
- a motion vector of a motion vector prediction candidate having the closest distance from the motion vector of the first reference block based on the measured distance (dist), that is, the scaled distance, is determined as the motion vector of the second reference block.
- a motion vector of a motion vector prediction candidate having the furthest distance from the motion vector of the first reference block based on the scaled distance may be determined as the motion vector of the second reference block.
- the corresponding motion vector may be used as it is.
- the motion vector having the farthest distance from the motion vector of the first reference block among motion vector candidates having POCs farther from POC0 can be used
- the corresponding motion vector may be used as it is.
- the motion vector having the closest distance to the motion vector of the first reference block among motion vector candidates having POCs that are close to POC0 is the motion vector.
- a distance between the current picture and the first reference picture to which the first reference block belongs based on a motion vector of the first reference block, and a distance between the current picture and the second reference block
- the distance between the motion vector candidates of the first reference block and the second reference block is identified.
- a candidate block of the reference block may be obtained.
- the distance may be identified according to the cost function f(N) of Equation 4 below.
- POCc is the POC of the current picture belonging to the current block
- MvL0 if the motion vector of the first reference block is MvL0, MvL0[0] is the x-component of the motion vector of the first reference block, and MvL0[1] is the motion vector of the first reference block.
- POCL0 is the POC of the first reference picture to which the first reference block belongs
- the motion vector candidate of the second reference block is MvL1[N]
- MvL1[N][0] is the second reference block.
- N is an index meaning a specific motion vector prediction candidate, which is 1 or more and M or less.
- a final candidate NF having the greatest cost may be determined according to Equation 5 below using the cost function f(N) of Equation 4, and the final candidate NF may be determined as a motion vector of the second reference block.
- a final candidate having the smallest cost is determined using the cost function f(N) of Equation 4, unlike Equation 5, and the final candidate may be determined as a motion vector of the second reference block.
- the term for comparing the POC may be removed and expressed as in Equation 6 below.
- candidates may be selected in the order in which the second reference picture indicated by the motion vector candidate of the second reference block has the farthest distance from the first reference picture indicated by the motion vector of the first reference block.
- the corresponding candidate may be selected as the motion vector of the second reference block.
- candidates may be selected in the order in which the second reference picture indicated by the motion vector candidate of the second reference block has the shortest distance from the first reference picture indicated by the motion vector of the first reference block.
- the candidate may be selected as the motion vector of the second reference block.
- a second reference picture indicated by the motion vector candidate of the second reference block is a motion vector candidate included in the second reference picture that is the furthest away from the first reference picture indicated by the motion vector of the first reference block. If there are a plurality, the distance may be identified according to Equation 7.
- POCc is the POC of the current picture belonging to the current block
- MvL0 if the motion vector of the first reference block is MvL0, MvL0[0] is the x-component of the motion vector of the first reference block, and MvL0[1] is the motion vector of the first reference block.
- POCL0 is the POC of the first reference picture to which the first reference block belongs
- the motion vector candidate of the second reference block is MvL1[N]
- MvL1[N][0] is the second reference block.
- An x-component of a motion vector candidate belonging to a second reference picture farthest from the first reference picture among reference pictures to which the block belongs and MvL1[N][1] is the first of the reference pictures to which the second reference block belongs.
- a y component of a motion vector candidate belonging to a second reference picture farthest from a reference picture POCL1 is a POC of a second reference picture farthest from the first reference picture among reference pictures to which the second reference block belongs
- N is an index meaning a specific motion vector prediction candidate, and is 2 or more and M or less.
- a final candidate NF having the greatest cost is determined according to Equation 8 below using the cost function f(N) of Equation 7, and the final candidate NF may be determined as a motion vector of the second reference block.
- MvL1[N][0] is an x-component of a motion vector candidate belonging to a second reference picture having the closest distance from the first reference picture among reference pictures to which the second reference block belongs.
- MvL1[N][1] is a y-component of a motion vector candidate belonging to a second reference picture having the closest distance from the first reference picture among reference pictures to which the second reference block belongs
- POCL1 is the second reference block It may be the POC of a second reference picture that is closest to the first reference picture among the reference pictures to which it belongs. Accordingly, unlike Equation 8, a final candidate having the lowest cost is determined using the cost function f(N) of Equation 7, and the final candidate may be determined as a motion vector of the second reference block.
- the distance may be identified by scaling the motion vector of the first reference block.
- scaling is performed only once for the motion vector of the first reference block.
- the Euclidean distance measurement method as shown in Equation 10 below may be used instead of the Manhattan distance measurement method of Equation 1 above.
- the motion vector candidate of the block is MvL1[N]
- MvL1[N][0] is the x-component of the motion vector candidate of the second reference block
- MvL1[N][1] is the motion vector candidate of the second reference block.
- FIG. 6 is a flowchart of a video decoding method according to an embodiment of the present disclosure.
- the video decoding apparatus 700 may obtain information on a first motion vector of the current block from the bitstream.
- information on the first motion vector of the current block may be determined through SATD (Sum of Transform Difference) or RDO (Rate Distortion Optimization) calculation at the encoding side and transmitted through the bitstream.
- SATD Sud of Transform Difference
- RDO Rate Distortion Optimization
- a first reference frame including the first reference block and a second reference frame including motion vector candidates of the second reference block according to information included in the motion vector information of the first reference block. relationship can be judged.
- the first reference block including the first reference block
- the reference frame and the second reference frame including motion vector candidates of the second reference block are the same.
- the information on the motion vector of the first reference block includes a reference index indicating the first reference frame, an index indicating one of motion vector prediction candidates for the first reference block, and a motion vector difference value
- the first reference frame including the first reference block and the second reference frame including motion vector candidates of the second reference block are different, and the viewpoints of the first reference frame and the second reference frame are the current frame including the current block. It is the same point in time based on .
- the information on the motion vector of the first reference block includes the direction of the first reference frame to which the first reference block belongs, that is, a direction index indicating whether it is a past view or a future view based on the current frame, and the first reference frame. If a reference index indicating , an index indicating one of the motion vector prediction candidates for the first reference block, and a motion vector difference value are included, the motion vector candidates of the first reference frame including the first reference block and the second reference block are Included second reference frames are different, and viewpoints of the first reference frame and the second reference frame are different viewpoints based on the current frame including the current block.
- the video decoding apparatus 700 may determine a first motion vector based on information on the first motion vector.
- the video decoding apparatus 700 may determine a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block.
- the video decoding apparatus 700 may determine one of a plurality of candidate motion vectors as a second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector.
- the second motion vector when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that is the farthest away from 1 motion vector.
- a first reference frame of a first motion vector when a first reference frame of a first motion vector is the same as a second reference frame of the plurality of candidate motion vectors, an x component and a y component of each of the plurality of candidate motion vectors and the first reference frame 1
- the distance can be identified using the x and y components of the motion vector.
- the second motion vector when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to 1 motion vector.
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same.
- the distance is identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of each of the plurality of candidate predictive motion vectors, and the POC of the current block. It can be.
- POC Picture Order Count
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different.
- second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, and the POC of the first reference frame and each of the second candidate motion vector motion vectors are determined.
- the distance may be identified by scaling the second candidate predictive motion vectors based on the POC and the POC of the current block.
- the POC of the first reference frame, the POC of each of the second candidate motion vectors, and the current block The distance may be identified by scaling the second candidate predictive motion vectors based on POC.
- a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames is provided.
- 3 reference frames may be determined, and the second motion vector may be determined based on a distance between each of a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
- the third candidate motion vector motion vector may be determined as the second motion vector.
- the video decoding apparatus 700 may determine a motion vector of the current block by using the first motion vector and the second motion vector.
- FIG. 7 is a diagram showing the configuration of a video decoding apparatus according to an embodiment of the present disclosure.
- a video decoding apparatus 700 may include a receiving unit 710 and a decoding unit 720.
- the receiver 710 and the decoder 720 may be implemented with one or more processors.
- the receiver 710 and the decoder 720 may operate according to instructions stored in memory.
- FIG. 7 shows the receiver 710 and the decoder 720 individually, the receiver 710 and the decoder 720 may be implemented by a single processor.
- the receiver 710 and the decoder 720 may be implemented as a dedicated processor, or a combination of software and a general-purpose processor such as an application processor (AP), central processing unit (CPU), or graphic processing unit (GPU).
- AP application processor
- CPU central processing unit
- GPU graphic processing unit
- a dedicated processor may include a memory for implementing an embodiment of the present disclosure or a memory processing unit for using an external memory.
- the receiving unit 710 and the decoding unit 720 may be composed of a plurality of processors. In this case, it may be implemented with a combination of dedicated processors, or it may be implemented with a combination of software and a plurality of general-purpose processors such as APs, CPUs, or GPUs. Also, the processor may include a dedicated artificial intelligence processor. As another example, an AI-only processor may be configured as a separate chip from the processor.
- the receiving unit 710 obtains information on a first motion vector of a current block from a bitstream.
- information on the first motion vector of the current block may be determined through SATD (Sum of Transform Difference) or RDO (Rate Distortion Optimization) calculation at the encoding side and transmitted through the bitstream.
- SATD Sud of Transform Difference
- RDO Rate Distortion Optimization
- the decoder 720 determines a first motion vector based on information on the first motion vector.
- the decoder 720 determines a candidate list including a plurality of candidate prediction motion vectors for determining the second motion vector of the current block.
- the decoder 720 determines one of the plurality of candidate motion vectors as the second motion vector based on the distance between each of the plurality of candidate motion vectors and the first motion vector.
- the decoder 720 determines the motion vector of the current block using the first motion vector and the second motion vector.
- FIG. 8 is a flowchart of a video encoding method according to an embodiment of the present disclosure.
- the video encoding apparatus 900 may generate information on a first motion vector of the current block.
- motion vectors of the first reference block are included in the information. information can be determined.
- information on the motion vector of the first reference block is It includes an index indicating one of the motion vector prediction candidates for the reference block and a motion vector difference value.
- the first reference frame including the first reference block and the second reference frame including motion vector candidates of the second reference block are different, and views of the first reference frame and the second reference frame are currently If it is the same view based on the current frame including the block, information on the motion vector of the first reference block includes a reference index indicating the first reference frame, an index indicating one of motion vector prediction candidates for the first reference block, and motion Contains vector difference values.
- the first reference frame including the first reference block and the second reference frame including motion vector candidates of the second reference block are different, and views of the first reference frame and the second reference frame are currently If it is a different view based on the current frame including the block, the information on the motion vector of the first reference block indicates the direction of the first reference frame to which the first reference block belongs, that is, whether it is a past view or a future view based on the current frame. It includes a direction index, a reference index indicating the first reference frame, an index indicating one of motion vector prediction candidates for the first reference block, and a motion vector difference value.
- the video encoding apparatus 900 may determine a first motion vector based on information on the first motion vector.
- the video encoding apparatus 900 may determine a candidate list including a plurality of candidate prediction motion vectors for determining a second motion vector of the current block.
- the video encoding apparatus 900 may determine one of a plurality of candidate motion vectors as a second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector.
- the second motion vector when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that is the farthest away from 1 motion vector.
- a first reference frame of a first motion vector when a first reference frame of a first motion vector is the same as a second reference frame of the plurality of candidate motion vectors, an x component and a y component of each of the plurality of candidate motion vectors and the first reference frame 1
- the distance can be identified using the x and y components of the motion vector.
- the second motion vector when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to 1 motion vector.
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same.
- the distance is identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of each of the plurality of candidate predictive motion vectors, and the POC of the current block. It can be.
- POC Picture Order Count
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different.
- second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, and the POC of the first reference frame and each of the second candidate motion vector motion vectors are determined.
- the distance may be identified by scaling the second candidate predictive motion vectors based on the POC and the POC of the current block.
- the POC of the first reference frame, the POC of each of the second candidate motion vectors, and the current block The distance may be identified by scaling the second candidate predictive motion vectors based on POC.
- a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames is provided.
- 3 reference frames may be determined, and the second motion vector may be determined based on a distance between each of a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
- the third candidate motion vector motion vector may be determined as the second motion vector.
- the video encoding apparatus 900 may encode information about the first motion vector by determining the motion vector of the current block using the first motion vector and the second motion vector.
- information on the first motion vector of the current block may be determined and signaled through calculation of Sum of Transform Difference (SATD) or Rate Distortion Optimization (RDO) at the encoding side.
- SATD Sum of Transform Difference
- RDO Rate Distortion Optimization
- FIG. 9 is a diagram showing the configuration of a video encoding apparatus according to an embodiment of the present disclosure.
- a video encoding apparatus 900 may include a generator 910 and an encoder 920 .
- the generator 910 and the encoder 920 may be implemented with one or more processors.
- the generator 910 and the encoder 920 may operate according to instructions stored in memory.
- FIG. 9 shows the generator 910 and the encoder 920 separately, the generator 910 and the encoder 920 may be implemented by a single processor.
- the generator 910 and the encoder 920 may be implemented as a dedicated processor, or a combination of software and a general-purpose processor such as an application processor (AP), central processing unit (CPU), or graphic processing unit (GPU).
- AP application processor
- CPU central processing unit
- GPU graphic processing unit
- a dedicated processor may include a memory for implementing an embodiment of the present disclosure or a memory processing unit for using an external memory.
- the generating unit 910 and the encoding unit 920 may be composed of a plurality of processors. In this case, it may be implemented with a combination of dedicated processors, or it may be implemented with a combination of software and a plurality of general-purpose processors such as APs, CPUs, or GPUs. Also, the processor may include a dedicated artificial intelligence processor. As another example, an AI-only processor may be configured as a separate chip from the processor.
- the generation unit 910 generates information about a first motion vector of a current block from a bitstream.
- the encoder 920 determines a first motion vector based on information on the first motion vector.
- the encoder 920 determines a candidate list including a plurality of candidate prediction motion vectors for determining the second motion vector of the current block.
- the encoder 920 determines one of the plurality of candidate motion vectors as the second motion vector based on the distance between each of the plurality of candidate motion vectors and the first motion vector.
- the encoder 920 encodes information on the first motion vector by determining a motion vector of the current block using the first motion vector and the second motion vector.
- information on the first motion vector of the current block may be determined and signaled through calculation of Sum of Transform Difference (SATD) or Rate Distortion Optimization (RDO) at the encoding side.
- SATD Sum of Transform Difference
- RDO Rate Distortion Optimization
- a video decoding method includes obtaining information on a first motion vector of a current block from a bitstream; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block using the first motion vector and the second motion vector.
- a video decoding method performs motion compensation by determining a second motion vector based on a distance between a first motion vector and a plurality of candidate predicted motion vectors without signaling information on the second motion vector. Since this is performed only once, there is no need to load multiple reference blocks from external memory, which can have an advantage in terms of complexity.
- the second motion vector when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that is the farthest away from 1 motion vector.
- the x and y components of each of the plurality of candidate motion vectors and the The distance can be identified using the x and y components of the first motion vector.
- the second motion vector when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to 1 motion vector.
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same.
- the distance is identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of each of the plurality of candidate predictive motion vectors, and the POC of the current block. It can be.
- POC Picture Order Count
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different.
- second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, and the POC of the first reference frame and each of the second candidate motion vector motion vectors are determined.
- the distance may be identified by scaling the second candidate predictive motion vectors based on the POC and the POC of the current block.
- the POC of the first reference frame, the POC of each of the second candidate motion vectors, and the current block The distance may be identified by scaling the second candidate predictive motion vectors based on POC.
- a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames is provided.
- 3 reference frames may be determined, and the second motion vector may be determined based on a distance between each of a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
- the third candidate motion vector motion vector may be determined as the second motion vector.
- a video decoding method performs coding for a current block by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without signaling information on the second motion vector. Efficiency can be improved.
- a video decoding apparatus includes a memory for storing one or more instructions; and at least one processor operating according to the one or more instructions, wherein the at least one processor obtains information on a first motion vector of a current block from a bitstream, and provides information on the first motion vector. determine the first motion vector based on the current block, determine a candidate list including a plurality of candidate predicted motion vectors for determining the second motion vector of the current block, and determine each of the plurality of candidate predicted motion vectors and the first motion vector. Based on the distance between 1 motion vectors, one of the plurality of candidate motion vectors is determined as the second motion vector, and the motion vector of the current block is determined by using the first motion vector and the second motion vector. can decide
- a video decoding apparatus performs motion compensation by determining a second motion vector based on a distance between a first motion vector and a plurality of candidate predicted motion vectors without signaling information on the second motion vector. Since this is performed only once, there is no need to load multiple reference blocks from external memory, which can have an advantage in terms of complexity.
- the second motion vector when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that is the farthest away from 1 motion vector.
- the x and y components of each of the plurality of candidate motion vectors and the The distance can be identified using the x and y components of the first motion vector.
- the second motion vector when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to 1 motion vector.
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same.
- the distance is identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of each of the plurality of candidate predictive motion vectors, and the POC of the current block. It can be.
- POC Picture Order Count
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different.
- second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, and the POC of the first reference frame and each of the second candidate motion vector motion vectors are determined.
- the distance may be identified by scaling the second candidate predictive motion vectors based on the POC and the POC of the current block.
- the POC of the first reference frame, the POC of each of the second candidate motion vectors, and the current block The distance may be identified by scaling the second candidate predictive motion vectors based on POC.
- a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames is provided.
- 3 reference frames may be determined, and the second motion vector may be determined based on a distance between each of a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
- the third candidate motion vector motion vector may be determined as the second motion vector.
- a video decoding apparatus performs coding for a current block by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without signaling information on the second motion vector. Efficiency can be improved.
- a video encoding method includes generating information about a first motion vector of a current block; determining the first motion vector based on information on the first motion vector; determining a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block; determining one of the plurality of candidate motion vectors as the second motion vector based on a distance between each of the plurality of candidate motion vectors and the first motion vector; and determining a motion vector of the current block by using the first motion vector and the second motion vector, and encoding information on the first motion vector.
- a video encoding method performs decoding by determining a second motion vector based on distances between a first motion vector and a plurality of candidate predicted motion vectors without generating information on the second motion vector. Compression efficiency can be improved by reducing the size of information transmitted to the side.
- the second motion vector when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that is the farthest away from 1 motion vector.
- the x and y components of each of the plurality of candidate motion vectors and the The distance can be identified using the x and y components of the first motion vector.
- the second motion vector when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to 1 motion vector.
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same.
- the distance is identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of each of the plurality of candidate predictive motion vectors, and the POC of the current block. It can be.
- POC Picture Order Count
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different.
- second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, and the POC of the first reference frame and each of the second candidate motion vector motion vectors are determined.
- the distance may be identified by scaling the second candidate predictive motion vectors based on the POC and the POC of the current block.
- the POC of the first reference frame, the POC of each of the second candidate motion vectors, and the current block The distance may be identified by scaling the second candidate predictive motion vectors based on POC.
- a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames is provided.
- 3 reference frames may be determined, and the second motion vector may be determined based on a distance between each of a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
- the third candidate motion vector motion vector may be determined as the second motion vector.
- coding of a current block is performed by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without generating information on the second motion vector. Efficiency can be improved.
- a video encoding apparatus includes a memory for storing one or more instructions; and at least one processor that operates according to the one or more instructions, wherein the at least one processor generates information about a first motion vector of a current block, and based on the information about the first motion vector, the at least one processor A first motion vector is determined, and a candidate list including a plurality of candidate predictive motion vectors for determining a second motion vector of the current block is determined, and each of the plurality of candidate predictive motion vectors and the first motion vector are determined. Based on the distance between the candidate motion vectors, one of the plurality of candidate motion vectors is determined as the second motion vector, and a motion vector of the current block is determined using the first motion vector and the second motion vector. Information on the first motion vector may be encoded.
- a video encoding apparatus performs decoding by determining a second motion vector based on a distance between a first motion vector and a plurality of candidate predicted motion vectors without generating information on the second motion vector. Compression efficiency can be improved by reducing the size of information transmitted to the side.
- the second motion vector when the first reference frame of the first motion vector is the same as the second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first among the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector that is the farthest away from 1 motion vector.
- the x and y components of each of the plurality of candidate motion vectors and the The distance can be identified using the x and y components of the first motion vector.
- the second motion vector when a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predictive motion vectors, the second motion vector is the first one of the plurality of candidate predictive motion vectors. It may be a candidate prediction motion vector having the closest distance to 1 motion vector.
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are the same.
- the distance is identified by scaling the plurality of candidate predictive motion vectors based on the Picture Order Count (POC) of the first reference frame, the POC of each of the plurality of candidate predictive motion vectors, and the POC of the current block. It can be.
- POC Picture Order Count
- a first reference frame of the first motion vector is different from a second reference frame of the plurality of candidate predicted motion vectors, and a direction of the first reference frame and a direction of the second reference frame are different.
- second candidate predicted motion vectors having a direction different from that of the first motion vector among the plurality of candidate motion vectors are determined, and the POC of the first reference frame and each of the second candidate motion vector motion vectors are determined.
- the distance may be identified by scaling the second candidate predictive motion vectors based on the POC and the POC of the current block.
- the POC of the first reference frame, the POC of each of the second candidate motion vectors, and the current block The distance may be identified by scaling the second candidate predictive motion vectors based on POC.
- a distance closest to the first reference frame of the first motion vector among the plurality of second reference frames is provided.
- 3 reference frames may be determined, and the second motion vector may be determined based on a distance between each of a plurality of third candidate predicted motion vectors included in the third reference frame and the first motion vector.
- the third candidate motion vector motion vector may be determined as the second motion vector.
- a video encoding apparatus performs coding for a current block by determining a second motion vector according to a relationship between a first reference frame and a second reference frame without generating information on the second motion vector. Efficiency can be improved.
- the device-readable storage medium may be provided in the form of a non-transitory storage medium.
- 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as .
- a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
- the method according to various embodiments disclosed in this document may be provided by being included in a computer program product.
- Computer program products may be traded between sellers and buyers as commodities.
- a computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store or between two user devices (eg smartphones). It can be distributed (e.g., downloaded or uploaded) directly or online.
- a computer program product eg, a downloadable app
- a device-readable storage medium such as a memory of a manufacturer's server, an application store server, or a relay server. It can be temporarily stored or created temporarily.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하고, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고, 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 비디오 복호화 방법 및 장치를 제안한다.
Description
본 개시는 비디오 복호화 방법 및 장치, 및 비디오 부호화 방법 및 장치에 관한 것으로서, 구체적으로, 양방향 예측에 있어서, 2개의 움직임 벡터 정보 (제1 움직임 벡터 정보 및 제2 움직임 벡터 정보) 중 제1 움직임 벡터 정보에 대해서만 관련 정보를 전송하고, 제2 움직임 벡터 정보는 전송된 제1 움직임 벡터 정보를 이용하여 획득된 제1 움직임 벡터와 제2 움직임 벡터에 대한 움직임 벡터 후보 리스트를 이용하여 도출하는 비디오 복호화 및 부호화 방법 및 장치에 관한 것이다.
H.264 AVC(Advanced Video Coding), HEVC(High Efficiency Video Coding), 및 VVC(Versatile Video Coding)와 같은 코덱에서는, 영상을 블록으로 분할하고, 인터 예측(inter prediction) 또는 인트라 예측(intra prediction)을 통해 각각의 블록을 예측 부호화 및 예측 복호화한다.
인트라 예측은 영상 내의 공간적인 중복성을 제거하여 영상을 압축하는 방법이고, 인터 예측은 영상들 사이의 시간적인 중복성을 제거하여 영상을 압축하는 방법이다.
부호화 과정에서는, 인트라 예측 또는 인터 예측을 통해 예측 블록을 생성하고, 현재 블록으로부터 예측 블록을 감산하여 잔차 블록을 생성하고, 잔차 블록의 잔차 샘플들을 변환 및 양자화한다.
복호화 과정에서는, 잔차 블록의 양자화된 변환 계수들을 역양자화 및 역변환하여 잔차 블록의 잔차 샘플들을 생성하고, 인트라 예측 또는 인터 예측을 통해 생성된 예측 블록을 잔차 블록에 합하여 현재 블록을 복원한다. 복원된 현재 블록은 하나 이상의 필터링 알고리즘에 따라 처리된 후 출력될 수 있다.
H.264 AVC, HEVC, 및 VVC와 같은 코덱에서는 양방향 예측의 경우, 양방향에 대한 움직임 정보를 모두 전송 받아, 2개의 참조 블록을 찾기 위해 2번의 움직임 추정이 수행된다.
실시간으로 전송되는 동영상의 해상도가 4K, 8K UHD 또는 그 이상으로 커지는 추세이므로, 복잡도 측면에서 실시간 전송에 유리한 양방향 예측 방법이 요구될 수 있다.
일 실시예에 따른 비디오 복호화 방법은, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 비디오 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득할 수 있다. 적어도 하나의 프로세서는, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정할 수 있다. 적어도 하나의 프로세서는, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다. 적어도 하나의 프로세서는, 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정할 수 있다. 적어도 하나의 프로세서는, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정할 수 있다.
일 실시예에 따른 비디오 부호화 방법은, 현재 블록의 제1 움직임 벡터에 대한 정보를 생성하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화하는 단계를 포함할 수 있다.
일 실시예에 따른 AI에 기반한 비디오 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는 현재 블록의 제1 움직임 벡터에 대한 정보를 생성할 수 있다. 적어도 하나의 프로세서는 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정할 수 있다. 적어도 하나의 프로세서는 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다. 적어도 하나의 프로세서는 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정할 수 있다. 적어도 하나의 프로세서는 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화할 수 있다.
도 1은 영상의 부호화 및 복호화 과정을 도시하는 도면이다.
도 2는 영상으로부터 트리 구조에 따라 분할된 블록들을 도시하는 도면이다.
도 3a는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3b는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3c는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3d는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3e는 양방향 예측에서 참조 블록을 이용하여 현재 블록을 획득하는 방법을 설명하기 위한 도면이다.
도 4a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 현재 블록의 제1 참조 블록을 획득하는 방법을 설명하기 위한 도면이다.
도 4b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 5a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 5b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 비디오 복호화 방법의 순서도이다.
도 7은 본 개시의 일 실시예에 따른 비디오 복호화 장치의 구성을 도시하는 도면이다.
도 8은 본 개시의 일 실시예에 따른 비디오 부호화 방법의 순서도이다.
도 9는 본 개시의 일 실시예에 따른 비디오 부호화 장치의 구성을 도시하는 도면이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 개시에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 개시에서, '영상(image) 또는 픽처(picture)'는 정지영상(또는 프레임), 복수의 연속된 정지영상으로 구성된 동영상, 또는 비디오를 의미할 수 있다.
또한, 본 개시에서 '현재 블록'은 현재의 처리 대상인 블록을 의미한다. 현재 블록은 현재 영상으로부터 분할된 슬라이스, 타일, 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위일 수 있다.
또한, 본 개시에서, '샘플'은 영상 또는 블록 등의 데이터 내 샘플링 위치에 할당된 데이터로서 처리 대상이 되는 데이터를 의미한다. 예를 들어, 샘플은 2차원의 영상 내 픽셀을 포함할 수 있다.
일 실시예에 따른 영상 복호화 방법, 영상 복호화 장치, 영상 부호화 방법, 및 영상 부호화 장치에 대해 설명하기에 앞서, 도 1 및 도 2를 참조하여 영상의 부호화 및 복호화 과정에 대해 설명한다.
도 1은 영상의 부호화 및 복호화 과정을 도시하는 도면이다.
부호화 장치(110)는 영상에 대한 부호화를 통해 생성된 비트스트림을 복호화 장치(150)로 전송하고, 복호화 장치(150)는 비트스트림을 수신 및 복호화하여 영상을 복원한다
구체적으로, 부호화 장치(110)에서, 예측 부호화부(115)는 인터 예측 및 인트라 예측을 통해 예측 블록을 출력하고, 변환 및 양자화부(120)는 예측 블록과 현재 블록 사이의 잔차 블록의 잔차 샘플들을 변환 및 양자화하여 양자화된 변환 계수를 출력한다. 엔트로피 부호화부(125)는 양자화된 변환 계수를 부호화하여 비트스트림으로 출력한다.
양자화된 변환 계수는 역양자화 및 역변환부(130)을 거쳐 공간 영역의 잔차 샘플들을 포함하는 잔차 블록으로 복원된다. 예측 블록과 잔차 블록이 합해진 복원 블록은 디블로킹 필터링부(135) 및 루프 필터링부(140)를 거쳐 필터링된 블록으로 출력된다. 필터링된 블록을 포함하는 복원 영상은 예측 부호화부(115)에서 다음 입력 영상의 참조 영상으로 사용될 수 있다.
복호화 장치(150)로 수신된 비트스트림은 엔트로피 복호화부(155) 및 역양자화 및 역변환부(160)를 거쳐 공간 영역의 잔차 샘플들을 포함하는 잔차 블록으로 복원된다. 예측 복호화부(175)로부터 출력된 예측 블록과 잔차 블록이 조합되어 복원 블록이 생성되고, 복원 블록은 디블로킹 필터링부(165) 및 루프 필터링부(170)를 거쳐 필터링된 블록으로 출력된다. 필터링된 블록을 포함하는 복원 영상은 예측 복호화부(175)에서 다음 영상에 대한 참조 영상으로 이용될 수 있다.
부호화 장치(110)의 루프 필터링부(140)는 사용자 입력 또는 시스템 설정에 따라 입력된 필터 정보를 이용하여 루프 필터링을 수행한다. 루프 필터링부(140)에 의해 사용된 필터 정보는 엔트로피 부호화부(125)를 통해 복호화 장치(150)로 전송된다. 복호화 장치(150)의 루프 필터링부(170)는 엔트로피 복호화부(155)로부터 입력된 필터 정보에 기초하여 루프 필터링을 수행할 수 있다.
영상의 부호화 및 복호화 과정에서는 영상이 계층적으로 분할되고, 영상으로부터 분할된 블록에 대해 부호화 및 복호화가 수행된다. 영상으로부터 분할된 블록에 대해 도 2를 참조하여 설명한다.
도 2는 영상(200)으로부터 트리 구조에 따라 분할된 블록들을 도시하는 도면이다.
하나의 영상(200)은 하나 이상의 슬라이스(Slice) 혹은 하나 이상의 타일(Tile)로 분할될 수 있다. 하나의 슬라이스는 복수의 타일을 포함할 수 있다.
하나의 슬라이스 혹은 하나의 타일은 하나 이상의 최대 부호화 단위(Maximum Coding Unit; Maximum CU)의 시퀀스일 수 있다.
하나의 최대 부호화 단위는 하나 이상의 부호화 단위로 분할될 수 있다. 부호화 단위는 예측 모드를 결정하기 위한 기준 블록일 수 있다. 다시 말하면, 각각의 부호화 단위에 대해 인트라 예측 모드가 적용되는지, 인터 예측 모드가 적용되는지가 결정될 수 있다. 본 개시에서 최대 부호화 단위는 최대 부호화 블록으로 참조될 수 있고, 부호화 단위는 부호화 블록으로 참조될 수 있다.
부호화 단위의 크기는 최대 부호화 단위와 동일하거나, 최대 부호화 단위보다 작을 수 있다. 최대 부호화 단위는 최대 크기를 가지는 부호화 단위이므로, 부호화 단위로 참조될 수도 있다.
부호화 단위로부터 인트라 예측 또는 인터 예측을 위한 하나 이상의 예측 단위가 결정될 수 있다. 예측 단위의 크기는 부호화 단위와 동일하거나, 부호화 단위보다 작을 수 있다.
또한, 부호화 단위로부터 변환 및 양자화를 위한 하나 이상의 변환 단위가 결정될 수 있다. 변환 단위의 크기는 부호화 단위와 동일하거나, 부호화 단위보다 작을 수 있다. 변환 단위는 변환 및 양자화를 위한 기준 블록으로서, 부호화 단위의 잔차 샘플들이 부호화 단위 내의 변환 단위별로 변환 및 양자화될 수 있다.
본 개시에서 현재 블록은 영상(200)으로부터 분할된 슬라이스, 타일, 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위일 수 있다. 또한, 현재 블록의 하위 블록은 현재 블록으로부터 분할된 블록으로서, 예를 들어, 현재 블록이 최대 부호화 단위이면, 하위 블록은 부호화 단위, 예측 단위 또는 변환 단위일 수 있다. 또한, 현재 블록의 상위 블록은 상기 상위 블록의 일부로 상기 현재 블록을 포함하는 블록으로서, 예를 들어, 현재 블록이 최대 부호화 단위이면, 상위 블록은 픽처 시퀀스, 픽처, 슬라이스 또는 타일일 수 있다.
이하에서는, 도 3a 내지 도 9를 참조하여, 일 실시예에 따른 비디오 복호화 방법, 비디오 복호화 장치, 비디오 부호화 방법, 및 비디오 부호화 장치에 대해 설명한다.
도 3a는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3a를 참고하면, 양방향 예측에 따라, 제1 참조 프레임 (310) 내에서 2개의 참조 블록, 즉 제1 참조 블록(315) 및 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.
도 3b는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3b를 참고하면, 양방향 예측에 따라, 현재 프레임 (300)의 과거 시점의 제1 참조 프레임 (320) 내의 제1 참조 블록(315)과 현재 프레임 (300)의 미래 시점의 제2 참조 프레임(330) 내의 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.
도 3c는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3c를 참고하면, 양방향 예측에 따라, 현재 프레임 (300)의 과거 시점의 제1 참조 프레임 (340) 내의 제1 참조 블록(315)과 현재 프레임 (300)의 과거 시점의 제2 참조 프레임(350) 내의 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.
도 3d는 양방향 예측에서 참조 블록의 일 예를 설명하기 위한 도면이다.
도 3d를 참고하면, 양방향 예측에 따라, 현재 프레임 (300)의 미래 시점의 제1 참조 프레임 (360) 내의 제1 참조 블록(315)과 현재 프레임 (300)의 미래 시점의 제2 참조 프레임(370) 내의 제2 참조 블록(325)을 획득하고 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 현재 프레임(300) 내의 현재 블록(305)이 예측될 수 있다.
도 3e는 양방향 예측에서 참조 블록을 이용하여 현재 블록을 획득하는 방법을 설명하기 위한 도면이다.
도 3e를 참고하면, 도 3a 내지 도 3d에 따라 획득된 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 참조 이미지(335)가 획득되고, 참조 이미지(335)가 현재 블록(305)으로 결정될 수 있다.
도 3a 내지 도 3e에 따라, 제1 참조 블록(315) 및 제2 참조 블록(325)을 이용하여 참조 이미지(335)를 복호화 측에서 획득하기 위해서는, 제1 참조 블록(315) 및 제2 참조 블록(325)에 대한 정보가 전송되어야 한다. 참조 블록에 대한 정보는 참조 블록이 포함된 참조 프레임에 대한 정보(예를 들면, 참조 인덱스)와 현재 블록의 위치를 기준으로 하는 참조 블록의 위치 정보(예를 들면, 움직임 벡터)를 포함할 수 있다. 예를 들어, 움직임 벡터는 현재 블록의 좌상단 픽셀의 위치를 기준으로 x축 및 y축 별 변위(displacement)를 특정 분수 픽셀(fractional pixel) 또는 특정 정수 픽셀(interger pixel) 단위로 표현될 수 있다. 또한, 움직임 벡터 전송에 있어서, 주변 블록의 움직임 벡터 정보를 이용하여 주변 움직임 벡터 정보와 현재 움직임 벡터 정보의 차이인 움직임 벡터 차분값이 전송될 수 있다. 또한, 여러 개의 주변 블록의 정보를 하나를 선택하여 사용하는 경우에 사용되는 정보에 대한 움직임 벡터 예측 인덱스도 추가로 전송될 수 있다. 즉, 하나의 참조 블록을 획득하기 위해서는 참조 프레임 정보, 움직임 벡터 예측 인덱스, 움직임 벡터 차분값이 전송되어야 하고, 양방향 예측의 경우에는 2개의 참조 블록을 이용하므로, 참조 프레임 정보, 움직임 벡터 예측 인덱스, 움직임 벡터 차분값이 2개씩 필요하다. 이에 따라 2개의 참조 블록을 획득하기 위해 움직임 추정이 각 참조 블록에 대해서 수행되므로, 2번의 움직임 추정이 필요하여 복잡도 측면에서 실시간 저지연 (low-delay 또는 low latency) 동영상 전송이 요구되는 시스템과 같은 실시간 전송에는 적합하지 않을 수 있다.
실시간 전송을 위해 제2 참조 블록의 움직임 벡터 차분값이 전송되지 않는 방법이 고려될 수 있다. 이러한 방법은 제1 참조 블록에 대해서만 제1 참조 블록에 대한 정보가 전송되어 움직임 추정이 수행되고, 제2 참조 블록에 대해서는 움직임 추정이 수행되지 않는다. 따라서, 압축 효율 측면에서는 다소 손실이 있을 수 있지만, 복잡도 측면에서 실시간 전송의 응용에 유리하다.
구체적으로, 양방향 예측을 수행하는 블록에 대하여, 제1 참조 블록에 대한 움직임 벡터 차분값을 전송하고, 제2 참조 블록에 대한 움직임 벡터 차분값은 전송하지 않고, 제2 참조 블록에 대한 움직임 벡터 예측 후보를 이용하여 제2 참조 블록의 움직임 벡터가 결정될 수 있다. 이 경우에, 제2 참조 블록에 대해 선택 가능한 움직임 벡터 예측 후보의 개수가 복수 개이면, 복수 개의 움직임 벡터 예측 후보들 중 하나를 선택하기 위해 플래그나 인덱스가 시그널링되어야 하므로, 부호화 측에서 추가적으로 움직임 벡터 예측 후보들 중 하나를 선택하기 위한 결정 과정이 수행되어야 한다. 일반적으로, 이러한 결정 과정을 위해서, 선택 가능한 움직임 벡터 예측 후보 각각에 대해 움직임 벡터 예측 후보 각각이 참조하는 참조 픽처로부터 해당 위치의 참조 블록을 꺼내와(fetch) 제1 참조 블록의 움직임 벡터를 통해 획득된 제1 참조 블록과 상기 참조 블록을 평균내어 현재 블록의 예측 블록을 생성한 뒤 SAD(sum of absolute differences)와 같은 코스트 함수를 사용해서 코스트를 계산한 뒤, 코스트가 작은 것이 선택된다. 이러한 경우에는 움직임 벡터 예측 후보들의 개수만큼 외부 메모리에 존재하는 참조 픽처로부터 데이터를 꺼내와야(fetch) 하므로, 필요로 하는 외부 메모리 대역폭이 커지게 되어 실시간 전송에는 바람직하지 않다.
이를 해결하기 위한 방법으로, 선택할 수 있는 제2 참조 블록에 대한 움직임 벡터 예측 후보들 중에서 특정한 인덱스 위치의 값이 가리키는 움직임 벡터 예측 후보가 무조건 전송될 수 있도록 설정될 수 있다. 구체적으로, 첫번째 인덱스가 가리키는 움직임 벡터 예측 후보가 항상 전송되도록 설정될 수 있다. 이에 따라, 부호화 측에서 제2 참조 블록의 움직임 벡터 예측 후보의 플래그를 항상 0으로 설정하여 전송될 수 있다. 이러한 경우, 움직임 벡터 예측 후보 결정을 위해 여러 개의 참조 블록을 꺼내올(fetch) 필요가 없어 복잡도 측면에서 장점을 가지나, 압축 효율 측면에서 성능이 떨어질 수 있다.
이를 해결하기 위해, 본 개시의 일 실시예에 따라, 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들과의 관계를 고려하여 제2 참조 블록의 움직임 벡터 예측 후보들 중 하나가 제2 참조 블록으로 선택될 수 있다. 이 경우, 외부 메모리로부터 여러 개의 참조 블록을 꺼내올(fetch) 필요가 없어 복잡도 측면에서 장점을 가지고, 압축 효율 측면에서는 단순하게 특정 인덱스를 이용하는 것과 비교하면 성능이 향상된다. 즉, 화질 측면에서 손실이 최소화되면서 복잡도 측면에서 효율적이다.
도 4a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 현재 블록의 제1 참조 블록을 획득하는 방법을 설명하기 위한 도면이다.
도 4a를 참고하면, 현재 프레임(300)의 현재 블록(305)의 제1 참조 프레임(310) 내의 제1 참조 블록(315)을 찾기 위해, 제1 참조 블록에 대한 정보를 이용하여 움직임 검색 영역(400) 내에서의 움직임 검색(motion search)이 수행되고, 움직임 보상을 수행하여 제1 참조 블록(315)이 획득될 수 있다.
도 4b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 4b를 참고하면, 도 4a에서와 같이 움직임 보상에 따라 제1 참조 블록(315)이 먼저 획득된다. 제1 참조 블록(315)과 제2 참조 블록의 동일한 프레임인 제1 참조 프레임 (310)에 포함되는 경우, 현재 프레임(300)의 현재 블록(305)의 주변 블록들로부터 제1 참조 프레임 (310) 내의 제2 참조 블록의 후보 위치들의 제1 후보 블록(405) 및 제2 후보 블록 (410)이 획득된다. 제2 참조 블록의 제1 후보 블록(405)과 제2 후보 블록(410)들 각각과 제1 참조 블록(315) 사이의 거리를 식별하여 상기 제1 참조 블록(315)로부터 가장 거리가 먼 후보 블록인 제1 후보 블록(405)이 제2 참조 블록으로 결정될 수 있다.
제2 참조 블록의 제1 후보 블록(405)과 제2 후보 블록(410)들 각각과 제1 참조 블록(315) 사이의 거리는 유클리드(Euclidean) 거리 측정 방식 또는 맨하튼(Manhattan) 거리 측정 방식 등을 이용하여 식별될 수 있다.
구체적으로, 제1 참조 블록의 움직임 벡터가 (x0, y0)이고, 제2 참조 블록의 움직임 벡터가 (x1, y1)이고, 제2 참조 블록(MV1)의 움직임 벡터 예측 후보가 2개이고, 제2 참조 블록의 제1 후보(MVP_1_1)가 (x11, y11)이고, 제2 참조 블록의 제2 후보(MVP_1_2)가 (x12, y12)이면, 각 후보와 제1 참조 블록의 맨하튼 거리를 측정한 값을 비교하여 아래 수학식 1과 같은 슈도 코드(pseudo code)에 따라 제2 참조 블록이 결정될 수 있다.
[수학식 1]
동일한 프레임 내에서 제2 참조 블록을 선택할 때, 제1 참조 블록과 비교하여 가까운 블록을 선택할 경우 제1 참조 블록 만을 이용하는 것과 비슷한 형태의 이미지가 생성되지만, 제1 참조 블록으로부터 먼 블록을 선택할 경우 새로운 형태의 참조 이미지가 생성될 수 잇으므로, 참조 이미지를 다양하게 이용하여 코딩 효율이 향상될 수 있다.
즉, 복호화 측은 제1 참조 블록에 대한 움직임 정보(움직임 벡터 차분값, 움직임 벡터 예측 후보 인덱스)을 전송받고, 전송된 움직임 정보를 이용하여 제1 참조 블록의 움직임 벡터를 결정하고, 현재 블록의 주변 블록을 이용하여 제2 참조 블록에 대한 후보 블록들을 포함하는 후보 리스트를 결정하고, 제2 참조 블록에 대한 후보 블록들 중 제1 참조 블록의 위치로부터 가장 거리가 먼 블록을 제2 참조 블록으로 결정하여 이용한다. 이에 따라 제1 참조 블록에 대한 움직임 정보만 전송되고, 제2 참조 블록에 대한 움직임 정보에 대한 전송 없이 전송된 제1 참조 블록에 대한 움직임 정보를 이용하여 제2 참조 블록에 대한 움직임 벡터를 결정함으로써, 전송 정보에 대한 크기가 줄고 효율적인 참조 블록이 선택되어 압축 효율이 향상될 수 있다.
구체적으로, 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 획득한다. 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다. 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 이용하여 제1 참조 블록의 움직임 벡터를 획득하고, 제2 참조 블록의 움직임 벡터 예측 후보들을 포함하는 후보 리스트를 결정한다. 복호화 측은 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 거리를 식별한다. 거리는 제1 참조 블록의 움직임 벡터가 (x0, y0)이고 움직임 벡터 예측 후보의 움직임 벡터가 (x1, y1)라 하면, |x0 - x1| + |y0 - y1|으로 측정된다. 측정된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 먼 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정된다.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 거리 중 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수도 있다.
또한, 제1 참조 블록 (315) 대신에 현재 블록(305)과 제2 참조 블록의 제1 후보 블록(405)과 제2 후보 블록(410)들 각각의 거리를 식별하여 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되거나 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수도 있다.
또한, 제1 참조 블록 (315)과 현재 블록(305)의 거리를 기준으로, 제1 참조 블록 (315)과 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되거나 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수도 있다. 구체적으로, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 미리 결정된 크기 K이하인 경우에는 제1 참조 블록 (315)과 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되고, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 K보다 큰 경우에는 제1 참조 블록 (315)과 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다. 또한, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 미리 결정된 크기 K보다 작은 경우에는 제1 참조 블록 (315)과 가장 거리가 먼 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정되고, 제1 참조 블록 (315)과 현재 블록(305)의 거리가 K이상인 경우에는 제1 참조 블록 (315)과 가장 거리가 가까운 후보 블록의 움직임 벡터 예측 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다. 이 경우에도 외부 메모리로부터 여러 개의 참조 블록을 불러올 필요가 없기 때문에, 복잡도 측면에서 장점을 가지고 압축 효율 측면에서는 단순히 특정 인덱스를 사용하는 것에 비해 성능이 향상될 수 있다.
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보들은 2개 이상일 수 있다.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터를 위한 움직임 벡터 후보가 2개인 경우에, 제2 참조 블록의 움직임 벡터를 위한 움직임 벡터 후보는 2개 이상일 수 있다.
일 실시예에 따라, 특정 픽처 또는 특정 블록에서는 제2 참조 블록에 대한 움직임 벡터 차분값이 전송되는 경우, 제2 참조 블록의 움직임 벡터 후보들에 대해, 인덱스나 플래그가 시그널링되도록 구성되거나, 시그널링 없이 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 거리에 기초하여 제2 참조 블록의 움직임 벡터가 결정되도록 구성될 수 있다.
도 5a는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 5a를 참고하면, 움직임 보상에 따라 제1 참조 블록(315)이 먼저 획득된다. 제1 참조 블록(315)은 제1 참조 프레임(320)에 포함되고 제2 참조 블록은 제1 참조 프레임(320)과 상이한 시점의 제2 참조 프레임(330)에 포함되는 경우, 현재 프레임(300)의 현재 블록(305)의 주변 블록들로부터 제2 참조 프레임(330) 내의 제2 참조 블록의 후보 위치들의 제1 후보 블록(505) 및 제2 후보 블록 (510)이 획득된다. 제2 참조 블록의 제1 후보 블록(505)과 제2 후보 블록(510)들 각각과 제1 참조 블록(315) 사이의 거리를 식별하여 제1 후보 블록(505)과 제2 후보 블록(510)들 중 가장 거리가 가까운 후보 블록이 제2 참조 블록으로 결정될 수 있다.
양 방향 예측에 있어서, 2개의 참조 블록이 각각 서로 다른 참조 프레임에 있는 경우, 2개의 참조 블록 사이의 거리가 가까운 경우에 상기 참조 블록들이 동일한 오브젝트를 가리킬 확률이 높으므로, 움직임 벡터에 대한 정보를 이용하여 획득된 제1 참조 블록과 제2 참조 블록의 후보 블록들 각각 사이의 거리에 기초하여, 거리가 가까운 후보 블록이 제2 참조 블록으로 결정됨으로써, 코딩 효율이 향상될 수 있다.
구체적으로, 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 획득한다. 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임의 방향, 즉 현재 프레임 기준으로 과거 시점인지 미래 시점인지를 나타내는 방향 인덱스, 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다. 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 이용하여 제1 참조 블록의 움직임 벡터를 획득한다. 복호화 측은 방향 인덱스를 이용하여 제2 참조 블록의 움직임 벡터 예측 후보들 중 제1 참조 블록의 움직임 벡터와 다른 방향을 가지는 제2 참조 블록의 움직임 벡터 예측 후보들을 포함하는 후보 리스트를 결정한다. 복호화 측은 참조 인덱스를 이용하여 참조 프레임의 picture order count (POC)를 획득한다. POC는 픽처의 디스플레이 순서에 따라 넘버링한 값을 의미한다. 복호화 측은 POC를 이용하여 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들 중 제1 참조 블록과 다른 방향을 가지는 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 스케일링된 거리를 식별한다. 스케일링된 거리는 제1 참조 블록의 움직임 벡터와 POC가 (x0, y0, POC0)이고 움직임 벡터 예측 후보의 움직임 벡터와 POC가 (x1, y1, POC1)라 하면, 수학식 2에 따라 측정된다.
[수학식 2]
측정된 거리(dist), 즉 스케일링된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 가까운 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정된다.
일 실시예에 따라, 스케일링된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 먼 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다.
일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 먼 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 먼 움직임 벡터가 이용될 수 있다.
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다.
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 가까운 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 가까운 움직임 벡터가 이용될 수 있다.
도 5b는 본 개시의 일 실시예에 따른 움직임 추정을 통해 획득된 제1 참조 블록과 현재 블록의 후보 블록들을 이용하여 제2 참조 블록을 도출하는 방법을 설명하기 위한 도면이다.
도 5b를 참고하면, 움직임 보상에 따라 제1 참조 블록(315)이 먼저 획득된다. 제1 참조 블록(315)은 제1 참조 프레임(340)에 포함되고 제2 참조 블록은 제1 참조 프레임(340)과 동일한 시점의 제2 참조 프레임(350)에 포함되는 경우, 현재 프레임(300)의 현재 블록(305)의 주변 블록들로부터 제2 참조 프레임(350) 내의 제2 참조 블록의 후보 위치들(515, 520)이 획득된다. 제2 참조 블록의 제1 후보 블록(515)과 제2 후보 블록(520)들 각각과 제1 참조 블록(315) 사이의 거리를 식별하여 제1 후보 블록(515)과 제2 후보 블록(520)들 중 가장 거리가 가까운 후보 블록이 제2 참조 블록으로 결정될 수 있다.
구체적으로, 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 획득한다. 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다. 복호화 측은 제1 참조 블록의 움직임 벡터에 대한 정보를 이용하여 제1 참조 블록의 움직임 벡터를 획득하고, 제2 참조 블록의 움직임 벡터 예측 후보들을 포함하는 후보 리스트를 결정한다. 복호화 측은 참조 인덱스를 이용하여 참조 프레임의 picture order count (POC)를 획득한다. 복호화 측은 POC를 이용하여 제1 참조 블록의 움직임 벡터와 제2 참조 블록의 움직임 벡터 예측 후보들의 움직임 벡터 각각 사이의 스케일링된 거리를 식별한다. 스케일링된 거리는 제1 참조 블록의 움직임 벡터와 POC가 (x0, y0, POC0)이고 움직임 벡터 예측 후보의 움직임 벡터와 POC가 (x1, y1, POC1)라 하면, 수학식 3에 따라 측정된다.
[수학식 3]
측정된 거리(dist), 즉 스케일링된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 가까운 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정된다.
일 실시예에 따라, 스케일링된 거리를 기준으로 제1 참조 블록의 움직임 벡터로부터 가장 먼 거리의 움직임 벡터 예측 후보의 움직임 벡터가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.
일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다.
일 실시예에 따라, POC0를 기준으로 먼 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 먼 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 먼 움직임 벡터가 이용될 수 있다.
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 하나이면, 해당 움직임 벡터가 그대로 이용될 수 있다.
일 실시예에 따라, POC0를 기준으로 가까운 POC를 가지는 움직임 벡터가 복수 개이면, 복수개의 POC0를 기준으로 가까운 POC를 가지는 움직임 벡터 후보들 중 제1 참조 블록의 움직임 벡터와의 거리가 가장 가까운 움직임 벡터가 이용될 수 있다.
일 실시예에 따라, 참조 픽처 또는 참조 프레임이 복수 개인 경우, 제1 참조 블록의 움직임 벡터를 기준으로 제1 참조 블록이 속한 제1 참조 픽처와 현재 픽처 사이의 거리와 현재 픽처와 제2 참조 블록의 움직임 벡터 후보가 속한 제2 참조 픽처 사이의 거리를 기초로 상기 제2 참조 블록의 상기 움직임 벡터 후보를 스케일링하여 제1 참조 블록과 제2 참조 블록의 움직임 벡터 후보 사이의 거리를 식별함으로써 제2 참조 블록의 후보 블록이 획득될 수 있다.
구체적으로, 아래 수학식 4의 코스트 함수 f(N)에 따라 거리가 식별될 수 있다.
[수학식 4]
POCc는 현재 블록의 속한 현재 픽처의 POC이고, 제1 참조 블록의 움직임 벡터를 MvL0라 하면 MvL0[0]는 제1 참조 블록의 움직임 벡터의 x성분이고, MvL0[1]는 제1 참조 블록의 움직임 벡터의 y성분이고, POCL0는 제1 참조 블록이 속한 제1 참조 픽처의 POC이고, 제2 참조 블록의 움직임 벡터 후보를 MvL1[N]이라 하면, MvL1[N][0]는 제2 참조 블록의 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록의 움직임 벡터 후보의 y성분이고, POCL1은 제2 참조 블록의 움직임 벡터 후보가 속한 제2 참조 픽처의 POC이고, N은 특정 움직임 벡터 예측 후보를 의미하는 인덱스로 1개 이상 M개 이하이다.
상기 수학식 4의 코스트 함수 f(N)를 이용하여 아래 수학식 5에 따라 코스트가 가장 큰 최종 후보 NF가 결정되고, 최종 후보 NF가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.
[수학식 5]
일 실시예에 따라, 상기 수학식 4의 코스트 함수 f(N)를 이용하여 수학식 5와 다르게 코스트가 가장 작은 최종 후보가 결정되고, 최종 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.
일 실시예에 따라, 참조 픽처가 1개인 경우에는 POC를 비교하는 항이 제거되어 아래 수학식 6과 같이 표현될 수 있다.
[수학식 6]
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보가 가리키는 제2 참조 픽처가 제1 참조 블록의 움직임 벡터가 가리키는 제1 참조 픽처로부터 거리가 가장 먼 순서로 후보가 선택될 수 있다. 또한, 거리가 가장 먼 제2 참조 픽처에 포함된 움직임 벡터 후보가 1개인 경우에는 해당 후보가 제2 참조 블록의 움직임 벡터로 선택될 수 있다.
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보가 가리키는 제2 참조 픽처가 제1 참조 블록의 움직임 벡터가 가리키는 제1 참조 픽처로부터 거리가 가장 가까운 순서로 후보가 선택될 수 있다. 또한, 거리가 가장 가까운 제2 참조 픽처에 포함된 움직임 벡터 후보가 1개인 경우에는 해당 후보가 제2 참조 블록의 움직임 벡터로 선택될 수 있다.
일 실시예에 따라, 제2 참조 블록의 움직임 벡터 후보가 가리키는 제2 참조 픽처가 제1 참조 블록의 움직임 벡터가 가리키는 제1 참조 픽처로부터 거리가 가장 먼 제2 참조 픽처에 포함된 움직임 벡터 후보가 복수 개이면, 수학식 7에 따라 거리가 식별될 수 있다.
[수학식 7]
POCc는 현재 블록의 속한 현재 픽처의 POC이고, 제1 참조 블록의 움직임 벡터를 MvL0라 하면 MvL0[0]는 제1 참조 블록의 움직임 벡터의 x성분이고, MvL0[1]는 제1 참조 블록의 움직임 벡터의 y성분이고, POCL0는 제1 참조 블록이 속한 제1 참조 픽처의 POC이고, 제2 참조 블록의 움직임 벡터 후보를 MvL1[N]이라 하면, MvL1[N][0]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 먼 제2 참조 픽처에 속한 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 먼 제2 참조 픽처에 속한 움직임 벡터 후보의 y성분이고, POCL1은 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 먼 제2 참조 픽처의 POC이고, N은 특정 움직임 벡터 예측 후보를 의미하는 인덱스로 2개 이상 M개 이하이다.
상기 수학식 7의 코스트 함수 f(N)를 이용하여 아래 수학식 8에 따라 코스트가 가장 큰 최종 후보 NF가 결정되고, 최종 후보 NF가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.
[수학식 8]
일 실시예에 따라, 상기 수학식 7에서 MvL1[N][0]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 가까운 제2 참조 픽처에 속한 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 가까운 제2 참조 픽처에 속한 움직임 벡터 후보의 y성분이고, POCL1은 제2 참조 블록이 속한 참조 픽처들 중 제1 참조 픽처로부터 가장 거리가 가까운 제2 참조 픽처의 POC일 수 있다. 이에 따라, 상기 수학식 7의 코스트 함수 f(N)를 이용하여 수학식 8과 다르게 코스트가 가장 작은 최종 후보가 결정되고, 최종 후보가 제2 참조 블록의 움직임 벡터로 결정될 수 있다.
일 실시예에 따라, 아래 수학식 9와 같이, 제1 참조 블록의 움직임 벡터에 대해서 스케일링하여 거리가 식별될 수 있다. 이 경우, 제1 참조 블록의 움직임 벡터에 대해서 1번만 스케일링을 수행하면 되는 장점이 있다.
[수학식 9]
일 실시예에 따라, 상기 수학식 1의 맨하탄 거리 측정 방식 대신에 아래 수학식 10과 같이 유클리드 거리 측정 방식이 이용될 수 있다.
[수학식 10]
여기서, 제1 참조 블록의 움직임 벡터를 MvL0라 하면 MvL0[0]는 제1 참조 블록의 움직임 벡터의 x성분이고, MvL0[1]는 제1 참조 블록의 움직임 벡터의 y성분이고, 제2 참조 블록의 움직임 벡터 후보를 MvL1[N]이라 하면, MvL1[N][0]는 제2 참조 블록의 움직임 벡터 후보의 x성분이고, MvL1[N][1]는 제2 참조 블록의 움직임 벡터 후보의 y성분이다.
도 6은 본 개시의 일 실시예에 따른 비디오 복호화 방법의 순서도이다.
S610에서, 비디오 복호화 장치(700)는 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득할 수 있다.
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 비트스트림을 통해 전달된 것일 수 있다.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보에 포함된 정보에 따라 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임 사이의 관계가 판단될 수 있다.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함하면, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 동일하다.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함하면, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점은 현재 블록이 포함된 현재 프레임을 기준으로 동일한 시점이다.
일 실시예에 따라, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임의 방향, 즉 현재 프레임 기준으로 과거 시점인지 미래 시점인지를 나타내는 방향 인덱스, 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함하면, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점은 현재 블록이 포함된 현재 프레임을 기준으로 상이한 시점이다.
S630에서, 비디오 복호화 장치(700)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정할 수 있다.
S650에서, 비디오 복호화 장치(700)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다.
S670에서, 비디오 복호화 장치(700)는 복수의 후보 예측 움직임 벡터들 각각과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 하나를 제2 움직임 벡터로 결정할 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들 각각의 x 성분 및 y 성분과 상기 제1 움직임 벡터의 x 성분 및 y 성분을 이용하여 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.
S690에서, 비디오 복호화 장치(700)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정할 수 있다.
도 7은 본 개시의 일 실시예에 따른 비디오 복호화 장치의 구성을 도시하는 도면이다.
도 7을 참고하면, 비디오 복호화 장치(700)는 수신부(710) 및 복호화부(720)를 포함할 수 있다.
수신부(710) 및 복호화부(720)는 하나 이상의 프로세서로 구현될 수 있다. 수신부(710) 및 복호화부(720)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 7은 수신부(710) 및 복호화부(720)를 개별적으로 도시하고 있으나, 수신부(710) 및 복호화부(720)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 수신부(710) 및 복호화부(720)는 전용 프로세서로 구현될 수도 있고, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
수신부(710) 및 복호화부(720)는 복수의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현될 수도 있고, AP, CPU, 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
수신부(710)는 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득한다.
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 비트스트림을 통해 전달된 것일 수 있다
복호화부(720)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정한다.
복호화부(720)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정한다.
복호화부(720)는 복수의 후보 예측 움직임 벡터들 각각과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 하나를 제2 움직임 벡터로 결정한다.
복호화부(720)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정한다.
도 8은 본 개시의 일 실시예에 따른 비디오 부호화 방법의 순서도이다.
S810에서, 비디오 부호화 장치(900)는 현재 블록의 제1 움직임 벡터에 대한 정보를 생성할 수 있다.
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임 사이의 관계에 따라 제1 참조 블록의 움직임 벡터에 대한 정보에 포함되는 정보가 결정될 수 있다.
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 동일하면, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다.
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점이 현재 블록이 포함된 현재 프레임을 기준으로 동일한 시점이면, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다.
일 실시예에 따라, 제1 참조 블록이 포함된 제1 참조 프레임과 제2 참조 블록의 움직임 벡터 후보들이 포함된 제2 참조 프레임이 상이하고, 제1 참조 프레임과 제2 참조 프레임의 시점이 현재 블록이 포함된 현재 프레임을 기준으로 상이한 시점이면, 제1 참조 블록의 움직임 벡터에 대한 정보는 제1 참조 블록이 속한 제1 참조 프레임의 방향, 즉 현재 프레임 기준으로 과거 시점인지 미래 시점인지를 나타내는 방향 인덱스, 제1 참조 프레임을 나타내는 참조 인덱스, 제1 참조 블록에 대한 움직임 벡터 예측 후보들 중 하나를 나타내는 인덱스 및 움직임 벡터 차분값을 포함한다.
S830에서, 비디오 부호화 장치(900)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정할 수 있다.
S850에서, 비디오 부호화 장치(900)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정할 수 있다.
S870에서, 비디오 부호화 장치(900)는 복수의 후보 예측 움직임 벡터들 각각과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 하나를 제2 움직임 벡터로 결정할 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들 각각의 x 성분 및 y 성분과 상기 제1 움직임 벡터의 x 성분 및 y 성분을 이용하여 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.
S890에서, 비디오 부호화 장치(900)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정함으로써 제1 움직임 벡터에 대한 정보를 부호화할 수 있다.
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 시그널링될 수 있다.
도 9는 본 개시의 일 실시예에 따른 비디오 부호화 장치의 구성을 도시하는 도면이다.
도 9를 참고하면, 비디오 부호화 장치(900)는 생성부(910) 및 부호화부(920)를 포함할 수 있다.
생성부(910) 및 부호화부(920)는 하나 이상의 프로세서로 구현될 수 있다. 생성부(910) 및 부호화부(920)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 9는 생성부(910) 및 부호화부(920)를 개별적으로 도시하고 있으나, 생성부(910) 및 부호화부(920)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 생성부(910) 및 부호화부(920)는 전용 프로세서로 구현될 수도 있고, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
생성부(910) 및 부호화부(920)는 복수의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현될 수도 있고, AP, CPU, 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
생성부(910)는 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 생성한다.
부호화부(920)는 제1 움직임 벡터에 대한 정보에 기초하여 제1 움직임 벡터를 결정한다.
부호화부(920)는 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정한다.
부호화부(920)는 복수의 후보 예측 움직임 벡터들 각각과 제1 움직임 벡터 사이의 거리를 기초로, 복수의 후보 예측 움직임 벡터들 중 하나를 제2 움직임 벡터로 결정한다.
부호화부(920)는 제1 움직임 벡터 및 제2 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정함으로써 제1 움직임 벡터에 대한 정보를 부호화한다.
일 실시예에 따라, 현재 블록의 제1 움직임 벡터에 대한 정보는 부호화 측에서 SATD(Sum of Transform Difference) 또는 RDO (Rate Distortion Optimization) 계산을 통해 결정되어 시그널링될 수 있다.
일 실시예에 따른 비디오 복호화 방법은, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 비디오 복호화 방법은 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 움직임 보상이 1번만 수행되어 외부 메모리로부터 여러 참조 블록을 불러올 필요가 없어 복잡도 측면에서 장점을 가질 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들 각각의 x 성분 및 y 성분과 상기 제1 움직임 벡터의 x 성분 및 y 성분을 이용하여 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.
본 개시의 일 실시예에 따른 비디오 복호화 방법은, 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.
일 실시예에 따른 비디오 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하고, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고, 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정할 수 있다.
본 개시의 일 실시예에 따른 비디오 복호화 장치는 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 움직임 보상이 1번만 수행되어 외부 메모리로부터 여러 참조 블록을 불러올 필요가 없어 복잡도 측면에서 장점을 가질 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들 각각의 x 성분 및 y 성분과 상기 제1 움직임 벡터의 x 성분 및 y 성분을 이용하여 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.
본 개시의 일 실시예에 따른 비디오 복호화 장치는, 제2 움직임 벡터에 대한 정보에 대한 시그널링 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.
일 실시예에 따른 비디오 부호화 방법은, 현재 블록의 제1 움직임 벡터에 대한 정보를 생성하는 단계; 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하는 단계; 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하는 단계; 및 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 비디오 부호화 방법은 제2 움직임 벡터에 대한 정보를 생성하지 않고, 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 복호화 측에 전송되는 정보의 크기를 줄여 압축 효율이 향상될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들 각각의 x 성분 및 y 성분과 상기 제1 움직임 벡터의 x 성분 및 y 성분을 이용하여 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.
본 개시의 일 실시예에 따른 비디오 부호화 방법은, 제2 움직임 벡터에 대한 정보에 대한 생성 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.
일 실시예에 따른 비디오 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 현재 블록의 제1 움직임 벡터에 대한 정보를 생성하고, 상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고, 상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고, 상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화할 수 있다.
본 개시의 일 실시예에 따른 비디오 부호화 장치는 제2 움직임 벡터에 대한 정보를 생성하지 않고, 제1 움직임 벡터와 복수의 후보 예측 움직임 벡터들 사이의 거리에 기초하여 제2 움직임 벡터를 결정함으로써 복호화 측에 전송되는 정보의 크기를 줄여 압축 효율이 향상될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우, 상기 복수의 후보 예측 움직임 벡터들 각각의 x 성분 및 y 성분과 상기 제1 움직임 벡터의 x 성분 및 y 성분을 이용하여 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우, 상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터일 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우, 상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우, 상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정될 수 있다.
일 실시예에 따라, 상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우, 상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고, 상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우, 상기 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정될 수 있다.
본 개시의 일 실시예에 따른 비디오 부호화 장치는, 제2 움직임 벡터에 대한 정보에 대한 생성 없이 제1 참조 프레임과 제2 참조 프레임 사이의 관계에 따라 제2 움직임 벡터를 결정함으로써 현재 블록에 대한 코딩 효율이 향상될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
Claims (15)
- 비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득(S610)하는 단계;상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정(S630)하는 단계;상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정(S650)하는 단계;상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정(S670)하는 단계; 및상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정(S690)하는 단계를 포함하는, 비디오 복호화 방법.
- 제1항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터인, 비디오 복호화 방법.
- 제1항 또는 제2항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,상기 복수의 후보 예측 움직임 벡터들 각각의 x 성분 및 y 성분과 상기 제1 움직임 벡터의 x 성분 및 y 성분을 이용하여 상기 거리가 식별되는, 비디오 복호화 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우,상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터인, 비디오 복호화 방법.
- 제1항 내지 제4항 중 어느 한 항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 동일한 경우,상기 제1 참조 프레임의 Picture Order Count (POC), 상기 복수의 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 복수의 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별되는, 비디오 복호화 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이하고, 상기 제1 참조 프레임의 방향과 상기 제2 참조 프레임의 방향이 상이한 경우,상기 복수의 후보 예측 움직임 벡터들 중 제1 움직임 벡터의 방향과 상이한 방향을 가지는 제2 후보 예측 움직임 벡터들이 결정되고,상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별되는, 비디오 복호화 방법.
- 제1항 내지 제6항 중 어느 한 항에 있어서,상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우,상기 제1 참조 프레임의 POC, 상기 제2 후보 예측 움직임 벡터들 각각의 POC, 및 상기 현재 블록의 POC에 기초하여 상기 제2 후보 예측 움직임 벡터들을 스케일링함으로써 상기 거리가 식별되는, 비디오 복호화 방법.
- 제1항 내지 제7항 중 어느 한 항에 있어서,상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우,상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고,상기 제3 참조 프레임에 포함된 복수개의 제3 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 제2 움직임 벡터가 결정되는, 비디오 복호화 방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서,상기 복수의 후보 예측 움직임 벡터들이 복수 개의 제2 참조 프레임에 대응하는 경우,상기 복수 개의 제2 참조 프레임들 중 상기 제1 움직임 벡터의 제1 참조 프레임으로부터 가장 거리가 가까운 제3 참조 프레임이 결정되고,상기 제3 참조 프레임에 포함된 제3 후보 예측 움직임 벡터가 1개인 경우,상기 1개의 제3 후보 예측 움직임 벡터가 상기 제2 움직임 벡터로 결정되는, 비디오 복호화 방법.
- 하나 이상의 인스트럭션을 저장하는 메모리; 및상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로세서는,비트스트림으로부터 현재 블록의 제1 움직임 벡터에 대한 정보를 획득하고,상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정하고,상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정하고,상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정하고,상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하는, 비디오 복호화 장치.
- 제10항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터인, 비디오 복호화 장치.
- 제10항 또는 제11항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우,상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터인, 비디오 복호화 장치.
- 현재 블록의 제1 움직임 벡터에 대한 정보를 생성(S810)하는 단계;상기 제1 움직임 벡터에 대한 정보에 기초하여 상기 제1 움직임 벡터를 결정(S830)하는 단계;상기 현재 블록의 제2 움직임 벡터를 결정하기 위한 복수의 후보 예측 움직임 벡터들을 포함하는 후보 리스트를 결정(S850)하는 단계;상기 복수의 후보 예측 움직임 벡터들 각각과 상기 제1 움직임 벡터 사이의 거리를 기초로, 상기 복수의 후보 예측 움직임 벡터들 중 하나를 상기 제2 움직임 벡터로 결정(S870)하는 단계; 및상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 이용하여 상기 현재 블록의 움직임 벡터를 결정하여 제1 움직임 벡터에 대한 정보를 부호화(S890)하는 단계를 포함하는, 비디오 부호화 방법.
- 제13항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임은 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임과 동일한 경우,상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 먼 후보 예측 움직임 벡터인, 비디오 부호화 방법.
- 제13항 또는 제14항에 있어서,상기 제1 움직임 벡터의 제1 참조 프레임과 상기 복수의 후보 예측 움직임 벡터들의 제2 참조 프레임이 상이한 경우,상기 제2 움직임 벡터는 상기 복수의 후보 예측 움직임 벡터들 중 상기 제1 움직임 벡터와 거리가 가장 가까운 후보 예측 움직임 벡터인, 비디오 부호화 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/984,063 US20230145364A1 (en) | 2021-11-09 | 2022-11-09 | Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210153307 | 2021-11-09 | ||
KR10-2021-0153307 | 2021-11-09 | ||
KR10-2022-0118151 | 2022-09-19 | ||
KR1020220118151A KR20230067502A (ko) | 2021-11-09 | 2022-09-19 | 비디오 복호화 방법, 비디오 복호화 장치, 비디오 부호화 방법, 및 비디오 부호화 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/984,063 Continuation US20230145364A1 (en) | 2021-11-09 | 2022-11-09 | Video decoding method, video decoding apparatus, video encoding method, and video encoding apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023085704A1 true WO2023085704A1 (ko) | 2023-05-19 |
Family
ID=86336039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/017321 WO2023085704A1 (ko) | 2021-11-09 | 2022-11-07 | 비디오 복호화 방법, 비디오 복호화 장치, 비디오 부호화 방법, 및 비디오 부호화 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023085704A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101652072B1 (ko) * | 2014-11-03 | 2016-08-29 | 세종대학교산학협력단 | 멀티 레이어 비디오의 움직임 정보 탐색 방법 및 장치 |
KR20170078672A (ko) * | 2014-10-31 | 2017-07-07 | 삼성전자주식회사 | 고정밀 스킵 부호화를 이용한 비디오 부호화 장치 및 비디오 복호화 장치 및 그 방법 |
US20180199054A1 (en) * | 2017-01-06 | 2018-07-12 | Mediatek Inc. | Multi-Hypotheses Merge Mode |
KR20210030505A (ko) * | 2016-09-30 | 2021-03-17 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말 |
KR20210118254A (ko) * | 2017-12-14 | 2021-09-29 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 |
-
2022
- 2022-11-07 WO PCT/KR2022/017321 patent/WO2023085704A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170078672A (ko) * | 2014-10-31 | 2017-07-07 | 삼성전자주식회사 | 고정밀 스킵 부호화를 이용한 비디오 부호화 장치 및 비디오 복호화 장치 및 그 방법 |
KR101652072B1 (ko) * | 2014-11-03 | 2016-08-29 | 세종대학교산학협력단 | 멀티 레이어 비디오의 움직임 정보 탐색 방법 및 장치 |
KR20210030505A (ko) * | 2016-09-30 | 2021-03-17 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말 |
US20180199054A1 (en) * | 2017-01-06 | 2018-07-12 | Mediatek Inc. | Multi-Hypotheses Merge Mode |
KR20210118254A (ko) * | 2017-12-14 | 2021-09-29 | 엘지전자 주식회사 | 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019103564A1 (ko) | 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 | |
WO2019107916A1 (ko) | 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 | |
WO2020071830A1 (ko) | 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치 | |
WO2018105757A1 (ko) | 영상 코딩 시스템에서 영상 디코딩 방법 및 장치 | |
WO2017188566A1 (ko) | 영상 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2019117640A1 (ko) | 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치 | |
WO2020166897A1 (ko) | Dmvr 기반의 인터 예측 방법 및 장치 | |
WO2011087321A2 (en) | Method and apparatus for encoding and decoding motion vector | |
WO2017164441A1 (ko) | 비디오 코딩 시스템에서 인터 예측 방법 및 장치 | |
WO2013109092A1 (ko) | 영상 부호화 및 복호화 방법 및 장치 | |
WO2017082443A1 (ko) | 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치 | |
WO2020017892A1 (ko) | 서브블록 단위의 시간적 움직임 벡터 예측을 위한 방법 및 그 장치 | |
WO2015102367A1 (ko) | 다시점 비디오를 부호화하는 방법 및 그 장치, 다시점 비디오를 복호화하는 방법 및 그 장치 | |
WO2020141879A1 (ko) | 영상 코딩 시스템에서 서브 블록 기반 시간적 머지 후보를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2020251319A1 (ko) | Sbtmvp를 이용한 인터 예측 기반 영상 또는 비디오 코딩 | |
EP3020192A1 (en) | Hierarchical motion estimation method and apparatus based on adaptive sampling | |
WO2021125700A1 (ko) | 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치 | |
WO2020251257A1 (ko) | 예측 샘플을 생성하기 위한 가중치 인덱스 정보를 도출하는 영상 디코딩 방법 및 그 장치 | |
WO2020141831A2 (ko) | 인트라 블록 카피 예측을 이용한 영상 코딩 방법 및 장치 | |
WO2020009427A1 (ko) | 영상 코딩 시스템의 인터 예측에서 템플릿 기반의 후보 리스트 재정렬 방법 및 장치 | |
WO2017195917A1 (ko) | 비디오 코딩 시스템에서 인트라 예측 방법 및 장치 | |
WO2019117659A1 (ko) | 움직임 벡터 도출을 기반으로 하는 영상 코딩 방법 및 그 장치 | |
WO2020251340A1 (ko) | 움직임 벡터 예측 기반 영상/비디오 코딩 방법 및 장치 | |
WO2020251270A1 (ko) | 서브블록 단위의 시간적 움직임 정보 기반 영상 또는 비디오 코딩 | |
WO2020251259A1 (ko) | 쌍 예측(bi-prediction)을 위한 가중치 인덱스 정보를 도출하는 영상 디코딩 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22893125 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22893125 Country of ref document: EP Kind code of ref document: A1 |