KR20180080131A - Image decoding method and apparatus using inter picture prediction - Google Patents
Image decoding method and apparatus using inter picture prediction Download PDFInfo
- Publication number
- KR20180080131A KR20180080131A KR1020180000034A KR20180000034A KR20180080131A KR 20180080131 A KR20180080131 A KR 20180080131A KR 1020180000034 A KR1020180000034 A KR 1020180000034A KR 20180000034 A KR20180000034 A KR 20180000034A KR 20180080131 A KR20180080131 A KR 20180080131A
- Authority
- KR
- South Korea
- Prior art keywords
- motion vector
- current block
- candidate motion
- difference value
- vectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
Abstract
화면 간 예측을 이용한 영상 복호화 방법 및 장치가 개시된다. 화면 간 예측을 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함한다. 따라서, 영상 부호화 및 복호화의 효율을 향상시킬 수 있다.A video decoding method and apparatus using inter-picture prediction is disclosed. An image decoding method using inter-view prediction includes the steps of receiving a bit stream, acquiring a part of information indicating a motion vector of a current block to be decoded in the received bit stream, Obtaining a motion vector of the current block by determining remaining information, and generating a prediction block of the current block through inter-picture prediction using the motion vector of the current block. Therefore, the efficiency of image encoding and decoding can be improved.
Description
본 발명은 화면 간 예측을 이용한 영상 복호화 방법 및 장치에 관한 것으로, 더욱 상세하게는 현재 블록의 화면 간 예측에 필요한 움직임 벡터를 부호화 및 복호화하는데 있어서 움직임 벡터의 차분값의 크기, 부호 및 최적의 움직임 벡터를 지시하는 정보 중 일부만 이용해서 나머지 정보들을 결정함으로써 부호화 장치와 복호화 장치 상호간 주고받는 데이터 또는 비트수를 감소시키는 기술에 관한 것이다.The present invention relates to a method and an apparatus for decoding an image using inter-picture prediction, and more particularly to a method and apparatus for coding and decoding a motion vector necessary for intra-picture prediction of a current block. To a technique for reducing the number of data or bits exchanged between an encoding apparatus and a decoding apparatus by determining only the remaining information using only a part of information indicating a vector.
ISO/ISE MPEG (Moving Picture Experts Group)과 ITU-T VCEG (Video Coding Experts Group)으로 불리는 각 기관은 JCV-VC (Joint Collaborative Team on Video Coding)를 조직하여 2013 년 1 월 ISO/IEC MPEG-H HEVC (High Efficiency Video Coding)/ITU-T H.265 인 비디오 압축 표준 기술을 제정하였다. 또한, 현재 급속한 정보통신기술의 발전에 따른 고화질 영상이 대중화되는 추세에 부응하기 위해, ISO/ISE MPEG과 ITU-T VCEG 은 제 22 차 JCT-VC 제네바 회의에서 JVET (Joint Video Exploration Team)을 조직하여 HD (High Definition) 화질보다 선명한 UHD 화질(Ultra High Definition)의 영상 압축을 위한 차세대 영상 압축 기술 표준을 제정하고자 활발히 노력하고 있다.Each organization, called ISO / ISE Moving Picture Experts Group (MPEG) and ITU-T Video Coding Experts Group (VCEG), organized Joint Collaborative Team on Video Coding (JCV-VC) Video compression standard technology, HEVC (High Efficiency Video Coding) / ITU-T H.265. ISO / ISE MPEG and ITU-T VCEG have been organizing JVET (Joint Video Exploration Team) at the 22nd JCT-VC Geneva Conference in order to respond to the trend of high-definition video becoming popularized by the rapid development of information and communication technology. , We are actively striving to establish the next generation image compression technology standard for image compression of UHD image quality (Ultra High Definition) which is clearer than HD (High Definition) image quality.
한편, 기존의 비디오 압축 표준 기술에 따르면, 부호화할 현재 블록에 대한 예측 블록을 생성하고, 예측 블록과 현재 블록의 차분값을 부호화함으로써 부호화되는 데이터량을 줄이고 있는데, 이러한 예측 기술에는 동일한 화면 내에서 공간적으로 인접한 블록과의 유사성을 이용하여 현재 블록에 대한 예측 블록을 생성하는 화면 내 예측 방법과, 시간적으로 인접한 화면의 블록과의 유사성을 이용하여 현재 블록에 대한 예측 블록을 생성하는 화면 간 예측 방법이 있다.Meanwhile, according to the existing video compression standard technology, a prediction block for a current block to be encoded is generated, and a difference value between a prediction block and a current block is encoded, thereby reducing the amount of data to be coded. An intra prediction method for generating a prediction block for a current block using similarity with a spatially adjacent block and an inter prediction method for generating a prediction block for the current block using the similarity between temporally adjacent blocks .
이때, 화면 간 예측은 현재 블록과 시간적으로 인접한 화면 내에서 유사성이 있는 블록을 지시하는 정보로 움직임 벡터를 사용한다. 이때, 움직임 벡터를 그대로 부호화할 경우 비트값이 매우 클 수 있기 때문에 부호화 장치는 현재 블록과 인접한 이웃 블록의 움직임 벡터를 이용하여 후보 움직임 벡터들을 구성하고, 후보 움직임 벡터들 중에서 선정된 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값을 부호화하여 복호화 장치에 전송한다.In this case, the inter-picture prediction uses the motion vector as information indicating a block having similarity in the temporally adjacent picture with respect to the current block. In this case, when the motion vector is directly coded, since the bit value can be very large, the encoder constructs candidate motion vectors using the motion vectors of the neighboring blocks adjacent to the current block, and selects the optimal motion vector And the motion vector of the current block is encoded and transmitted to the decoding apparatus.
그러나, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값을 부호화하는 경우에도 최적의 움직임 벡터가 현재 블록의 움직임 벡터와 많이 상이할 경우에는 비트값 소모 감소효과가 미미하다. 따라서, 영상 부호화 및 복호화의 효율을 향상시키기 위해 부호화 장치와 복호화 장치 상호간에 전달되는 정보량을 줄일 수 있는 방안이 필요한 실정이다.However, even when the difference value between the optimal motion vector and the motion vector of the current block is encoded, the bit value consumption reduction effect is small when the optimal motion vector is much different from the motion vector of the current block. Accordingly, there is a need for a method for reducing the amount of information transmitted between the encoding apparatus and the decoding apparatus in order to improve the efficiency of image encoding and decoding.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 화면 간 예측을 이용한 영상 복호화 방법을 제공하는 데 있다.In order to solve the above problems, an object of the present invention is to provide a picture decoding method using inter picture prediction.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 화면 간 예측을 이용한 영상 복호화 장치를 제공하는 데 있다.It is another object of the present invention to provide an image decoding apparatus using inter-picture prediction.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 화면 간 예측을 이용한 영상 복호화 방법을 제공한다.According to an aspect of the present invention, there is provided an image decoding method using inter picture prediction.
여기서 화면 간 예측을 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Here, the image decoding method using inter picture prediction may include receiving a bit stream, obtaining a part of information indicating a motion vector of a current block to be decoded in the received bit stream, Obtaining the motion vector of the current block by determining the remaining information, and generating a prediction block of the current block through inter-picture prediction using the motion vector of the current block.
여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block may include at least one of a magnitude of a difference value between a best motion vector selected from two or more candidate motion vectors and a motion vector of the current block, a sign of the difference value, Or the like.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring a motion vector of the current block includes the steps of: determining whether a magnitude of the difference value corresponds to a preset condition; and if the predetermined condition is satisfied, And determining the sign of the difference value based on the motion vector of the motion vector.
여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval between adjacent vectors among the two or more candidate motion vectors.
여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.The step of determining whether the magnitude of the differential value corresponds to a predetermined condition may include calculating a value having a largest interval between adjacent vectors and a minimum interval between the adjacent vectors, And comparing the minimum value with the magnitude of the difference value.
여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the predetermined condition may be set based on an interval obtained by dividing the interval between the adjacent vectors by half.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.The obtaining of the motion vector of the current block may include obtaining the difference value using the magnitude of the difference value and the sign of the difference value, calculating a difference value between the first and second motion vectors of the two or more candidate motion vectors, Determining an estimated motion vector of the current block by adding a candidate motion vector, determining whether the estimated motion vector has a coordinate value closest to the first candidate motion vector among the two or more candidate motion vectors, And determining, based on the motion vector, the optimal motion vector.
여기서 상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는, 상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행될 수 있다.Here, the step of determining the estimated motion vector and the step of determining may be repeatedly performed by substituting the remaining candidate motion vectors, excluding the first candidate motion vector, into the first candidate motion vector.
여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.The determining of the optimal motion vector may determine the candidate motion vector as the optimal motion vector if the candidate motion vector having the closest coordinate value as a result of the iteration is unique.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring a motion vector of the current block includes the steps of: determining whether a magnitude of the differential value corresponds to a predetermined condition; and determining whether a motion vector of at least one of the two or more candidate motion vectors From the candidate motion vectors and determining the optimal motion vector among the remaining candidate motion vectors.
상기 목적을 달성하기 위한 본 발명의 다른 측면은 화면 간 예측을 이용한 영상 복호화 장치를 제공한다.According to another aspect of the present invention, there is provided an image decoding apparatus using inter-picture prediction.
여기서 화면 간 예측을 이용한 영상 복호화 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.The apparatus for decoding an image using inter-picture prediction may include at least one processor and a memory for storing instructions for instructing the at least one processor to perform at least one step. have.
여기서 상기 적어도 하나의 단계는, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Wherein the at least one step comprises the steps of: receiving a bitstream; obtaining a part of information indicating a motion vector of a current block to be decoded in the received bitstream; Obtaining a motion vector of the current block by determining a motion vector of the current block, and generating a prediction block of the current block through inter-picture prediction using the motion vector of the current block.
여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block may include at least one of a magnitude of a difference value between a best motion vector selected from two or more candidate motion vectors and a motion vector of the current block, a sign of the difference value, Or the like.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring a motion vector of the current block includes the steps of: determining whether a magnitude of the difference value corresponds to a preset condition; and if the predetermined condition is satisfied, And determining the sign of the difference value based on the motion vector of the motion vector.
여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval between adjacent vectors among the two or more candidate motion vectors.
여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.The step of determining whether the magnitude of the differential value corresponds to a predetermined condition may include calculating a value having a largest interval between adjacent vectors and a minimum interval between the adjacent vectors, And comparing the minimum value with the magnitude of the difference value.
여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the predetermined condition may be set based on an interval obtained by dividing the interval between the adjacent vectors by half.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.The obtaining of the motion vector of the current block may include obtaining the difference value using the magnitude of the difference value and the sign of the difference value, calculating a difference value between the first and second motion vectors of the two or more candidate motion vectors, Determining an estimated motion vector of the current block by adding a candidate motion vector, determining whether the estimated motion vector has a coordinate value closest to the first candidate motion vector among the two or more candidate motion vectors, And determining, based on the motion vector, the optimal motion vector.
여기서 상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는, 상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행될 수 있다.Here, the step of determining the estimated motion vector and the step of determining may be repeatedly performed by substituting the remaining candidate motion vectors, excluding the first candidate motion vector, into the first candidate motion vector.
여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.The determining of the optimal motion vector may determine the candidate motion vector as the optimal motion vector if the candidate motion vector having the closest coordinate value as a result of the iteration is unique.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring a motion vector of the current block includes the steps of: determining whether a magnitude of the differential value corresponds to a predetermined condition; and determining whether a motion vector of at least one of the two or more candidate motion vectors From the candidate motion vectors and determining the optimal motion vector among the remaining candidate motion vectors.
상기와 같은 본 발명에 따른 화면 간 예측을 이용한 영상 복호화 방법 및 장치를 이용할 경우에는 부호화 및 복호화 과정에서 소모되는 비트 수를 줄일 수 있다.When the image decoding method and apparatus using the inter picture prediction according to the present invention as described above, the number of bits consumed in the encoding and decoding processes can be reduced.
따라서, 영상 압축률이 향상될 수 있는 장점이 있다.Accordingly, there is an advantage that the image compression ratio can be improved.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 4는 본 발명의 일 실시예에 따른 화면 간 예측에서 현재 블록의 움직임 벡터를 설정하기 위한 후보 움직임 벡터를 결정하는 방법에 대한 예시도이다.
도 5는 후보 움직임 벡터가 2개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 예시도이다.
도 6은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제1 예시도이다.
도 7은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제2 예시도이다.
도 8은 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 방법에 대한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 장치에 대한 구성도이다.1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
4 is a diagram illustrating a method of determining a candidate motion vector for setting a motion vector of a current block in an inter-view prediction according to an embodiment of the present invention.
5 is a diagram illustrating an area where a motion vector of a current block may exist when two candidate motion vectors are present.
6 is a first example of a region where a motion vector of a current block may exist when there are three candidate motion vectors.
FIG. 7 is a second exemplary diagram illustrating an area where a motion vector of a current block may exist when there are three candidate motion vectors.
8 is a flowchart illustrating an image decoding method using inter-picture prediction according to an embodiment of the present invention.
9 is a block diagram of an image decoding apparatus using inter-picture prediction according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
통상적으로 영상은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture)라고 지칭할 수 있다. 이때, 픽쳐는 프로그레시브(Progressive) 신호, 인터레이스(Interlace) 신호에서의 프레임(Frame), 필드(Field) 중 하나를 나타낼 수 있고, 부호화/복호화가 프레임 단위로 수행될 경우 영상은 '프레임', 필드 단위로 수행될 경우 '필드'로 나타낼 수 있다. 본 발명에서는 프로그레시브 신호를 가정하고 설명하지만, 인터레이스 신호에도 적용 가능할 수 있다. 상위 개념으로는 GOP, 시퀀스(Sequence)등의 단위가 존재할 수 있으며, 또한, 각 픽쳐는 슬라이스, 타일, 블록 등과 같은 소정의 영역으로 분할될 수 있다. 또한, 하나의 GOP에는 I 픽쳐, P 픽쳐, B 픽쳐 등의 단위가 포함될 수 있다. I 픽쳐는 참조 픽쳐를 사용하지 않고 자체적으로 부호화/복호화되는 픽쳐를 의미할 수 있으며, P 픽쳐와 B 픽쳐는 참조 픽쳐를 사용하여 움직임 추정(Motion Estimation) 및 움직임 보상(Motion Compensation) 등의 과정을 수행하여 부호화/복호화 하는 픽쳐를 의미할 수 있다. 일반적으로 P 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐로써 이용할 수 있으며, B 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐를 이용할 수 있으나, 이는 부호화/복호화의 설정에 의해 위의 정의 또한 변경될 수 있다. Generally, an image may be composed of a series of still images. The still images may be divided into GOP (Group of Pictures) units, and each still image may be referred to as a picture. At this time, the picture may indicate one of a progressive signal, a frame in the interlace signal, and a field. When the encoding / decoding is performed on a frame-by-frame basis, If it is performed in units, it can be expressed as 'field'. In the present invention, it is assumed that a progressive signal is assumed, but it may be applicable to an interlace signal. As a higher concept, a unit such as a GOP and a sequence may exist, and each picture may be divided into predetermined areas such as slices, tiles, blocks, and the like. In addition, a unit of an I picture, a P picture, a B picture, and the like may be included in one GOP. The I picture may be a picture to be encoded / decoded by itself without using a reference picture, and the P picture and the B picture may be subjected to a process such as motion estimation (Motion estimation) and motion compensation (motion compensation) And may be a picture to be encoded / decoded. In general, an I picture and a P picture can be used as a reference picture in the case of a P picture, and a reference picture can be used as an I picture and a P picture in the case of a B picture, but this definition can also be changed by setting of encoding / decoding .
여기서 부호화/복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 하며, 참조되는 블록 또는 화소를 참조 블록(Reference Block), 참조 화소(Reference Pixel)라고 한다. 또한, 참조되는 데이터(Reference Data)는 공간 영역(Spatial Domain)의 화소값 뿐만 아니라 주파수 영역(Frequency Domain)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다. 예를 들어, 예측부에서 화면 내 예측 관련 정보 또는 움직임 관련 정보, 변환부/역변환부에서 변환 관련 정보, 양자화부/역양자화부에서 양자화 관련 정보, 부호화부/복호화부에서는 부호화/복호화 관련 정보(문맥 정보), 인루프 필터부에서는 필터 관련 정보 등이 해당될 수 있다.Here, a picture referred to in encoding / decoding is referred to as a reference picture, and a block or pixel to be referred to is referred to as a reference block and a reference pixel. The reference data may be not only the pixel values of the spatial domain but also the coefficient values of the frequency domain and various encoding / decoding information generated and determined during the encoding / decoding process. For example, in the prediction unit, intra prediction information or motion related information, conversion related information in the conversion unit / inverse transform unit, quantization related information in the quantization unit / dequantization unit, and encoding / decoding related information Context information), and filter-related information in the in-loop filter unit.
영상을 이루는 최소 단위는 화소(Pixel)일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도(Bit Depth)라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화 설정에 따라 그 이상의 비트 심도를 지원할 수 있다. 비트 심도는 컬러 공간(Color Space)에 따라 적어도 하나의 비트 심도가 지원될 수 있다. 또한, 영상의 컬러 포맷(Color Format)에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 예를 들어, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 다른 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다. The minimum unit for forming an image may be a pixel, and the number of bits used to represent one pixel is called a bit depth. In general, the bit depth may be 8 bits and may support more bit depths depending on the encoding settings. The bit depth may be supported by at least one bit depth depending on the color space. Also, it may be configured as at least one color space according to the color format of the image. One or more pictures having a predetermined size or one or more pictures having different sizes according to a color format. For example, in the case of YCbCr 4: 2: 0, it may be composed of one luminance component (Y in this example) and two chrominance components (Cb / Cr in this example) The composition ratio may have a width of 1: 2. As another example, in the case of 4: 4: 4, it may have the same composition ratio in the horizontal and vertical directions. If it is composed of more than one color space as in the above example, the picture can perform the division into each color space.
본 발명에서는 일부 컬러 포맷(본 예에서, YCbCr)의 일부 컬러 공간(본 예에서, Y)을 기준으로 설명할 것이며, 컬러 포맷에 따른 다른 컬러 공간(본 예에서, Cb, Cr)에도 동일하거나 비슷한 적용(특정 컬러 공간에 의존적인 설정)을 할 수 있다. 그러나 각 컬러 공간에 부분적인 차이(특정 컬러 공간에 독립적인 설정)를 두는 것 또한 가능할 수 있다. 즉, 각 컬러 공간에 의존적인 설정은 각 성분의 구성 비(예를 들어, 4:2:0, 4:2:2, 4:4:4 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.In the present invention, some color spaces (Y in this example) of some color formats (YCbCr in this example) will be described, and the same color space (Cb, Cr in this example) Similar applications (settings dependent on a specific color space) can be made. However, it may also be possible to place a partial difference (an independent setting for a specific color space) in each color space. That is, the setting depending on each color space has a setting proportional to or dependent on the composition ratio of each component (for example, determined by 4: 2: 0, 4: 2: 2, 4: 4: 4, And the setting independent of each color space can be regarded as having a setting of only the corresponding color space regardless of the constituent ratio of each element or independently. In the present invention, depending on the subdecoder, the subdecoder may have an independent setting for some of the configurations or may have a dependent setting.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소(Syntax Element)는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header, Tile Header, Block Header 등과 같은 단위로 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서는 동일 수준의 단위에서 파싱(Parsing)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 또한, SEI(Supplement Enhancement Information) 또는 메타 데이터(Metadata) 등의 형태로 관련 정보를 비트스트림으로 전송하고 파싱하여 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다. Syntax elements required in the image coding process can be defined at a unit level such as video, sequence, picture, slice, tile, block, and the like, and it may be a VPS (Video Parameter Set), SPS (Sequence Parameter Set) A picture parameter set (PPS), a slice header, a tile header, a block header, or the like, and transmitted to a decoder. The decoder parses the setting information in units of the same level, And can be used in the image decoding process. In addition, related information can be transmitted and parsed in the form of SEI (Supplement Enhancement Information) or Metadata in a bit stream. Each parameter set has a unique ID value, and in the lower parameter set, it can have an ID value of an upper parameter set to be referred to. For example, information of an upper parameter set having a matching ID value among one or more higher parameter sets in the lower parameter set may be referred to. In the case where any one of the examples of various units mentioned above includes one or more other units, the corresponding unit may be referred to as an upper unit and the included unit may be referred to as a lower unit.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.In the case of the setting information generated in the unit, the setting information may include contents of independent setting for each unit, or contents related to setting depending on the previous, the next, or the upper unit. Here, it can be understood that the dependent setting indicates the setting information of the corresponding unit with flag information (for example, 1 if the flag is 1, not followed by 0) to follow the setting of the previous unit and then the higher unit. The setting information in the present invention will be described with reference to an example of an independent setting, but an example in which addition or substitution is made to the contents of a relation that relies on setting information of a previous unit, a subsequent unit, or a higher unit of the current unit .
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
도 1을 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.1, the
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.2, the
예측부(200)는 화면 내 예측을 수행하는 화면 내 예측부와 화면 간 예측을 수행하는 화면 간 예측부를 포함할 수 있다. 화면 내 예측은 현재 블록의 인접한 블록의 화소를 이용하여 공간적인 예측을 수행하여 예측 블록을 생성할 수 있고, 화면 간 예측은 참조 영상으로부터 현재 블록과 가장 매치가 되는 영역을 찾아 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 해당 단위(부호화 단위 또는 예측 단위)에 대해 화면 내 예측 또는 화면 간 예측 중 어떤 방식을 사용할 지에 대한 것을 결정하고, 각 예측 방법에 따른 구체적인 정보(예를 들어, 화면 내 예측 모드, 움직임 벡터, 참조 영상 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수 있다.The
감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호인 잔차 블록을 생성한다.
변환부(210)는 잔차 블록을 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환한다. 여기서, 변환부(210)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 변환(DCT Based Transform), 이산 사인 변환 기반의 변환(DST Based Transform), 카루넨 루베 변환 기반의 변환(KLT Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다. 변환은 1차원 변환 매트릭스에 의해 변환될 수 있다. 수평, 수직 단위로 각 변환 매트릭스가 적응적으로 사용될 수 있다. 예를 들어, 화면 내 예측의 경우, 예측 모드가 수평일 경우에는 수직 방향으로는 DCT 기반의 변환 매트릭스가, 수평 방향으로는 DST 기반의 변환 매트릭스가 사용될 수도 있다. 수직일 경우에는 수평 방향으로는 DCT 기반의 변환 매트릭스가, 수직 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다. The
양자화부(215)는 변환부(210)에 의해 주파수 영역으로 변환된 주파수 계수를 갖는 잔차 블록을 양자화한다. 여기서, 양자화부(215)는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다. 이는1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다. The
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 이를 엔트로피 부호화 기법 등을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다.The
역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.The
역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.The
가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 복호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 현재 블록의 다음 블록이나 향후 다른 블록, 다른 픽쳐를 부호화할 때 참조 픽쳐로서 사용될 수 있다.The
필터부(235)는 디블록킹 필터, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band offset), 에지 오프셋 등의 형태로 적용될 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다. The
복호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 복호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면 내 예측 또는 화면 간 예측을 수행하는 예측부(200)에 제공될 수 있다.The decoded
도면에 도시 하지 않았지만 분할부가 더 포함될 수 있으며, 분할부를 통해 다양한 크기의 부호화 단위로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록, 둘의 색차 부호화 블록 등)될 수 있다. 설명의 편의를 위해 하나의 컬러 성분 단위를 가정하여 설명한다. 부호화 블록은 M×M(예를 들어, M은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 또는, 분할 방식(예를 들어, 트리 기반의 분할. 쿼드 트리 분할, 바이너리 트리 분할 등)에 따라 부호화 블록은 M×N(예를 들어, M과 N은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 이때, 부호화 블록은 화면 내 예측, 화면 간 예측, 변환, 양자화, 엔트로피 부호화 등의 기초가 되는 단위일 수 있다. 본 발명에서는 분할 방식에 따라 동일한 크기 및 형태를 갖는 복수 개의 서브 블록이 획득되는 가정 하에 설명하지만, 비대칭적인 서브 블록(예를 들어, 바이너리 트리의 경우 4M × 4N은 3M × 4N과 M × 4N 또는 4M × 3N과 4M × N 등으로 분할)을 갖는 경우로의 적용 또한 가능할 수 있다. 이때, 비대칭적인 서브 블록은 대칭적인 서브 블록을 획득하는 분할 방식에 부/복호화 설정에 따라 추가적으로 지원 여부가 결정되는 정보에 의해 지원될 수 있다.Although not shown in the figure, a division unit may be further included, and the division unit may be divided into coding units of various sizes. At this time, the encoding unit may be composed of a plurality of encoding blocks (for example, one luminance encoding block, two color difference encoding blocks, etc.) according to the color format. For ease of explanation, one color component unit is assumed. The encoding block may have variable sizes such as MxM (e.g., M is 4, 8, 16, 32, 64, 128, etc.). Alternatively, according to a division scheme (for example, a tree-based division, a quad tree division, a binary tree division, or the like), an encoding block is M × N (for example, M and N are 4, 8, 16, 32, 64, 128, etc.). At this time, the encoded block may be a unit that is a basis for intra-picture prediction, inter-picture prediction, conversion, quantization, entropy coding, and the like. In the present invention, although it is described under the assumption that a plurality of sub-blocks having the same size and shape are obtained according to the division method, asymmetric sub-blocks (for example, 4M x 4N for 3M x 4N and M x 4N or 4M x 3N and 4M x N, etc.). At this time, the asymmetric sub-block can be supported by the information for determining whether or not the sub-block is additionally supported according to the sub-decoding setting in the dividing scheme for obtaining symmetric sub-blocks.
부호화 블록(M×N)의 분할은 재귀적인 트리 기반의 구조를 가질 수 있다. 이때, 분할 여부는 분할 플래그(예를 들어, 쿼드 트리 분할 플래그, 바이너리 분할 플래그)를 통해 나타낼 수 있다. 예를 들어, 분할 깊이(Depth)가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 4개의 서브 부호화 블록(쿼드 트리 분할) 또는 2개의 서브 부호화 블록(바이너리 트리 분할)에서 수행된다. 이때, 블록의 크기는 4개의 부호화 블록의 경우 (M >> 1) × (N >> 1)이고, 2개의 부호화 블록의 경우 (M >> 1) × N 또는 M × (N >>1)일 수 있다. 상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있다. 이때, 쿼드 트리 분할의 경우 하나의 분할 플래그(예를 들어, 분할 여부 플래그)가 지원될 수 있고, 바이너리 트리 분할의 경우 적어도 하나(최대 2개)의 플래그(예를 들어, 분할 여부 플래그에 추가적으로 분할 방향 플래그<가로 또는 세로. 선행하는 상위 또는 이전 분할 결과에 따라 일부 경우에 생략가능>)가 지원될 수 있다.The division of an encoding block (MxN) may have a recursive tree-based structure. At this time, whether or not division is possible can be indicated by a division flag (for example, a quadtree division flag and a binary division flag). For example, when the division flag of the coding block having the division depth k is 0, the coding block is encoded in the coding block having the division depth k. If the division flag of the coding block having the division depth k is 1 The encoding of the encoding block is performed in four sub-encoding blocks (quad tree segmentation) or two sub-encoding blocks (binary tree segmentation) with a division depth of k + 1 according to the division method. In this case, the size of the block is (M >> 1) × (N >> 1) in the case of four encoding blocks and (M >> 1) × N or M × (N >> 1) Lt; / RTI > The sub-encoding block is set as a coding block (k + 1) and divided into sub-coding blocks (k + 2) through the above process. At this time, one partition flag (e.g., partitioning flag) may be supported in the case of a quadtree partition, and at least one (at most two) flags in the case of a binary tree partition (for example, Split direction flags <horizontally or vertically, depending on the preceding or previous splitting result, may be omitted in some cases) may be supported.
블록 분할은 최대 부호화 블록에서 시작하여 최소 부호화 블록까지 진행할 수 있다. 또는, 최소 분할 깊이에서 시작하여 최대 분할 깊이까지 진행할 수 있다. 즉, 블록의 크기가 최소 부호화 블록 크기에 도달하거나 분할 깊이가 최대 분할 깊이에 도달할 때까지 재귀적으로 분할을 수행할 수 있다. 이때, 부/복호화 설정(예를 들어, 영상<슬라이스, 타일> 타입<I/P/B>, 부호화 모드<Intra/Inter>, 색차 성분<Y/Cb/Cr> 등)에 따라 최대 부호화 블록의 크기와 최소 부호화 블록의 크기, 최대 분할 깊이가 적응적으로 설정될 수 있다. 예를 들어, 최대 부호화 블록은 128×128일 때, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 32×32범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 또는, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 128×128 범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 전자의 경우 I 영상 타입(예를 들어, 슬라이스), 후자의 경우 P나 B 영상 타입에서의 설정일 수 있다. 상기 예에서 설명된 것과 같이 최대 부호화 블록의 크기, 최소 부호화 블록의 크기, 최대 분할 깊이 등과 같은 분할 설정은 분할 방식에 따라 공통되거나 또는 개별적으로 지원될 수 있다.The block division starts from the maximum encoding block and can proceed to the minimum encoding block. Alternatively, it may proceed from the minimum splitting depth to the maximum splitting depth. That is, the partitioning can be performed recursively until the block size reaches the minimum coding block size or the division depth reaches the maximum division depth. At this time, in accordance with the sub / decoding setting (for example, image <slice, tile> type <I / P / B>, coding mode <Intra / Inter>, color difference component <Y / Cb / Cr> The size of the minimum coding block, and the maximum division depth can be adaptively set. For example, when the maximum coded block is 128 × 128, the quadtree partitioning can be performed in the range of 8 × 8 to 128 × 128, the binary tree partitioning can be performed in the range of 4 × 4 to 32 × 32, . ≪ / RTI > Alternatively, the quadtree partitioning may be performed in the range of 8 x 8 to 128 x 128, and the binary tree partitioning may be performed in the range of 4 x 4 to 128 x 128 and the maximum division depth of 3. In the former case, it may be an I picture type (for example, a slice), and in the latter case, a P or B picture type. As described in the above example, the division setting such as the size of the maximum coding block, the size of the minimum coding block, and the maximum division depth can be shared or individually supported according to the division method.
복수의 분할 방식이 지원되는 경우 각 분할 방식의 블록 지원 범위 내에서 분할이 수행되며, 각 분할 방식의 블록 지원 범위가 겹치는 경우에는 분할 방식의 우선 순위가 존재할 수 있다. 예를 들어, 쿼드 트리 분할이 바이너리 트리 분할을 선행할 수 있다. 또한, 복수의 분할 방식이 지원되는 경우 선행하는 분할의 결과에 따라 후행하는 분할의 수행 여부가 결정될 수 있다. 예를 들어, 선행하는 분할의 결과가 분할을 수행함을 나타낼 경우 후행하는 분할은 수행하지 않고 선행한 분할에 따라 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있다. If a plurality of partitioning schemes are supported, the partitioning is performed within the block support range of each partitioning scheme, and if the block support ranges of each partitioning scheme overlap, the priority of the partitioning scheme may exist. For example, a quadtree partition may precede a binary tree partition. Also, if a plurality of division methods are supported, it may be determined whether or not to perform a following division according to the result of the preceding division. For example, if the result of the preceding division indicates that the division is performed, the sub-coding block divided according to the preceding division can be set as the coding block again to perform the division without performing the following division.
또는, 선행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 후행하는 분할의 결과에 따라 분할을 수행할 수 있다. 이때, 후행하는 분할의 결과가 분할을 수행함을 나타낼 경우 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있고, 후행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 더 이상의 분할은 수행하지 않는다. 이때, 후행하는 분할 결과가 분할을 수행함을 나타내고 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되었을 때의 상황도 복수의 분할 방식이 지원되는 경우일 때, 선행하는 분할은 수행하지 않고 후행하는 분할만 지원할 수 있다. 즉, 복수의 분할 방식이 지원되는 경우에 선행하는 분할의 결과가 분할이 수행되지 않음을 나타낼 경우 더 이상 선행의 분할은 수행하지 않음을 의미한다.Alternatively, if the result of the preceding segmentation indicates that the segmentation is not performed, the segmentation may be performed according to the result of the succeeding segmentation. In this case, when the result of the succeeding division indicates that the division is performed, the divided sub-coded blocks may be set as a coding block again to perform division, and if the result of the following division indicates that division is not performed, . At this time, when the succeeding division result indicates that the division is performed and the divided sub-coded blocks are set as the encoding block again, when a plurality of division methods are supported, only the following division . That is, when a plurality of division methods are supported, if the result of the preceding division shows that the division is not performed, it means that the preceding division is no longer performed.
예를 들어, M × N부호화 블록은 쿼드 트리 분할와 바이너리 트리 분할이 가능할 경우 우선 쿼드 트리 분할 플래그를 확인할 수 있고, 상기 분할 플래그가 1인 경우에는 (M >> 1) x (N >> 1) 크기의 4개의 서브 부호화 블록으로 분할이 수행이 되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(쿼드 트리 분할 또는 바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 바이너리 트리 분할 플래그를 확인할 수 있고, 해당 플래그가 1인 경우에는 (M >> 1) × N 또는 M × (N >> 1) 크기의 2 개의 서브 부호화 블록으로 분할이 수행되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 분할 과정을 종료하고 부호화를 진행한다.For example, the M × N encoded block can confirm the quad tree division flag when quad tree division and binary tree division are possible, and when the division flag is 1 (M >> 1) x (N >> 1) The sub-encoding block is divided into four sub-encoding blocks of size, and the sub-encoding block is set as the encoding block again to perform the segmentation (quad-tree segmentation or binary tree segmentation). If the division flag is 0, the binary tree division flag can be confirmed. If the flag is 1, the sub-encoding block is divided into two sub-coded blocks of size (M >> 1) × N or M × (N >> 1) Is performed and the sub-encoding block is set as an encoding block again to perform segmentation (binary tree segmentation). If the division flag is 0, the dividing process is terminated and the coding process proceeds.
상기 예를 통해 복수의 분할 방식이 수행되는 경우를 설명하였지만, 이에 한정되지 않고 다양한 분할 방식의 지원 조합이 가능할 수 있다. 예를 들어, 쿼드 트리/바이너리 트리/ 쿼드 트리 + 바이너리 트리 등의 분할 방식이 사용될 수 있다. 이때, 기본의 분할 방식은 쿼드 트리 방식, 추가적인 분할 방식은 바이너리 트리 방식으로 설정할 수 있고, 추가적인 분할 방식의 지원 여부에 대한 정보가 명시적으로 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함될 수 있다.Although a case where a plurality of division methods are performed through the above example has been described, the present invention is not limited thereto, and various combinations of supporting methods can be possible. For example, a partitioning scheme such as quadtree / binary tree / quadtree + binary tree can be used. In this case, the basic partitioning method can be set to a quad tree method, the additional partitioning method can be set to a binary tree method, and information on whether or not the additional partitioning method is supported can be explicitly included in a unit of a sequence, a picture, a slice, and a tile .
상기 예에서 부호화 블록의 크기 정보, 부호화 블록의 지원 범위, 최대 분할 깊이 등 분할에 관련된 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함되거나 묵시적으로 결정될 수 있다. 정리하면, 최대 부호화 블록의 크기, 지원되는 블록의 범위, 최대 분할 깊이 등에 의해 허용 가능한 블록의 범위가 정해질 수 있다.In the above example, the information related to the division such as the size information of the encoding block, the support range of the encoding block, the maximum division depth, and the like may be included in the unit of the sequence, picture, slice, tile or the like or implicitly determined. In summary, the range of allowable blocks can be determined by the size of the maximum coded block, the range of supported blocks, the maximum division depth, and the like.
상기 과정을 통해 분할이 수행되어 획득되는 부호화 블록은 화면 내 예측 또는 화면 간 예측의 최대 크기로 설정될 수 있다. 즉, 블록 분할이 끝난 부호화 블록은 화면 내 예측 또는 화면 간 예측을 위해 예측 블록의 분할의 시작 크기일 수 있다. 예를 들어, 부호화 블록이 2M×2N일 경우 예측 블록은 그보다 같거나 작은 2M×2N, M×N의 크기를 가질 수 있다. 또는, 2M×2N, 2M×N, M×2N, M×N의 크기를 가질 수 있다. 또는, 부호화 블록와 동일한 크기로 2M×2N의 크기를 가질 수 있다. 이때, 부호화 블록과 예측 블록이 동일한 크기를 갖는다는 것은 예측 블록의 분할을 수행하지 않고 부호화 블록의 분할을 통해 획득된 크기로 예측을 수행한다는 것을 의미할 수 있다. 즉, 예측 블록을 위한 분할 정보는 생성되지 않는다는 것을 의미한다. 이와 같은 설정은 변환 블록에도 적용될 수 있으며 분할된 부호화 블록 단위로 변환을 수행할 수도 있다. 즉, 상기 분할 결과에 따라 획득되는 정사각 또는 직사각 형태의 블록이 화면내 예측, 화면간 예측에 사용되는 블록일 수 있고, 잔차 성분에 대한 변환, 양자화에 사용되는 블록일 수 있다.The coding block obtained by performing the division through the above process can be set to the maximum size of intra-picture prediction or inter-picture prediction. That is, the coded block after the block division may be the start size of the division of the prediction block for intra-picture prediction or inter-picture prediction. For example, if the coding block is 2M x 2N, the prediction block may have a size of 2M x 2N, M x N that is equal to or smaller than the prediction block. Alternatively, it may have a size of 2Mx2N, 2MxN, Mx2N, and MxN. Alternatively, it may have the same size as the encoding block and have a size of 2M x 2N. In this case, the fact that the encoding block and the prediction block have the same size may mean that the prediction is performed with the size acquired through the division of the encoding block without performing the division of the prediction block. That is, the partition information for the prediction block is not generated. Such a setting may be applied to a transform block, and the transform may be performed on a divided block basis. That is, the square block or the rectangular block obtained according to the division result may be a block used for intra prediction or inter prediction, or may be a block used for transformation and quantization of residual components.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
도 3을 참조하면, 영상 복호화 장치(30)는, 부호화 픽쳐 버퍼(300), 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.3, the
또한, 예측부(310)는 다시 화면 내 예측 모듈 및 화면 간 예측 모듈을 포함하여 구성될 수 있다.In addition, the
먼저, 영상 부호화 장치(20)로부터 전달된 영상 비트스트림이 수신되면, 부호화 픽쳐 버퍼(300)에 저장될 수 있다.First, when an image bitstream transmitted from the
엔트로피 복호화부(305)는 비트스트림을 복호화하여 양자화된 계수들, 움직임 벡터들 및 다른 구문(syntax)를 생성할 수 있다. 생성된 데이터는 예측부(310)로 전달될 수 있다.The
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 이때, 복호화된 픽쳐 버퍼(335)에 저장된 참조 영상에 기초하여, 디폴트(default) 구성 기법을 이용한 참조 픽쳐 리스트를 구성할 수도 있다.The
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.The
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.The
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.The
역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.The residual block subjected to the inverse quantization and inverse transform process may be added to the prediction block derived by the
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.The
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.The reconstructed and filtered image block may be stored in the decoded
도 4는 본 발명의 일 실시예에 따른 화면 간 예측에서 현재 블록의 움직임 벡터를 설정하기 위한 후보 움직임 벡터를 결정하는 방법에 대한 예시도이다.4 is a diagram illustrating a method of determining a candidate motion vector for setting a motion vector of a current block in an inter-view prediction according to an embodiment of the present invention.
현재 블록의 예측 블록을 생성하기 위하여 현재 블록과 유사한 블록을 현재 블록이 속한 프레임과 시간적으로 다른 프레임 내의 블록에서 찾은 경우 해당 블록을 지시하는 정보로서 움직임 벡터를 사용할 수 있다. 이때, 부호화할 움직임 벡터의 좌표값이 큰 경우 비트 손실율이 매우 클 수 있다. 따라서, 부호화 장치는 부호화할 움직임 벡터와 유사성이 높을 것으로 예상되는 후보 움직임 벡터들 중에서 최적의 움직임 벡터를 선정한 후, 최적의 움직임 벡터를 지시하는 정보, 부호화할 움직임 벡터와 최적의 움직임 벡터 사이의 차분값 및 차분값의 부호를 복호화 장치에 전달할 수 있다. 이때, 최적의 움직임 벡터는 차분값이 최소화될 수 있도록, 후보 움직임 벡터들 중에서 현재 블록에 대한 움직임 벡터와의 거리가 최소가 되는 움직임 벡터일 수 있다.When a block similar to the current block is found in a block within a frame temporally different from the frame to which the current block belongs, a motion vector can be used as information indicating the corresponding block in order to generate a prediction block of the current block. At this time, if the coordinate value of the motion vector to be encoded is large, the bit loss rate may be very large. Therefore, after selecting an optimal motion vector from candidate motion vectors that are expected to be highly similar to a motion vector to be encoded, the encoding apparatus selects information indicating an optimal motion vector, a difference between a motion vector to be encoded and an optimal motion vector Value and difference value to the decoding apparatus. In this case, the optimal motion vector may be a motion vector having a minimum distance from the motion vector of the current block among the candidate motion vectors so that the difference value may be minimized.
여기서, 후보 움직임 벡터를 어떻게 결정할 것인지 문제되는데, 도 4를 참조하면, 현재 블록과 인접한 이웃 블록의 움직임 벡터를 후보 움직임 벡터로 결정할 수 있다. 즉, 현재 블록(Current BLOCK)과 인접한 이웃 블록들(A, B, C, D, E)의 움직임 벡터는 현재 블록의 움직임 벡터와 유사할 가능성이 높으므로 현재 블록의 움직임 벡터를 표현하는 후보 움직임 벡터로 결정할 수 있다.Here, how to determine a candidate motion vector is a problem. Referring to FIG. 4, a motion vector of a neighboring block adjacent to the current block can be determined as a candidate motion vector. That is, since the motion vectors of the neighboring blocks A, B, C, D, and E adjacent to the current block are likely to be similar to the motion vectors of the current block, Can be determined as a vector.
또한, 현재 블록과 인접한 이웃 블록 뿐만 아니라, 현재 블록이 속한 프레임(또는 픽쳐)과 시간적으로 인접하며 부호화가 완료된 프레임(또는 픽쳐)에서, 현재 블록과 같은 위치에 있는 블록(Co-located BLOCK)의 움직임 벡터를 후보 움직임 벡터로 결정할 수도 있다.In addition to the neighboring block adjacent to the current block, a block (or a picture) in the same position as the current block in a frame (or picture) temporally adjacent and coded with respect to the frame (or picture) The motion vector may be determined as a candidate motion vector.
또한, 후보 움직임 벡터는 이웃 블록 또는 시간적으로 인접하고 부호화가 완료된 프레임에서 현재 블록과 같은 위치에 있는 블록들 중에서 2개 이상을 선정할 수 있다. 이때, 후보 움직임 벡터의 개수와 후보 움직임 벡터의 선정 조건은 부호화 장치와 복호화 장치에 미리 설정되어 있을 수 있다.In addition, the candidate motion vector may be selected from two or more blocks in the same block as the current block in a neighboring block or temporally adjacent and coded frames. At this time, the number of candidate motion vectors and the selection condition of the candidate motion vector may be preset in the encoding apparatus and the decoding apparatus.
이하에서는 최적의 움직임 벡터를 지시하는 정보, 현재 블록의 움직임 벡터와 최적의 움직임 벡터 사이의 차분값, 차분값에 대한 부호 중에서 최적의 움직임 벡터를 지시하는 정보나 차분값에 대한 부호를 복호화 장치에서 알 수 있는 경우를 살펴보고, 이를 기초로 최적의 움직임 벡터를 지시하는 정보 또는 차분값에 대한 부호를 부호화하지 않는 방법을 설명한다. Hereinafter, the information indicating the optimal motion vector, the difference value between the motion vector of the current block and the optimal motion vector, the information indicating the optimal motion vector among the codes for the difference value, A description will be made of a case where information is known and a method of not coding information for indicating an optimal motion vector or a code for a difference value will be described.
도 5는 후보 움직임 벡터가 2개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 예시도이다.5 is a diagram illustrating an area where a motion vector of a current block may exist when two candidate motion vectors are present.
도 5를 참조하면, 후보 움직임 벡터가 2개일 때 최적의 움직임 벡터를 지시하는 정보 또는 차분값에 대한 부호를 복호화 장치가 알 수 있는 경우를 설명할 수 있다. 또한, a와 b는 후보 움직임 벡터에 대한 x 또는 y 좌표값을 의미할 수 있으나 이하에서는 간략히 후보 움직임 벡터로 지칭한다.Referring to FIG. 5, it is possible to explain a case in which the decoding apparatus can know the information indicating the optimal motion vector or the sign of the difference value when there are two candidate motion vectors. Also, a and b may be x or y coordinate values for a candidate motion vector, but they are hereinafter simply referred to as candidate motion vectors.
먼저, 두 개의 후보 움직임 벡터 a 및 b 중에서 최적의 움직임 벡터를 선정하고 최적의 움직임 벡터와 현재 블록의 움직임 벡터(k) 사이의 차분값(mvd, moving vector difference)을 부호화할 경우, 최적의 움직임 벡터와 현재 블록의 움직임 벡터(k) 사이의 차분값(mvd)이 다음의 수학식 1과 같은 관계를 가진다고 하자.First, when an optimal motion vector is selected from two candidate motion vectors a and b and a difference value (mvd, moving vector difference) between an optimal motion vector and a motion vector k of the current block is coded, Let the difference value (mvd) between the vector and the motion vector (k) of the current block have a relationship as shown in the following Equation (1).
상기 수학식 1의 관계에서, 후보 움직임 벡터 a가 최적의 움직임 벡터인 경우, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 a를 기준으로 (인접한 후보 움직임 벡터들 a, b 사이의 거리의 반에 해당) 보다 더 먼 거리에 위치할 수 있다. 즉, 현재 블록의 움직임 벡터(k)는 도 5에서 제1 영역(51a)와 제2 영역(52a)에 위치할 수 있다. 이때, 현재 블록의 움직임 벡터(k)가 제2 영역(52a)에 위치하면 후보 움직임 벡터 a보다 후보 움직임 벡터 b와 더 가까워지게 된다. 현재 블록의 움직임 벡터(k)가 후보 움직임 벡터 a보다 후보 움직임 벡터 b와 가까우면, 최적의 움직임 벡터가 a라는 전제조건에 어긋나므로, 현재 블록의 움직임 벡터(k)는 제2 영역(52a)에는 위치할 수 없고, 제1 영역(51a)에 위치할 수 있다.In the relation of Equation (1), if the candidate motion vector a is an optimal motion vector, the motion vector (k) of the current block is based on the candidate motion vector a (Corresponding to half the distance between adjacent candidate motion vectors a, b). That is, the motion vector k of the current block may be located in the
또한, 상기 수학식 1의 관계에서 후보 움직임 벡터 b가 최적의 움직임 벡터인 경우, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 b를 기준으로 보다 더 먼 거리에 위치할 수 있다. 즉, 현재 블록의 움직임 벡터(k)는 도 5에서 제3 영역(51b)와 제4 영역(52b)에 위치할 수 있다. 이때, 현재 블록의 움직임 벡터(k)가 제3 영역(51b)에 위치하면 후보 움직임 벡터 b보다 후보 움직임 벡터 a와 더 가까워지게 된다. 현재 블록의 움직임 벡터(k)가 후보 움직임 벡터 b보다 후보 움직임 벡터 a와 가까우면, 최적의 움직임 벡터가 b라는 전제조건에 어긋나므로, 현재 블록의 움직임 벡터(k)는 제3 영역(51b)에는 위치할 수 없고, 제4 영역(52b)에 위치할 수 있다.When the candidate motion vector b is an optimal motion vector in the relation of Equation (1), the motion vector k of the current block is calculated based on the candidate motion vector b It can be located farther than the above. That is, the motion vector k of the current block may be located in the
정리하면, 수학식 1을 만족할 경우 현재 블록의 움직임 벡터(k)는 제1 영역(51a) 또는 제4 영역(52b)에 위치한다는 것을 알 수 있는데, 이러한 사실을 통해 최적의 움직임 벡터를 지시하는 정보를 생략하거나, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값에 대한 부호를 생략할 수 있다.In summary, it can be seen that when the equation (1) is satisfied, the motion vector k of the current block is located in the
구체적으로, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값에 대한 부호를 생략하는 방법은 다음과 같다.Specifically, a method of omitting the sign for the difference value between the optimal motion vector and the motion vector of the current block is as follows.
먼저, a가 최적의 움직임 벡터인 경우를 살펴보면, 현재 블록의 움직임 벡터(k)는 제1 영역(51a)에 위치한다. 따라서, 최적의 움직임 벡터가 a라면 현재 블록의 움직임 벡터(k)는 a보다 왼쪽에 위치(a보다 더 작은 값을 가지는 위치)에 있으므로, 현재 블록의 움직임 벡터(k)와 최적의 움직임 벡터(전제조건상 a)와의 차분값(k-a)은 항상 음수라는 것을 알 수 있다. First, when a is an optimal motion vector, the motion vector k of the current block is located in the
다음으로, b가 최적의 움직임 벡터인 경우를 살펴보면, 현재 블록의 움직임 벡터(k)는 제4 영역(52b)에 위치한다. 따라서, 최적의 움직임 벡터가 b라면 현재 블록의 움직임 벡터(k)는 b보다 오른쪽에 위치(b보다 더 큰 값을 가지는 위치)에 있으므로, 현재 블록의 움직임 벡터(k)와 최적의 움직임 벡터(전제조건상 b)와의 차분값(k-b)은 항상 양수라는 것을 알 수 있다.Next, when b is an optimal motion vector, the motion vector k of the current block is located in the
종합하면, 부호화 장치는 상기 수학식 1을 만족할 경우 최적의 움직임 벡터와 현재 블록의 움직임 벡터에 대한 차분값의 부호를 복호화 장치에 전달하는 과정을 생략하고, 차분값의 크기와 최적의 움직임 벡터를 지시하는 정보를 복호화 장치에 전달할 수 있다. 복호화 장치는 상기 수학식 1을 만족하는지 판단하고, 최적의 움직임 벡터를 지시하는 정보를 참조한 결과 최적의 움직임 벡터가 a라면 현재 블록의 움직임 벡터(k)가 제1 영역(51a)에 위치하는 것을 파악하여 차분값의 부호가 음수라고 결정할 수 있다. 또한, 복호화 장치는 상기 수학식 1을 만족하는지 판단하고, 최적의 움직임 벡터를 지시하는 정보를 참조한 결과 최적의 움직임 벡터가 b라면 현재 블록의 움직임 벡터(k)가 제4 영역(52b)에 위치하는 것을 파악하여 차분값의 부호가 양수라고 결정할 수 있다.If the equation (1) is satisfied, the encoding apparatus skips the process of transmitting the optimal motion vector and the sign of the difference value to the motion vector of the current block to the decoding apparatus, and calculates the difference value and the optimal motion vector And can transmit the instructed information to the decryption apparatus. If the optimal motion vector is a as a result of referring to the information indicating the optimal motion vector, the decoding apparatus determines that the motion vector (k) of the current block is located in the
한편, 최적의 움직임 벡터를 지시하는 정보를 생략하는 방법은 다음과 같다.On the other hand, a method of omitting information indicating an optimal motion vector is as follows.
부호화 장치가 최적의 움직임 벡터를 지시하는 정보를 생략하고, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값의 크기와 부호를 복호화 장치에 전송하였다면, 복호화 장치는 차분값의 크기와 부호를 통해 차분값을 확인할 수 있고, 확인된 차분값에 최적의 움직임 벡터가 될 수 있는 후보 움직임 벡터 a를 더할 수 있다. 이때 도출된 값(현재 블록에 대한 움직임 벡터 좌표값의 추정값일 수 있어, 추정 움직임 벡터로 지칭될 수 있다.)이 a와 b 중에서 a에 가까운 값을 가진다면 최적의 움직임 벡터는 a인 것으로 판단할 수 있다. 왜냐하면, a가 최적의 움직임 벡터라면, 차분값(k-a)에 후보 움직임 벡터 a를 더하여 도출된 값은 현재 블록의 움직임 벡터(k)가 되고, 부호화 장치는 후보 움직임 벡터 a가 현재 블록의 움직임 벡터(k)와 가장 가깝기 때문에 최적의 움직임 벡터로 선정하였을 것이기 때문이다. If the encoding apparatus omits the information indicating the optimal motion vector and transmits the size and the sign of the difference value between the optimal motion vector and the motion vector of the current block to the decoding apparatus, It is possible to add the candidate motion vector a that can be the optimal motion vector to the identified difference value. The derived value (which can be an estimated value of the motion vector coordinate value for the current block, which can be referred to as an estimated motion vector). If a and b have a value close to a, the optimal motion vector is determined to be a can do. If a is an optimal motion vector, the value obtained by adding the candidate motion vector a to the difference value ka becomes the motion vector k of the current block, and the encoder determines that the candidate motion vector a is the motion vector of the current block (k), the optimal motion vector is selected.
같은 방식으로, 복호화 장치는 차분값의 크기와 부호를 통해 차분값을 확인할 수 있고, 확인된 차분값에 최적의 움직임 벡터가 될 수 있는 후보 움직임 벡터 b를 더할 수 있다. 이때 도출된 값이 a와 b 중에서 b에 가까운 값을 가진다면 최적의 움직임 벡터는 b인 것으로 판단할 수 있다. In the same manner, the decoding apparatus can confirm the difference value through the magnitude and sign of the difference value, and add the candidate motion vector b that can be an optimal motion vector to the identified difference value. If the derived value has a value close to b among a and b, it can be determined that the optimal motion vector is b.
한편, 상기 과정들을 모든 후보 움직임 벡터들에 대하여 수행한 결과, 최적의 움직임 벡터가 될 수 있는 움직임 벡터가 여러 개 도출될 수도 있다. 이러한 경우 복호화 장치가 어느 하나의 최적 움직임 벡터를 선정할 수 없으므로 부호화 장치는 최적의 움직임 벡터를 지시하는 정보를 생략할 수 없다. 즉, 후보 움직임 벡터 중에서 하나의 최적 움직임 벡터가 선정되지 않는 경우도 존재할 수 있으며, 이러한 경우에는 상기 방법을 적용하지 않는다. As a result of performing the above processes on all candidate motion vectors, several motion vectors that can be optimal motion vectors may be derived. In this case, since the decoding apparatus can not select any optimal motion vector, the encoding apparatus can not omit the information indicating the optimal motion vector. That is, there may be a case where one optimal motion vector is not selected from the candidate motion vectors. In this case, the above method is not applied.
여기서 최적의 움직임 벡터를 지시하는 정보를 생략하는 방법은 앞에서는 후보 움직임 벡터가 두개인 경우를 기준으로 설명하였으나, 복수의 후보 움직임 벡터가 존재하는 경우에도 같은 방법을 적용하는 것이 통상의 기술자에게 용이하게 이해될 수 있을 것이므로 더 이상 구체적인 설명은 생략한다. Herein, the method of omitting the information indicating the optimal motion vector has been described based on the case where there are two candidate motion vectors, but it is easy for the ordinary technician to apply the same method even when there are a plurality of candidate motion vectors And therefore no further explanation is given.
도 6은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제1 예시도이다. 도 7은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제2 예시도이다.6 is a first example of a region where a motion vector of a current block may exist when there are three candidate motion vectors. FIG. 7 is a second exemplary diagram illustrating an area where a motion vector of a current block may exist when there are three candidate motion vectors.
도 6 및 도 7을 참조하면, 후보 움직임 벡터가 a, b, c로 3개 존재할 경우(도면에서는 x 또는 y좌표를 기준으로 나타냄) 후보 움직임 벡터 사이의 간격(x또는 y좌표를 기준으로 인접한 후보 움직임 벡터 사이에 대한 간격들)은 a와 b사이, b와 c사이가 존재할 수 있다.6 and 7, when there are three candidate motion vectors a, b, and c (represented by x or y coordinates in the drawing), the interval between the candidate motion vectors (x, y, The intervals between candidate motion vectors) may be between a and b, and between b and c.
이때, 후보 움직임 벡터 사이의 간격 중 큰 간격을 DL로 정의하고, 작은 간격을 DS로 정의할 수 있다. 도 6 및 도 7과 같이 후보 움직임 벡터 a와 b 사이의 간격이 큰 간격이고, 후보 움직임 벡터 b와 c 사이의 간격이 작은 간격을 가진다면, DL과 DS는 다음의 수학식 2 및 수학식 3과 같다. In this case, a large interval between the candidate motion vectors may be defined as DL, and a small interval may be defined as DS. If the interval between the candidate motion vectors a and b is large and the interval between the candidate motion vectors b and c is small as shown in FIGS. 6 and 7, DL and DS are calculated by the following equations (2) and Respectively.
상기 수학식 2 및 수학식 3의 관계에서 현재 블록의 움직임 벡터와 최적의 움직임 벡터 사이의 차분값 사이의 관계가 다음의 수학식 4를 만족한다고 하자.The relationship between the difference value between the motion vector of the current block and the optimal motion vector in the relation of Equations (2) and (3) satisfies the following Equation (4).
상기 수학식 4의 조건에서, 현재 블록의 움직임 벡터가 위치하는 영역을 도시하면 도 6과 같다.In the condition of Equation (4), a region in which the motion vector of the current block is located is shown in FIG.
도 6을 참조하면, 후보 움직임 벡터 a가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 a를 기준으로 DS보다 크고 DL보다 작거나 같은 거리내에 위치하므로 제1 영역(61a) 및 제2 영역(62a)에 위치할 수 있다. 즉, 이 경우 차분값(k-a)는 양수 또는 음수 모두 가능할 수 있다.Referring to FIG. 6, when the candidate motion vector a is an optimal motion vector, the motion vector k of the current block is located within a distance that is larger than DS and less than or equal to DL on the basis of a, And may be located in the
또한, 후보 움직임 벡터 b가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 b를 기준으로 DS보다 크고 DL보다 작거나 같은 거리 내에 위치하므로, 제3 영역(61b)에 위치할 수 있다. 이때, 후보 움직임 벡터 b가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 b보다 크고, b를 기준으로 DS보다 큰 값을 가진다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 b보다 후보 움직임 벡터 c에 더 가까워지므로 후보 움직임 벡터 b가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터b가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 b보다 클 수 없으므로, 차분값(k-b)은 음수라는 것을 알 수 있다.In addition, when the candidate motion vector b is an optimal motion vector, the motion vector k of the current block is located within a distance greater than DS and smaller than or equal to DL on the basis of b, have. If the motion vector k of the current block is greater than b and the motion vector k of the current block is larger than the DS based on b in the case where the candidate motion vector b is the optimal motion vector, The candidate motion vector b is more approximate to the candidate motion vector c than the vector b. Therefore, when the candidate motion vector b is the optimal motion vector, the motion vector k of the current block can not be greater than b, so that the difference value k-b is negative.
또한, 후보 움직임 벡터 c가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 c를 기준으로 DS보다 크고 DL보다 작거나 같은 거리 내에 위치하므로 제4 영역(62c)에 위치할 수 있다. 이때, 후보 움직임 벡터 c가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 c보다 작고, c를 기준으로 DS보다 작은 값을 가진다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 c보다 후보 움직임 벡터 b에 더 가까워지므로 후보 움직임 벡터 c가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터c가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 c보다 작을 수 없으므로, 차분값(k-c)은 양수라는 것을 알 수 있다. In addition, when the candidate motion vector c is an optimal motion vector, the motion vector k of the current block may be located in the
도 6에 대한 설명을 종합하면, 최적의 움직임 벡터가 a일 때, 현재 블록의 움직임 벡터(k)는 제1 영역(61a) 및 제2 영역(62a)에 위치하고 제1 영역(61a)에서 최적의 움직임 벡터(a)와 현재 블록의 움직임 벡터(k) 사이의 차분값(k-a)은 음수가 되고, 제2 영역(62a)에서는 양수가 되므로 차분값(k-a)은 양수 및 음수 둘다 가질 수 있다. 따라서, 최적의 움직임 벡터가 a일 때 복호화 장치는 차분값의 부호를 알수 없으므로, 부호화 장치는 차분값(k-a)의 부호와 크기, 최적의 움직임 벡터를 지시하는 정보를 복호화 장치에 전송할 수 있다.6, when the optimal motion vector is a, the motion vector k of the current block is located in the
그러나, 최적의 움직임 벡터가 b이면, 현재 블록의 움직임 벡터(k)는 제3 영역(61b)에 위치하므로 차분값(k-b)의 부호가 음수라는 것을 복호화 장치가 알 수 있다. 또한, 최적의 움직임 벡터가 c이면 현재 블록의 움직임 벡터(k)는 제4 영역(62c)에 위치하므로 차분값(k-c)의 부호가 양수라는 것을 복호화 장치가 알 수 있다. 따라서, 최적의 움직임 벡터가 b 또는 c인 경우 부호화 장치는 차분값의 부호를 복호화 장치에 전달하는 것을 생략할 수 있다.However, if the optimal motion vector is b, since the motion vector k of the current block is located in the
한편, 다시 상기 수학식 2 및 수학식 3의 관계에서 현재 블록의 움직임 벡터와 최적의 움직임 벡터 사이의 차분값 사이의 관계가 다음의 수학식 5를 만족한다고 하자.Assume that the relationship between the difference between the motion vector of the current block and the optimal motion vector satisfies the following equation (5) in the above Equations (2) and (3).
상기 수학식 5의 조건에서, 현재 블록의 움직임 벡터(k)가 위치하는 영역을 도시하면 도 7과 같다.7 shows the area where the motion vector k of the current block is located under the condition of Equation (5).
도 7을 참조하면, 후보 움직임 벡터 a가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 a를 기준으로 DL보다 먼 거리 내에 위치하므로, 제1 영역(71a)에 위치할 수 있다. 이때, 후보 움직임 벡터 a가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 a보다 크고, a를 기준으로 DL보다 먼 거리에 위치한다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 a보다 후보 움직임 벡터 b에 더 가까워지므로 후보 움직임 벡터 a가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터a가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 a보다 클 수 없으므로, 차분값(k-a)은 음수일 수 있다.Referring to FIG. 7, when the candidate motion vector a is an optimal motion vector, the motion vector k of the current block is located within a distance greater than DL with respect to a, and thus may be located in the
또한, 후보 움직임 벡터 b가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 b를 기준으로 DL보다 먼 거리에 위치해야 한다. 이때, 후보 움직임 벡터 b가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 b를 기준으로 DL보다 먼 거리에 위치한다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 b보다 후보 움직임 벡터 a 또는 c에 더 가까워지므로 후보 움직임 벡터 b가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서, 후보 움직임 벡터가 b이면, 현재 블록의 움직임 벡터(k)가 존재하는 영역이 없게 되므로 후보 움직임 벡터는 b일 수 없다.In addition, when the candidate motion vector b is an optimal motion vector, the motion vector k of the current block should be located at a distance greater than DL with respect to b. In this case, if the candidate motion vector b is an optimal motion vector and the motion vector k of the current block is located at a distance greater than DL with respect to b, the motion vector k of the current block is a candidate Is closer to the motion vector a or c, the candidate motion vector b may deviate from the precondition that the motion vector is an optimal motion vector. Therefore, if the candidate motion vector is b, there is no region in which the motion vector k of the current block exists, so the candidate motion vector can not be b.
또한, 후보 움직임 벡터c가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 c를 기준으로 DL보다 큰 거리 내에 위치하므로, 제2 영역(72c)에 위치할 수 있다. 이때, 후보 움직임 벡터 c가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 c보다 작고, c를 기준으로 DL보다 먼 거리에 있다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 c보다 후보 움직임 벡터 b에 더 가까워지므로 후보 움직임 벡터 c가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터c가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 c보다 작을 수 없으므로, 차분값(k-c)은 항상 양수일 수 있다.In addition, when the candidate motion vector c is an optimal motion vector, the motion vector k of the current block is located in the
수학식 5를 전제조건으로 하여 도 7에 대한 설명을 종합하면, 최적의 움직임 벡터가 a일 때, 현재 블록의 움직임 벡터(k)는 제1 영역(71a)에 위치하고 제1 영역(71a)에서 최적의 움직임 벡터(a)와 현재 블록의 움직임 벡터(k) 사이의 차분값(k-a)은 음수라는 것을 복호화 장치가 알 수 있다. 따라서, 최적의 움직임 벡터가 a인 경우 부호화 장치는 차분값의 부호를 복호화 장치에 전달하는 것을 생략할 수 있다.Assuming Equation (5) as a precondition, the description of FIG. 7 is as follows. When the optimal motion vector is a, the motion vector k of the current block is located in the
또한, 최적의 움직임 벡터가 b일 때, 현재 블록의 움직임 벡터(k)는 존재하는 영역이 없다. 따라서, 수학식 5를 만족할 때 최적의 움직임 벡터는 b일 수 없으므로, 부호화 장치는 후보 움직임 벡터에서 b를 제외하고 a 나 c를 후보 움직임 벡터로 정의하고, a 및 c 중에서 최적의 움직임 벡터를 지시하는 정보를 생성하여 복호화 장치로 전송할 수 있고, 복호화 장치는 수학식 5를 만족하는지 판단하여 최적의 움직임 벡터를 지시하는 정보를 통해 a나 c를 최적의 움직임 벡터로 해석할 수 있다. 이러한 경우에는 후보 움직임 벡터가 하나 제외되므로 3개 중 하나를 지시하는 비트값(2bit)보다 작은 비트값(1bit)을 사용할 수 있어 부호화 및 복호화의 효율을 증가시킬 수 있다.Also, when the optimal motion vector is b, the motion vector k of the current block does not exist. Therefore, when the equation (5) is satisfied, the optimal motion vector can not be b. Therefore, the coder decides a or c as a candidate motion vector except for b in the candidate motion vector, And the decoding apparatus can determine whether the equation (5) is satisfied, and analyze a or c as an optimal motion vector through the information indicating the optimal motion vector. In this case, since one candidate motion vector is excluded, a bit value (1 bit) smaller than a bit value (2 bits) indicating one of the three motion vectors can be used, thereby increasing the efficiency of encoding and decoding.
또한, 최적의 움직임 벡터가 c일 때, 현재 블록의 움직임 벡터(k)는 제2 영역(72c)에 위치하고 제2 영역(72c에서 최적의 움직임 벡터(c)와 현재 블록의 움직임 벡터(k) 사이의 차분값(k-c)은 양수라는 것을 복호화 장치가 알 수 있다. 따라서, 최적의 움직임 벡터가 c인 경우 부호화 장치는 차분값의 부호를 복호화 장치에 전달하는 것을 생략할 수 있다.When the optimal motion vector is c, the motion vector k of the current block is located in the
도 8은 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 방법에 대한 흐름도이다.8 is a flowchart illustrating an image decoding method using inter-picture prediction according to an embodiment of the present invention.
도 8을 참조하면 화면 간 예측을 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계(S100), 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계(S110), 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120) 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계(S130)를 포함할 수 있다.Referring to FIG. 8, a method of decoding an image using inter-picture prediction includes receiving a bitstream (S100), obtaining a part of information indicating a motion vector of a current block to be decoded in the received bitstream (S110) (S120) of obtaining a motion vector of the current block by determining information other than the partial information using the obtained information, and generating a predictive block of the current block through inter-picture prediction using the motion vector of the current block (S130). ≪ / RTI >
여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block may include at least one of a magnitude of a difference value between a best motion vector selected from two or more candidate motion vectors and a motion vector of the current block, a sign of the difference value, Or the like.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120)는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of obtaining the motion vector of the current block (S120) may include the steps of: determining whether the magnitude of the difference value corresponds to a preset condition; and if the predetermined condition is satisfied, And determining the sign of the difference value based on the obtained optimal motion vector.
여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval between adjacent vectors among the two or more candidate motion vectors.
여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.The step of determining whether the magnitude of the differential value corresponds to a predetermined condition may include calculating a value having a largest interval between adjacent vectors and a minimum interval between the adjacent vectors, And comparing the minimum value with the magnitude of the difference value.
여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the predetermined condition may be set based on an interval obtained by dividing the interval between the adjacent vectors by half.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120)는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block (S120) may include acquiring the difference value using the magnitude of the difference value and the sign of the difference value, calculating the difference value using the two or more candidate motion vectors Determining an estimated motion vector of the current block by adding a first candidate motion vector of the first candidate motion vector to the first candidate motion vector to determine whether the estimated motion vector has a coordinate value closest to the first candidate motion vector among the two or more candidate motion vectors; And determining the optimal motion vector based on the determination result.
여기서 상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는, 상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행될 수 있다.Here, the step of determining the estimated motion vector and the step of determining may be repeatedly performed by substituting the remaining candidate motion vectors, excluding the first candidate motion vector, into the first candidate motion vector.
여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.The determining of the optimal motion vector may determine the candidate motion vector as the optimal motion vector if the candidate motion vector having the closest coordinate value as a result of the iteration is unique.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120)는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block (S120) may include: determining whether a magnitude of the differential value corresponds to a preset condition; and if the predetermined condition is satisfied, acquiring a motion vector of at least one of the two or more candidate motion vectors The motion vector of the candidate motion vector may be excluded from the candidate motion vector and the optimal motion vector may be determined from among the remaining candidate motion vectors.
도 9는 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 장치에 대한 구성도이다.9 is a block diagram of an image decoding apparatus using inter-picture prediction according to an embodiment of the present invention.
도 9를 참조하면 화면 간 예측을 이용한 영상 복호화 장치(200)는, 적어도 하나의 프로세서(processor, 210) 및 상기 적어도 하나의 프로세서(210)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 220)를 포함할 수 있다.9, an
여기서 영상 복호화 장치(200)는 영상 부호화 장치로부터 비트스트림을 유무선 네트워크를 통해 수신하는 통신 모듈(230)을 더 포함할 수 있다.Here, the
여기서 영상 복호화 장치(200)는 영상 복호화 과정에 필요한 참조 픽쳐, 복호화된 블록 등을 저장하는 로컬 저장소(240)를 더 포함할 수 있다.Here, the
여기서 상기 적어도 하나의 단계는, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Wherein the at least one step comprises the steps of: receiving a bitstream; obtaining a part of information indicating a motion vector of a current block to be decoded in the received bitstream; Obtaining a motion vector of the current block by determining a motion vector of the current block, and generating a prediction block of the current block through inter-picture prediction using the motion vector of the current block.
여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block may include at least one of a magnitude of a difference value between a best motion vector selected from two or more candidate motion vectors and a motion vector of the current block, a sign of the difference value, Or the like.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring a motion vector of the current block includes the steps of: determining whether a magnitude of the difference value corresponds to a preset condition; and if the predetermined condition is satisfied, And determining the sign of the difference value based on the motion vector of the motion vector.
여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval between adjacent vectors among the two or more candidate motion vectors.
여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.The step of determining whether the magnitude of the differential value corresponds to a predetermined condition may include calculating a value having a largest interval between adjacent vectors and a minimum interval between the adjacent vectors, And comparing the minimum value with the magnitude of the difference value.
여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the predetermined condition may be set based on an interval obtained by dividing the interval between the adjacent vectors by half.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.The obtaining of the motion vector of the current block may include obtaining the difference value using the magnitude of the difference value and the sign of the difference value, calculating a difference value between the first and second motion vectors of the two or more candidate motion vectors, Determining an estimated motion vector of the current block by adding a candidate motion vector, determining whether the estimated motion vector has a coordinate value closest to the first candidate motion vector among the two or more candidate motion vectors, And determining, based on the motion vector, the optimal motion vector.
여기서 상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는, 상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행될 수 있다.Here, the step of determining the estimated motion vector and the step of determining may be repeatedly performed by substituting the remaining candidate motion vectors, excluding the first candidate motion vector, into the first candidate motion vector.
여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.The determining of the optimal motion vector may determine the candidate motion vector as the optimal motion vector if the candidate motion vector having the closest coordinate value as a result of the iteration is unique.
여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Wherein the step of acquiring a motion vector of the current block includes the steps of: determining whether a magnitude of the differential value corresponds to a predetermined condition; and determining whether a motion vector of at least one of the two or more candidate motion vectors From the candidate motion vectors and determining the optimal motion vector among the remaining candidate motion vectors.
여기서 영상 복호화 장치(200)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Here, the
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the present invention can be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention or may be available to those skilled in the computer software.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media include hardware devices that are specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다. Also, the above-described method or apparatus may be implemented by combining all or a part of the configuration or function, or may be implemented separately.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that
Claims (20)
비트스트림을 수신하는 단계;
수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계;
획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계; 및
상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하는, 영상 복호화 방법.As an image decoding method using inter picture prediction,
Receiving a bitstream;
Obtaining a part of information indicating a motion vector of a current block to be decoded in the received bitstream;
Acquiring a motion vector of the current block by determining information other than the part using the acquired information; And
And generating a prediction block of the current block through inter-picture prediction using the motion vector of the current block.
상기 현재 블록의 움직임 벡터를 지시하는 정보는,
두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함하는, 영상 복호화 방법.In claim 1,
Wherein the information indicating the motion vector of the current block includes:
A motion vector of the current block, a difference value between a motion vector of the current block and a motion vector of the current block, information indicating a sign of the difference value, and information indicating the optimal motion vector, among the two or more candidate motion vectors, Way.
상기 현재 블록의 움직임 벡터를 획득하는 단계는,
상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계; 및
상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함하는, 영상 복호화 방법.In claim 2,
Wherein the step of obtaining the motion vector of the current block comprises:
Determining whether a magnitude of the differential value corresponds to a preset condition; And
And determining a sign of the difference value based on an optimal motion vector obtained from information indicating the optimal motion vector, when the predetermined condition is satisfied.
상기 미리 설정된 조건은,
상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정되는, 영상 복호화 방법.In claim 3,
The predetermined condition is that,
Wherein the motion vector is set based on an interval between adjacent vectors among the two or more candidate motion vectors.
상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는,
상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계; 및
상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함하는, 영상 복호화 방법.In claim 4,
Wherein the step of determining whether the magnitude of the difference value corresponds to a predetermined condition includes:
Deriving a value having the largest interval between the adjacent vectors and a value having the smallest interval between the adjacent vectors; And
And comparing the largest value and the smallest value with a magnitude of the difference value.
상기 미리 설정된 조건은,
상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정되는, 영상 복호화 방법.In claim 4,
The predetermined condition is that,
And the interval between the adjacent vectors is divided by half.
상기 현재 블록의 움직임 벡터를 획득하는 단계는,
상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계;
획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계;
상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계; 및
판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함하는, 영상 복호화 방법.In claim 2,
Wherein the step of obtaining the motion vector of the current block comprises:
Obtaining the difference value using the magnitude of the difference value and the sign of the difference value;
Determining an estimated motion vector of the current block by adding a first candidate motion vector of the two or more candidate motion vectors to the obtained difference value;
Determining whether the estimated motion vector has a coordinate value closest to the first candidate motion vector among the two or more candidate motion vectors; And
And determining the optimal motion vector based on the determination result.
상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는,
상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행되는, 영상 복호화 방법. In claim 7,
Wherein the step of determining the estimated motion vector comprises:
And substituting the remaining candidate motion vectors excluding the first candidate motion vector for the first candidate motion vector.
상기 최적의 움직임 벡터를 결정하는 단계는,
상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정하는, 영상 복호화 방법.In claim 8,
Wherein determining the optimal motion vector comprises:
Wherein if the candidate motion vector having the closest coordinate value as a result of the iterative process is unique, the candidate motion vector is determined as the optimal motion vector.
상기 현재 블록의 움직임 벡터를 획득하는 단계는,
상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계; 및
상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함하는, 영상 복호화 방법.In claim 2,
Wherein the step of obtaining the motion vector of the current block comprises:
Determining whether a magnitude of the differential value corresponds to a preset condition; And
And determining the optimal motion vector among the remaining candidate motion vectors by excluding at least one motion vector of the two or more candidate motion vectors from the candidate motion vectors if the predetermined condition is met. .
적어도 하나의 프로세서(processor); 및
상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함하고,
상기 적어도 하나의 단계는,
비트스트림을 수신하는 단계;
수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계;
획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계; 및
상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하는, 영상 복호화 장치.An image decoding apparatus using inter picture prediction,
At least one processor; And
A memory for storing instructions that direct the at least one processor to perform at least one step,
Wherein the at least one step comprises:
Receiving a bitstream;
Obtaining a part of information indicating a motion vector of a current block to be decoded in the received bitstream;
Acquiring a motion vector of the current block by determining information other than the part using the acquired information; And
And generating a prediction block of the current block through inter-picture prediction using the motion vector of the current block.
상기 현재 블록의 움직임 벡터를 지시하는 정보는,
두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함하는, 영상 복호화 장치.In claim 11,
Wherein the information indicating the motion vector of the current block includes:
A motion vector of the current block, a difference value between a motion vector of the current block and a motion vector of the current block, information indicating a sign of the difference value, and information indicating the optimal motion vector, among the two or more candidate motion vectors, Device.
상기 현재 블록의 움직임 벡터를 획득하는 단계는,
상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계; 및
상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함하는, 영상 복호화 장치.In claim 12,
Wherein the step of obtaining the motion vector of the current block comprises:
Determining whether a magnitude of the differential value corresponds to a preset condition; And
And determining a sign of the difference value based on an optimal motion vector obtained from information indicating the optimal motion vector, when the predetermined condition is satisfied.
상기 미리 설정된 조건은,
상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정되는, 영상 복호화 장치.In claim 13,
The predetermined condition is that,
Wherein the motion vector is set based on an interval between adjacent vectors among the two or more candidate motion vectors.
상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는,
상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계; 및
상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함하는, 영상 복호화 장치.In claim 14,
Wherein the step of determining whether the magnitude of the difference value corresponds to a predetermined condition includes:
Deriving a value having the largest interval between the adjacent vectors and a value having the smallest interval between the adjacent vectors; And
And comparing the largest value and the smallest value with a magnitude of the difference value.
상기 미리 설정된 조건은,
상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정되는, 영상 복호화 장치.In claim 14,
The predetermined condition is that,
And an interval obtained by dividing the interval between the adjacent vectors by half.
상기 현재 블록의 움직임 벡터를 획득하는 단계는,
상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계;
획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계;
상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계; 및
판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함하는, 영상 복호화 장치.In claim 12,
Wherein the step of obtaining the motion vector of the current block comprises:
Obtaining the difference value using the magnitude of the difference value and the sign of the difference value;
Determining an estimated motion vector of the current block by adding a first candidate motion vector of the two or more candidate motion vectors to the obtained difference value;
Determining whether the estimated motion vector has a coordinate value closest to the first candidate motion vector among the two or more candidate motion vectors; And
And determining the optimal motion vector based on the determination result.
상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는,
상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행되는, 영상 복호화 장치. In claim 17,
Wherein the step of determining the estimated motion vector comprises:
And the candidate motion vectors excluding the first candidate motion vector are substituted into the first candidate motion vector.
상기 최적의 움직임 벡터를 결정하는 단계는,
상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정하는, 영상 복호화 장치.In claim 18,
Wherein determining the optimal motion vector comprises:
And determines the candidate motion vector as the optimal motion vector if the candidate motion vector having the closest coordinate value as the result of the iteration is unique.
상기 현재 블록의 움직임 벡터를 획득하는 단계는,
상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계; 및
상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함하는, 영상 복호화 장치.In claim 12,
Wherein the step of obtaining the motion vector of the current block comprises:
Determining whether a magnitude of the differential value corresponds to a preset condition; And
And determining the optimal motion vector among the remaining candidate motion vectors by excluding at least one motion vector of the two or more candidate motion vectors from the candidate motion vector if the predetermined condition is met. .
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/KR2018/000062 WO2018124855A1 (en) | 2017-01-02 | 2018-01-02 | Method and apparatus for decoding image using inter-picture prediction |
| US16/475,217 US11240526B2 (en) | 2017-01-02 | 2018-01-02 | Method and apparatus for decoding image using interpicture prediction |
| US17/557,133 US11818386B2 (en) | 2017-01-02 | 2021-12-21 | Method and apparatus for decoding image using interpicture prediction |
| KR1020230131205A KR102736716B1 (en) | 2017-01-02 | 2023-09-27 | Image decoding method and apparatus using inter picture prediction |
| US18/483,860 US12267522B2 (en) | 2017-01-02 | 2023-10-10 | Method and apparatus for decoding image using interpicture prediction |
| US19/061,130 US20250193436A1 (en) | 2017-01-02 | 2025-02-24 | Method and apparatus for decoding image using interpicture prediction |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20170000404 | 2017-01-02 | ||
| KR1020170000404 | 2017-01-02 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020230131205A Division KR102736716B1 (en) | 2017-01-02 | 2023-09-27 | Image decoding method and apparatus using inter picture prediction |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20180080131A true KR20180080131A (en) | 2018-07-11 |
| KR102586198B1 KR102586198B1 (en) | 2023-10-06 |
Family
ID=62917341
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020180000034A Active KR102586198B1 (en) | 2017-01-02 | 2018-01-02 | Image decoding method and apparatus using inter picture prediction |
| KR1020240171802A Pending KR20250001975A (en) | 2017-01-02 | 2024-11-27 | Image decoding method and apparatus using inter picture prediction |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020240171802A Pending KR20250001975A (en) | 2017-01-02 | 2024-11-27 | Image decoding method and apparatus using inter picture prediction |
Country Status (1)
| Country | Link |
|---|---|
| KR (2) | KR102586198B1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20140016823A (en) * | 2012-07-24 | 2014-02-10 | 한국전자통신연구원 | Video decoding method and apparatus using the same |
| KR20140022009A (en) * | 2011-03-21 | 2014-02-21 | 엘지전자 주식회사 | Method for selecting motion vector predictor and device using same |
| KR20160143584A (en) * | 2015-06-05 | 2016-12-14 | 인텔렉추얼디스커버리 주식회사 | Image encoding/decoding method and image decoding apparatus using motion vector precision |
-
2018
- 2018-01-02 KR KR1020180000034A patent/KR102586198B1/en active Active
-
2024
- 2024-11-27 KR KR1020240171802A patent/KR20250001975A/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20140022009A (en) * | 2011-03-21 | 2014-02-21 | 엘지전자 주식회사 | Method for selecting motion vector predictor and device using same |
| KR20140016823A (en) * | 2012-07-24 | 2014-02-10 | 한국전자통신연구원 | Video decoding method and apparatus using the same |
| KR20160143584A (en) * | 2015-06-05 | 2016-12-14 | 인텔렉추얼디스커버리 주식회사 | Image encoding/decoding method and image decoding apparatus using motion vector precision |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102586198B1 (en) | 2023-10-06 |
| KR20250001975A (en) | 2025-01-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11825099B2 (en) | Image encoding/decoding method and apparatus using intra-screen prediction | |
| US11368675B2 (en) | Method and device for encoding and decoding intra-frame prediction | |
| KR102635983B1 (en) | Methods of decoding using skip mode and apparatuses for using the same | |
| US10674165B2 (en) | Constrained position dependent intra prediction combination (PDPC) | |
| KR101269116B1 (en) | Decoding method of inter coded moving picture | |
| AU2019350336B2 (en) | Image encoding/decoding method and device | |
| KR20130067280A (en) | Decoding method of inter coded moving picture | |
| KR102594692B1 (en) | Image decoding method and device for chroma components | |
| KR102492073B1 (en) | Method and apparatus for video coding/decoding using intra prediction | |
| US20210289202A1 (en) | Intra prediction method and apparatus for performing adaptive filtering on reference pixel | |
| US20250193436A1 (en) | Method and apparatus for decoding image using interpicture prediction | |
| KR20180080114A (en) | Intra prediction method considering redundancy of prediction blocks and video decoding apparatus performing intra prediction | |
| KR102640264B1 (en) | Image decoding method and device for chroma quantization parameter data | |
| CN114830646A (en) | Image encoding method and image decoding method | |
| KR101796876B1 (en) | A method for video encoding using motion estimation and an apparatus thereof | |
| US12184846B2 (en) | Intra prediction method and apparatus for performing adaptive filtering on reference pixel | |
| KR102586198B1 (en) | Image decoding method and apparatus using inter picture prediction | |
| KR20210152576A (en) | Video coding method and apparatus based on deblocking filtering | |
| KR20240153950A (en) | Intraprediction method and apparatus for performing adaptive filtering on reference pixels | |
| WO2025151768A1 (en) | Method, apparatus, and medium for video processing | |
| WO2025072627A1 (en) | Signalling improvement for in-loop filtering in video coding | |
| CN116684577A (en) | Fast Affine Mode Decision Based on Motion Vector Difference | |
| CN119563324A (en) | Adaptive loop filter with virtual boundaries and multi-sample sources | |
| KR20170126817A (en) | Fast video encoding method and apparatus for the same |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| A201 | Request for examination | ||
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| PA0107 | Divisional application |
St.27 status event code: A-0-1-A10-A18-div-PA0107 St.27 status event code: A-0-1-A10-A16-div-PA0107 |
|
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |