KR102586198B1 - Image decoding method and apparatus using inter picture prediction - Google Patents

Image decoding method and apparatus using inter picture prediction Download PDF

Info

Publication number
KR102586198B1
KR102586198B1 KR1020180000034A KR20180000034A KR102586198B1 KR 102586198 B1 KR102586198 B1 KR 102586198B1 KR 1020180000034 A KR1020180000034 A KR 1020180000034A KR 20180000034 A KR20180000034 A KR 20180000034A KR 102586198 B1 KR102586198 B1 KR 102586198B1
Authority
KR
South Korea
Prior art keywords
motion vector
current block
size
block
information
Prior art date
Application number
KR1020180000034A
Other languages
Korean (ko)
Other versions
KR20180080131A (en
Inventor
정제창
김기백
이도경
Original Assignee
한양대학교 산학협력단
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to US16/475,217 priority Critical patent/US11240526B2/en
Priority to PCT/KR2018/000062 priority patent/WO2018124855A1/en
Publication of KR20180080131A publication Critical patent/KR20180080131A/en
Priority to US17/557,133 priority patent/US11818386B2/en
Priority to KR1020230131205A priority patent/KR20230145002A/en
Application granted granted Critical
Publication of KR102586198B1 publication Critical patent/KR102586198B1/en
Priority to US18/483,860 priority patent/US20240040143A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/94Vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

화면 간 예측을 이용한 영상 복호화 방법 및 장치가 개시된다. 화면 간 예측을 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함한다. 따라서, 영상 부호화 및 복호화의 효율을 향상시킬 수 있다.A video decoding method and device using inter-screen prediction are disclosed. An image decoding method using inter-screen prediction includes the steps of receiving a bitstream, acquiring part of the information indicating the motion vector of the current block to be decoded from the received bitstream, and excluding the part by using the obtained information. It includes obtaining a motion vector of the current block by determining remaining information, and generating a prediction block of the current block through inter-screen prediction using the motion vector of the current block. Therefore, the efficiency of video encoding and decoding can be improved.

Description

화면 간 예측을 이용한 영상 복호화 방법 및 장치{IMAGE DECODING METHOD AND APPARATUS USING INTER PICTURE PREDICTION}Image decoding method and device using inter-picture prediction {IMAGE DECODING METHOD AND APPARATUS USING INTER PICTURE PREDICTION}

본 발명은 화면 간 예측을 이용한 영상 복호화 방법 및 장치에 관한 것으로, 더욱 상세하게는 현재 블록의 화면 간 예측에 필요한 움직임 벡터를 부호화 및 복호화하는데 있어서 움직임 벡터의 차분값의 크기, 부호 및 최적의 움직임 벡터를 지시하는 정보 중 일부만 이용해서 나머지 정보들을 결정함으로써 부호화 장치와 복호화 장치 상호간 주고받는 데이터 또는 비트수를 감소시키는 기술에 관한 것이다.The present invention relates to an image decoding method and device using inter-screen prediction, and more specifically, to the size, sign, and optimal motion of the difference value of the motion vector in encoding and decoding the motion vector required for inter-screen prediction of the current block. This relates to a technology that reduces the number of data or bits exchanged between an encoding device and a decoding device by using only part of the information indicating a vector to determine the remaining information.

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)의 영상 압축을 위한 차세대 영상 압축 기술 표준을 제정하고자 활발히 노력하고 있다.The respective organizations, called the ISO/ISE MPEG (Moving Picture Experts Group) and the ITU-T VCEG (Video Coding Experts Group), formed the Joint Collaborative Team on Video Coding (JCV-VC) and established the ISO/IEC MPEG-H in January 2013. HEVC (High Efficiency Video Coding)/ITU-T H.265 video compression standard technology has been established. In addition, in order to respond to the trend of popularization of high-definition video due to the rapid development of information and communication technology, ISO/ISE MPEG and ITU-T VCEG organized the Joint Video Exploration Team (JVET) at the 22nd JCT-VC Geneva meeting. Therefore, we are actively working to establish a next-generation video compression technology standard for video compression of UHD (Ultra High Definition) quality, which is clearer than HD (High Definition) quality.

한편, 기존의 비디오 압축 표준 기술에 따르면, 부호화할 현재 블록에 대한 예측 블록을 생성하고, 예측 블록과 현재 블록의 차분값을 부호화함으로써 부호화되는 데이터량을 줄이고 있는데, 이러한 예측 기술에는 동일한 화면 내에서 공간적으로 인접한 블록과의 유사성을 이용하여 현재 블록에 대한 예측 블록을 생성하는 화면 내 예측 방법과, 시간적으로 인접한 화면의 블록과의 유사성을 이용하여 현재 블록에 대한 예측 블록을 생성하는 화면 간 예측 방법이 있다.Meanwhile, according to the existing video compression standard technology, the amount of encoded data is reduced by generating a prediction block for the current block to be encoded and encoding the difference between the prediction block and the current block. This prediction technology involves reducing the amount of encoded data within the same screen. An intra-screen prediction method that generates a prediction block for the current block using similarity with spatially adjacent blocks, and an inter-screen prediction method that generates a prediction block for the current block using similarity with blocks in temporally adjacent screens. There is.

이때, 화면 간 예측은 현재 블록과 시간적으로 인접한 화면 내에서 유사성이 있는 블록을 지시하는 정보로 움직임 벡터를 사용한다. 이때, 움직임 벡터를 그대로 부호화할 경우 비트값이 매우 클 수 있기 때문에 부호화 장치는 현재 블록과 인접한 이웃 블록의 움직임 벡터를 이용하여 후보 움직임 벡터들을 구성하고, 후보 움직임 벡터들 중에서 선정된 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값을 부호화하여 복호화 장치에 전송한다.At this time, inter-screen prediction uses a motion vector as information indicating blocks with similarity within screens temporally adjacent to the current block. At this time, since the bit value can be very large when the motion vector is encoded as is, the encoding device constructs candidate motion vectors using the motion vectors of the current block and adjacent neighboring blocks, and selects the optimal motion vector from among the candidate motion vectors. The difference value between and the motion vector of the current block is encoded and transmitted to the decoding device.

그러나, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값을 부호화하는 경우에도 최적의 움직임 벡터가 현재 블록의 움직임 벡터와 많이 상이할 경우에는 비트값 소모 감소효과가 미미하다. 따라서, 영상 부호화 및 복호화의 효율을 향상시키기 위해 부호화 장치와 복호화 장치 상호간에 전달되는 정보량을 줄일 수 있는 방안이 필요한 실정이다.However, even when encoding the difference value between the optimal motion vector and the motion vector of the current block, if the optimal motion vector is very different from the motion vector of the current block, the bit value consumption reduction effect is minimal. Therefore, in order to improve the efficiency of video encoding and decoding, there is a need for a method to reduce the amount of information transmitted between the encoding device and the decoding device.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 화면 간 예측을 이용한 영상 복호화 방법을 제공하는 데 있다.The purpose of the present invention to solve the above problems is to provide a video decoding method using inter-screen prediction.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 화면 간 예측을 이용한 영상 복호화 장치를 제공하는 데 있다.Another purpose of the present invention to solve the above problems is to provide a video decoding device using inter-screen prediction.

상기 목적을 달성하기 위한 본 발명의 일 측면은, 화면 간 예측을 이용한 영상 복호화 방법을 제공한다.One aspect of the present invention to achieve the above object provides a video decoding method using inter-screen prediction.

여기서 화면 간 예측을 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Here, the video decoding method using inter-screen prediction includes the steps of receiving a bitstream, acquiring part of the information indicating the motion vector of the current block to be decoded from the received bitstream, and using the obtained information to decode the part. It may include obtaining a motion vector of the current block by determining the remaining information, and generating a prediction block of the current block through inter-screen prediction using the motion vector of the current block.

여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block includes the size of the difference value between the motion vector of the current block and the optimal motion vector selected from two or more candidate motion vectors, the sign of the difference value, and the optimal motion vector. It may include at least one of the information indicating.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block includes determining whether the size of the difference value corresponds to a preset condition, and if it corresponds to the preset condition, the optimal motion vector obtained from the information indicating the optimal motion vector. It may include determining the sign of the difference value based on the motion vector.

여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on the interval between adjacent vectors among the two or more candidate motion vectors.

여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.Here, the step of determining whether the size of the difference value corresponds to a preset condition includes deriving the largest value of the gap between the adjacent vectors and the smallest value of the gap between the adjacent vectors, and the largest value. and comparing the smallest value with the size of the difference value.

여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval divided by half the interval between adjacent vectors.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block includes obtaining the difference value using the size of the difference value and the sign of the difference value, and adding the first of the two or more candidate motion vectors to the obtained difference value. Determining an estimated motion vector of the current block by adding candidate motion vectors; 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 a result. As a basis, it may include determining the optimal motion vector.

여기서 상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는, 상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행될 수 있다.Here, the step of determining the estimated motion vector and the step of judging may be repeatedly performed by substituting the remaining candidate motion vectors excluding the first candidate motion vector into the first candidate motion vector.

여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.Here, in the step of determining the optimal motion vector, if the candidate motion vector with the closest coordinate value is unique as a result of the repeated performance, the candidate motion vector may be determined as the optimal motion vector.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of obtaining the motion vector of the current block includes determining whether the size of the difference value corresponds to a preset condition, and if the size of the difference value corresponds to the preset condition, at least one motion vector among the two or more candidate motion vectors. It may include excluding from the candidate motion vectors and determining the optimal motion vector among the remaining candidate motion vectors.

상기 목적을 달성하기 위한 본 발명의 다른 측면은 화면 간 예측을 이용한 영상 복호화 장치를 제공한다.Another aspect of the present invention for achieving the above object provides a video decoding device using inter-screen prediction.

여기서 화면 간 예측을 이용한 영상 복호화 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.Here, the image decoding device using inter-screen prediction may include at least one processor and a memory that stores instructions that instruct the at least one processor to perform at least one step. there is.

여기서 상기 적어도 하나의 단계는, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Here, the at least one step includes receiving a bitstream, obtaining part of the information indicating the motion vector of the current block to be decoded from the received bitstream, and using the obtained information to obtain the remaining information except for the part. It may include obtaining a motion vector of the current block by determining , and generating a prediction block of the current block through inter-screen prediction using the motion vector of the current block.

여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block includes the size of the difference value between the motion vector of the current block and the optimal motion vector selected from two or more candidate motion vectors, the sign of the difference value, and the optimal motion vector. It may include at least one of the information indicating.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block includes determining whether the size of the difference value corresponds to a preset condition, and if it corresponds to the preset condition, the optimal motion vector obtained from the information indicating the optimal motion vector. It may include determining the sign of the difference value based on the motion vector.

여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on the interval between adjacent vectors among the two or more candidate motion vectors.

여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.Here, the step of determining whether the size of the difference value corresponds to a preset condition includes deriving the largest value of the gap between the adjacent vectors and the smallest value of the gap between the adjacent vectors, and the largest value. and comparing the smallest value with the size of the difference value.

여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval divided by half the interval between adjacent vectors.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block includes obtaining the difference value using the size of the difference value and the sign of the difference value, and adding the first of the two or more candidate motion vectors to the obtained difference value. Determining an estimated motion vector of the current block by adding candidate motion vectors; 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 a result. As a basis, it may include determining the optimal motion vector.

여기서 상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는, 상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행될 수 있다.Here, the step of determining the estimated motion vector and the step of judging may be repeatedly performed by substituting the remaining candidate motion vectors excluding the first candidate motion vector into the first candidate motion vector.

여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.Here, in the step of determining the optimal motion vector, if the candidate motion vector with the closest coordinate value is unique as a result of the repeated performance, the candidate motion vector may be determined as the optimal motion vector.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of obtaining the motion vector of the current block includes determining whether the size of the difference value corresponds to a preset condition, and if the size of the difference value corresponds to the preset condition, at least one motion vector among the two or more candidate motion vectors. It may include excluding from the candidate motion vectors and determining the optimal motion vector among the remaining candidate motion vectors.

상기와 같은 본 발명에 따른 화면 간 예측을 이용한 영상 복호화 방법 및 장치를 이용할 경우에는 부호화 및 복호화 과정에서 소모되는 비트 수를 줄일 수 있다.When using the video decoding method and device using inter-screen prediction according to the present invention as described above, the number of bits consumed in the encoding and decoding process can be reduced.

따라서, 영상 압축률이 향상될 수 있는 장점이 있다.Therefore, there is an advantage that the image compression rate 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.
Figure 2 is a block diagram of a video encoding device according to an embodiment of the present invention.
Figure 3 is a configuration diagram of a video decoding device according to an embodiment of the present invention.
Figure 4 is an example diagram of a method for determining a candidate motion vector for setting a motion vector of a current block in inter-screen prediction according to an embodiment of the present invention.
Figure 5 is an example diagram showing an area where the motion vector of the current block can exist when there are two candidate motion vectors.
Figure 6 is a first example diagram showing an area where the motion vector of the current block can exist when there are three candidate motion vectors.
Figure 7 is a second example diagram showing an area where the motion vector of the current block can exist when there are three candidate motion vectors.
Figure 8 is a flowchart of a video decoding method using inter-screen prediction according to an embodiment of the present invention.
Figure 9 is a configuration diagram of a video decoding device using inter-screen prediction according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention. While describing each drawing, similar reference numerals are used for similar components.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, a first component may be named a second component, and similarly, the second component may also be named a first component without departing from the scope of the present invention. The term and/or includes any of a plurality of related stated items or a combination of a plurality of related stated items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is said to be "connected" or "connected" to another component, it is understood that it may be directly connected to or connected to the other component, but that other components may exist in between. It should be. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments and are not intended to limit the invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the technical field to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and unless explicitly defined in the present application, should not be interpreted in an ideal or excessively formal sense. No.

통상적으로 영상은 일련의 정지 영상(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 픽쳐를 참조 픽쳐를 이용할 수 있으나, 이는 부호화/복호화의 설정에 의해 위의 정의 또한 변경될 수 있다. Typically, an image may be composed of a series of still images, and these 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 represent one of a progressive signal, a frame in an interlace signal, or a field, and when encoding/decoding is performed on a frame basis, the image is a 'frame' or a field. When performed as a unit, it can be expressed as a ‘field’. Although the present invention is described assuming a progressive signal, it may also be applied to an interlace signal. As a higher-level concept, units such as GOP and sequence may exist, and each picture may be divided into predetermined areas such as slices, tiles, and blocks. Additionally, one GOP may include units such as I pictures, P pictures, and B pictures. An I picture may refer to a picture that is encoded/decoded on its own without using a reference picture, and P pictures and B pictures use a reference picture to perform processes such as motion estimation and motion compensation. It may refer to a picture that is encoded/decoded. Generally, in the case of P pictures, I pictures and P pictures can be used as reference pictures, and in the case of B pictures, I pictures and P pictures can be used as reference pictures, but this may also change the above definition depending on the encoding/decoding settings. You can.

여기서 부호화/복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 하며, 참조되는 블록 또는 화소를 참조 블록(Reference Block), 참조 화소(Reference Pixel)라고 한다. 또한, 참조되는 데이터(Reference Data)는 공간 영역(Spatial Domain)의 화소값 뿐만 아니라 주파수 영역(Frequency Domain)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다. 예를 들어, 예측부에서 화면 내 예측 관련 정보 또는 움직임 관련 정보, 변환부/역변환부에서 변환 관련 정보, 양자화부/역양자화부에서 양자화 관련 정보, 부호화부/복호화부에서는 부호화/복호화 관련 정보(문맥 정보), 인루프 필터부에서는 필터 관련 정보 등이 해당될 수 있다.Here, the picture referenced for encoding/decoding is called a reference picture, and the referenced block or pixel is called a reference block or reference pixel. In addition, reference data may be not only pixel values in the spatial domain, but also coefficient values in the frequency domain, and various encoding/decoding information generated and determined during the encoding/decoding process. For example, in-screen prediction-related information or motion-related information in the prediction unit, transformation-related information in the transform/inverse transform unit, quantization-related information in the quantization/inverse quantization unit, and encoding/decoding-related information in the encoder/decoder ( context information), and in the in-loop filter unit, filter-related information, etc. may be applicable.

영상을 이루는 최소 단위는 화소(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 smallest unit that makes up an image may be a pixel, and the number of bits used to express one pixel is called bit depth. Generally, the bit depth can be 8 bits, and depending on the encoding settings, higher bit depths can be supported. At least one bit depth may be supported depending on the color space. Additionally, it may be composed of at least one color space depending on the color format of the image. Depending on the color format, it may consist of one or more pictures with a certain size or one or more pictures with a different size. 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), and in this case, the chrominance component and the luminance component The composition ratio can be 1:2 horizontally and vertically. As another example, in the case of 4:4:4, the horizontal and vertical ratios can be the same. When composed of more than one color space as in the above example, the picture can be divided into each color space.

본 발명에서는 일부 컬러 포맷(본 예에서, YCbCr)의 일부 컬러 공간(본 예에서, Y)을 기준으로 설명할 것이며, 컬러 포맷에 따른 다른 컬러 공간(본 예에서, Cb, Cr)에도 동일하거나 비슷한 적용(특정 컬러 공간에 의존적인 설정)을 할 수 있다. 그러나 각 컬러 공간에 부분적인 차이(특정 컬러 공간에 독립적인 설정)를 두는 것 또한 가능할 수 있다. 즉, 각 컬러 공간에 의존적인 설정은 각 성분의 구성 비(예를 들어, 4:2:0, 4:2:2, 4:4:4 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.In the present invention, the description will be based on some color spaces (Y in this example) of some color formats (YCbCr in this example), and the same is true for other color spaces (Cb, Cr in this example) according to the color format. A similar application (setting dependent on a specific color space) can be made. However, it may also be possible to have partial differences in each color space (settings that are independent of the specific color space). In other words, the settings dependent on each color space are proportional to or dependent on the composition ratio of each component (e.g., 4:2:0, 4:2:2, 4:4:4, etc.). This may mean that settings independent of each color space may mean having settings only for the corresponding color space regardless of or independently of the composition ratio of each component. In the present invention, depending on the encoder/decoder, some configurations may have independent settings or dependent settings.

영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소(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) 등의 형태로 관련 정보를 비트스트림으로 전송하고 파싱하여 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다. Setting information or syntax elements required in the video encoding process can be determined at the unit level of video, sequence, picture, slice, tile, and block, and include VPS (Video Parameter Set), SPS (Sequence Parameter Set), It can be included in the bitstream in units such as PPS (Picture Parameter Set), Slice Header, Tile Header, Block Header, etc. and transmitted to the decoder. The decoder parses the units at the same level and transmits the setting information from the encoder. can be restored and used in the video decoding process. Additionally, related information in the form of SEI (Supplement Enhancement Information) or metadata can be transmitted as a bitstream, parsed, and used. Each parameter set has a unique ID value, and a lower parameter set can have the ID value of the upper parameter set to be referenced. For example, a lower parameter set may refer to information of a higher parameter set with a matching ID value among one or more higher parameter sets. Among the various examples of units mentioned above, when one unit includes one or more other units, the corresponding unit may be referred to as a higher-level unit, and the included unit may be referred to as a lower-level unit.

상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.In the case of setting information generated in the unit, it may include information about independent settings for each unit, or it may include information about settings dependent on the previous, subsequent, or higher unit. Here, the dependent setting can be understood as indicating the setting information of the unit as flag information that follows the settings of the previous, next, and upper unit (for example, a 1-bit flag, followed if 1, not followed if 0). The setting information in the present invention will be explained focusing on examples of independent settings, but there will also be examples of additions or replacements to content about relationships dependent on the setting information of units before and after the current unit or upper units. may be included.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached 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)로 전달될 수 있다.Referring to FIG. 1, the video encoding device 105 and the decoding device 100 are used in a personal computer (PC), a laptop computer, a personal digital assistant (PDA), and a portable multimedia player (PMP). It can be a user terminal such as a player, PlayStation Portable (PSP), wireless communication terminal, smart phone, TV, etc., or a server terminal such as an application server and service server, and various devices or Communication devices such as communication modems for communicating with wired and wireless communication networks, memory (120, 125) for storing various programs and data for inter or intra prediction for encoding or decoding images, and calculation by executing the program and a variety of devices including processors 110 and 115 for control. In addition, the video encoded into a bitstream by the video encoding device 105 is transmitted in real time or non-real time through a wired or wireless network such as the Internet, a short-range wireless communication network, a wireless LAN network, a WiBro network, or a mobile communication network, or a cable or general purpose network. It can be transmitted to the video decoding device 100 through various communication interfaces such as a serial bus (USB: Universal Serial Bus), decoded by the video decoding device 100, restored to an image, and played back. Additionally, an image encoded into a bitstream by the image encoding device 105 may be transmitted from the image encoding device 105 to the image decoding device 100 through a computer-readable recording medium.

도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.Figure 2 is a block diagram of a video encoding device according to an embodiment of the present invention.

본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.As shown in FIG. 2, the image encoding device 20 according to this embodiment includes a prediction unit 200, a subtraction unit 205, a transform unit 210, a quantization unit 215, and an inverse quantization unit 220. , may include an inverse transform unit 225, an adder 230, a filter unit 235, a decoded picture buffer 240, and an entropy encoding unit 245.

예측부(200)는 화면 내 예측을 수행하는 화면 내 예측부와 화면 간 예측을 수행하는 화면 간 예측부를 포함할 수 있다. 화면 내 예측은 현재 블록의 인접한 블록의 화소를 이용하여 공간적인 예측을 수행하여 예측 블록을 생성할 수 있고, 화면 간 예측은 참조 영상으로부터 현재 블록과 가장 매치가 되는 영역을 찾아 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 해당 단위(부호화 단위 또는 예측 단위)에 대해 화면 내 예측 또는 화면 간 예측 중 어떤 방식을 사용할 지에 대한 것을 결정하고, 각 예측 방법에 따른 구체적인 정보(예를 들어, 화면 내 예측 모드, 움직임 벡터, 참조 영상 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수 있다.The prediction unit 200 may include an intra-screen prediction unit that performs intra-screen prediction and an inter-screen prediction unit that performs inter-screen prediction. Intra-screen prediction can generate a prediction block by performing spatial prediction using pixels of blocks adjacent to the current block, and inter-screen prediction can perform motion compensation by finding the area that best matches the current block from the reference image. A prediction block can be created. Decide whether to use intra-prediction or inter-prediction for the corresponding unit (encoding unit or prediction unit), and specific information according to each prediction method (e.g., intra-prediction mode, motion vector, reference video, etc.) can be determined. At this time, the processing unit in which prediction is performed and the processing unit in which the prediction method and specific contents are determined may be determined according to encoding/decoding settings. For example, the prediction method, prediction mode, etc. are determined in prediction units, and prediction may be performed in transformation units.

감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호인 잔차 블록을 생성한다.The subtraction unit 205 generates a residual block by subtracting the prediction block from the current block. That is, the subtractor 205 calculates the difference between the pixel value of each pixel of the current block to be encoded and the predicted pixel value of each pixel of the prediction block generated through the prediction unit to generate a residual block, which is a residual signal in the form of a block. .

변환부(210)는 잔차 블록을 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환한다. 여기서, 변환부(210)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 변환(DCT Based Transform), 이산 사인 변환 기반의 변환(DST Based Transform), 카루넨 루베 변환 기반의 변환(KLT Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다. 변환은 1차원 변환 매트릭스에 의해 변환될 수 있다. 수평, 수직 단위로 각 변환 매트릭스가 적응적으로 사용될 수 있다. 예를 들어, 화면 내 예측의 경우, 예측 모드가 수평일 경우에는 수직 방향으로는 DCT 기반의 변환 매트릭스가, 수평 방향으로는 DST 기반의 변환 매트릭스가 사용될 수도 있다. 수직일 경우에는 수평 방향으로는 DCT 기반의 변환 매트릭스가, 수직 방향으로는 DST 기반의 변환 매트릭스가 사용될 수 있다. The conversion unit 210 converts the residual block into the frequency domain and converts each pixel value of the residual block into a frequency coefficient. Here, the transform unit 210 is a Hadamard Transform, a Discrete Cosine Transform based Transform (DCT Based Transform), a Discrete Sine Transform based Transform (DST Based Transform), and a Karunen-Rubbé Transform based Transform (KLT Based Transform). The residual signal can be converted to the frequency domain using various conversion techniques that convert the image signal in the spatial axis to the frequency axis, such as Transform), and the residual signal converted to the frequency domain becomes the frequency coefficient. The transformation can be transformed by a one-dimensional transformation matrix. Each transformation matrix can be used adaptively in horizontal and vertical units. For example, in the case of intra-screen prediction, when the prediction mode is horizontal, a DCT-based transformation matrix may be used in the vertical direction and a DST-based transformation matrix may be used in the horizontal direction. In the vertical case, a DCT-based transformation matrix can be used in the horizontal direction, and a DST-based transformation matrix can be used in the vertical direction.

양자화부(215)는 변환부(210)에 의해 주파수 영역으로 변환된 주파수 계수를 갖는 잔차 블록을 양자화한다. 여기서, 양자화부(215)는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다. 이는1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다. The quantization unit 215 quantizes the residual block having the frequency coefficient converted to the frequency domain by the conversion unit 210. Here, the quantization unit 215 may quantize the converted residual block using dead zone uniform threshold quantization, quantization weighted matrix, or an improved quantization technique. This can have one or more quantization techniques as candidates and can be determined by encoding mode, prediction mode information, etc.

엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 이를 엔트로피 부호화 기법 등을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다.The entropy encoding unit 245 scans the generated quantization frequency coefficient sequence according to various scan methods to generate a quantization coefficient sequence, and encodes it using an entropy encoding technique to output it. The scan pattern can be set to one of various patterns, such as zigzag, diagonal, or raster.

역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.The inverse quantization unit 220 inversely quantizes the residual block quantized by the quantization unit 215. That is, the quantization unit 220 dequantizes the quantized frequency coefficient sequence to generate a residual block with frequency coefficients.

역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.The inverse transform unit 225 inversely transforms the residual block inversely quantized by the inverse quantization unit 220. That is, the inverse transform unit 225 inversely transforms the frequency coefficients of the inverse quantized residual block to generate a residual block with pixel values, that is, a restored residual block. Here, the inverse transformation unit 225 may perform inverse transformation by using the conversion method used in the transformation unit 210 in reverse.

가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 복호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 현재 블록의 다음 블록이나 향후 다른 블록, 다른 픽쳐를 부호화할 때 참조 픽쳐로서 사용될 수 있다.The addition unit 230 restores the current block by adding the prediction block predicted by the prediction unit 200 and the residual block restored by the inverse transform unit 225. The restored current block is stored as a reference picture (or reference block) in the decoding picture buffer 240 and can be used as a reference picture when coding the next block of the current block or another block or picture in the future.

필터부(235)는 디블록킹 필터, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band offset), 에지 오프셋 등의 형태로 적용될 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다. The filter unit 235 may include one or more post-processing filter processes, such as a deblocking filter, Sample Adaptive Offset (SAO), and Adaptive Loop Filter (ALF). The deblocking filter can remove block distortion occurring at the boundaries between blocks in the restored picture. ALF can perform filtering based on the value of comparing the restored image with the original image after blocks are filtered through a deblocking filter. SAO restores the offset difference from the original image on a pixel basis for the residual block to which the deblocking filter has been applied, and can be applied in the form of a band offset, edge offset, etc. This post-processing filter can be applied to the restored picture or block.

복호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 복호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면 내 예측 또는 화면 간 예측을 수행하는 예측부(200)에 제공될 수 있다.The decoded picture buffer 240 can store blocks or pictures restored through the filter unit 235. The restored block or picture stored in the decoded picture buffer 240 may be provided to the prediction unit 200 that performs intra- or inter-screen prediction.

도면에 도시 하지 않았지만 분할부가 더 포함될 수 있으며, 분할부를 통해 다양한 크기의 부호화 단위로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록, 둘의 색차 부호화 블록 등)될 수 있다. 설명의 편의를 위해 하나의 컬러 성분 단위를 가정하여 설명한다. 부호화 블록은 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 drawing, a division unit may be further included, and the division unit may be divided into coding units of various sizes. At this time, the coding unit may be composed of a plurality of coding blocks according to the color format (for example, one luminance coding block, two chrominance coding blocks, etc.). For convenience of explanation, the explanation is made assuming one color component unit. A coding block may have a variable size such as M×M (for example, M is 4, 8, 16, 32, 64, 128, etc.). Alternatively, depending on the partitioning method (e.g., tree-based partitioning, quad tree partitioning, binary tree partitioning, etc.), the coding block may be M×N (e.g., M and N are 4, 8, 16, 32, 64, It can have variable sizes such as 128, etc.). At this time, the coding block may be a basic unit for intra-screen prediction, inter-screen prediction, transformation, quantization, entropy coding, etc. The present invention is described under the assumption that a plurality of sub-blocks with the same size and shape are obtained according to the partitioning method, but in the case of an asymmetric sub-block (for example, in the case of a binary tree, 4M × 4N is 3M × 4N and M × 4N, or Application to the case of dividing into 4M × 3N and 4M × N, etc.) may also be possible. At this time, the asymmetric sub-block can be supported by information that determines whether to support it additionally according to the encoding/decoding settings in the division method for obtaining the symmetric sub-block.

부호화 블록(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개)의 플래그(예를 들어, 분할 여부 플래그에 추가적으로 분할 방향 플래그<가로 또는 세로. 선행하는 상위 또는 이전 분할 결과에 따라 일부 경우에 생략가능>)가 지원될 수 있다.Division of the coding block (M×N) may have a recursive tree-based structure. At this time, whether to split can be indicated through a split flag (eg, quad tree split flag, binary split flag). For example, if the split flag of a coding block with a split depth of k is 0, encoding of the coding block is performed in a coding block with a split depth of k, and the split flag of the coding block with a split depth of k is 1. In this case, encoding of the coding block is performed in four sub-coding blocks (quad-tree splitting) or two sub-coding blocks (binary tree splitting) with a splitting depth of k+1, depending on the splitting method. At this time, the size of the block is (M >> 1) × (N >> 1) for 4 coding blocks, and (M >> 1) × N or M × (N >> 1) for 2 coding blocks. It can be. The sub-coding block can be set again as a coding block (k+1) and divided into a sub-coding block (k+2) through the above process. At this time, in the case of quad tree splitting, one split flag (e.g., a splitting flag) may be supported, and in the case of binary tree splitting, at least one (up to two) flags (e.g., in addition to the splitting flag) may be supported. A split direction flag <horizontal or vertical. Can be omitted in some cases depending on the preceding parent or previous split result>) 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 영상 타입에서의 설정일 수 있다. 상기 예에서 설명된 것과 같이 최대 부호화 블록의 크기, 최소 부호화 블록의 크기, 최대 분할 깊이 등과 같은 분할 설정은 분할 방식에 따라 공통되거나 또는 개별적으로 지원될 수 있다.Block division can start from the largest coding block and proceed to the minimum coding block. Alternatively, you can start from the minimum segmentation depth and proceed to the maximum segmentation depth. That is, division can be performed recursively until the size of the block reaches the minimum coding block size or the division depth reaches the maximum division depth. At this time, the maximum coding block is encoded according to the encoding/decoding settings (e.g., video <slice, tile> type <I/P/B>, encoding mode <Intra/Inter>, chrominance component <Y/Cb/Cr>, etc.) The size of , minimum coding block size, and maximum division depth can be set adaptively. For example, when the maximum coding block is 128×128, quad tree division can be performed in the range of 8×8 to 128×128, and binary tree division can be performed in the range of 4×4 to 32×32 with a maximum division depth of 3. It can be done in some cases. Alternatively, quad tree partitioning can be performed in the range of 8 × 8 to 128 × 128, and binary tree partitioning can be performed in the range of 4 × 4 to 128 × 128 with a maximum partition depth of 3. In the former case, the setting may be in the I image type (e.g., slice), and in the latter case, the setting may be in the P or B image type. As described in the above example, split settings such as the maximum coding block size, minimum coding block size, maximum split depth, etc. may be common or individually supported depending on the split method.

복수의 분할 방식이 지원되는 경우 각 분할 방식의 블록 지원 범위 내에서 분할이 수행되며, 각 분할 방식의 블록 지원 범위가 겹치는 경우에는 분할 방식의 우선 순위가 존재할 수 있다. 예를 들어, 쿼드 트리 분할이 바이너리 트리 분할을 선행할 수 있다. 또한, 복수의 분할 방식이 지원되는 경우 선행하는 분할의 결과에 따라 후행하는 분할의 수행 여부가 결정될 수 있다. 예를 들어, 선행하는 분할의 결과가 분할을 수행함을 나타낼 경우 후행하는 분할은 수행하지 않고 선행한 분할에 따라 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있다. When multiple partitioning methods are supported, partitioning is performed within the block support range of each partitioning method, and if the block support ranges of each partitioning method overlap, the partitioning method may have priority. For example, a quad tree split may precede a binary tree split. Additionally, when multiple division methods are supported, whether to perform a subsequent division may be determined depending on the result of the preceding division. For example, if the result of the preceding division indicates that division is to be performed, the subsequent division may not be performed, and the sub-coding block divided according to the preceding division may be set again as a coding block to perform division.

또는, 선행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 후행하는 분할의 결과에 따라 분할을 수행할 수 있다. 이때, 후행하는 분할의 결과가 분할을 수행함을 나타낼 경우 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있고, 후행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 더 이상의 분할은 수행하지 않는다. 이때, 후행하는 분할 결과가 분할을 수행함을 나타내고 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되었을 때의 상황도 복수의 분할 방식이 지원되는 경우일 때, 선행하는 분할은 수행하지 않고 후행하는 분할만 지원할 수 있다. 즉, 복수의 분할 방식이 지원되는 경우에 선행하는 분할의 결과가 분할이 수행되지 않음을 나타낼 경우 더 이상 선행의 분할은 수행하지 않음을 의미한다.Alternatively, if the result of the preceding division indicates that division is not to be performed, division may be performed according to the result of the subsequent division. At this time, if the result of the subsequent division indicates that division is to be performed, the divided sub-coding block is set again as a coding block to perform division, and if the result of the subsequent division indicates that division is not performed, further division is not possible. does not perform. At this time, when the succeeding division result indicates that division is performed and the divided sub-coding block is set again as a coding block and multiple division methods are supported, the preceding division is not performed and only the succeeding division is performed. Support is available. That is, when multiple division methods are supported and the result of the preceding division indicates that division is not performed, this 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, if quad tree partitioning and binary tree partitioning are possible for an M Splitting is performed into four sub-coding blocks of the same size, and the sub-coding blocks are set again as coding blocks to perform splitting (quad tree splitting or binary tree splitting). If the split flag is 0, the binary tree split flag can be checked, and if the flag is 1, it is split into two sub-encoding blocks of size (M >> 1) × N or M × (N >> 1). After this is performed, the sub-coding block is again set as a coding block to perform splitting (binary tree splitting). If the segmentation flag is 0, the segmentation process is terminated and encoding is performed.

상기 예를 통해 복수의 분할 방식이 수행되는 경우를 설명하였지만, 이에 한정되지 않고 다양한 분할 방식의 지원 조합이 가능할 수 있다. 예를 들어, 쿼드 트리/바이너리 트리/ 쿼드 트리 + 바이너리 트리 등의 분할 방식이 사용될 수 있다. 이때, 기본의 분할 방식은 쿼드 트리 방식, 추가적인 분할 방식은 바이너리 트리 방식으로 설정할 수 있고, 추가적인 분할 방식의 지원 여부에 대한 정보가 명시적으로 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함될 수 있다.Although the above example has described a case in which a plurality of division methods are performed, the present invention is not limited to this and a support combination of various division methods may be possible. For example, a partitioning method such as quad tree/binary tree/quad tree + binary tree may be used. At this time, the basic partitioning method can be set to the quad tree method, the additional partitioning method can be set to the binary tree method, and information about whether the additional partitioning method is supported can be explicitly included in units such as sequence, picture, slice, and tile. .

상기 예에서 부호화 블록의 크기 정보, 부호화 블록의 지원 범위, 최대 분할 깊이 등 분할에 관련된 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함되거나 묵시적으로 결정될 수 있다. 정리하면, 최대 부호화 블록의 크기, 지원되는 블록의 범위, 최대 분할 깊이 등에 의해 허용 가능한 블록의 범위가 정해질 수 있다.In the above example, information related to division, such as size information of the coding block, support range of the coding block, and maximum division depth, may be included in units such as sequence, picture, slice, and tile, or may be implicitly determined. In summary, the range of allowable blocks can be determined by the size of the maximum coding block, the range of supported blocks, the maximum division depth, etc.

상기 과정을 통해 분할이 수행되어 획득되는 부호화 블록은 화면 내 예측 또는 화면 간 예측의 최대 크기로 설정될 수 있다. 즉, 블록 분할이 끝난 부호화 블록은 화면 내 예측 또는 화면 간 예측을 위해 예측 블록의 분할의 시작 크기일 수 있다. 예를 들어, 부호화 블록이 2M×2N일 경우 예측 블록은 그보다 같거나 작은 2M×2N, M×N의 크기를 가질 수 있다. 또는, 2M×2N, 2M×N, M×2N, M×N의 크기를 가질 수 있다. 또는, 부호화 블록와 동일한 크기로 2M×2N의 크기를 가질 수 있다. 이때, 부호화 블록과 예측 블록이 동일한 크기를 갖는다는 것은 예측 블록의 분할을 수행하지 않고 부호화 블록의 분할을 통해 획득된 크기로 예측을 수행한다는 것을 의미할 수 있다. 즉, 예측 블록을 위한 분할 정보는 생성되지 않는다는 것을 의미한다. 이와 같은 설정은 변환 블록에도 적용될 수 있으며 분할된 부호화 블록 단위로 변환을 수행할 수도 있다. 즉, 상기 분할 결과에 따라 획득되는 정사각 또는 직사각 형태의 블록이 화면내 예측, 화면간 예측에 사용되는 블록일 수 있고, 잔차 성분에 대한 변환, 양자화에 사용되는 블록일 수 있다.The coding block obtained by performing segmentation through the above process can be set to the maximum size of intra-screen prediction or inter-screen prediction. In other words, the coding block for which block division has been completed may be the starting size of division of the prediction block for intra-screen prediction or inter-screen prediction. For example, if the coding block is 2M×2N, the prediction block may have a size of 2M×2N or M×N, which is the same or smaller than that. Alternatively, it may have a size of 2M×2N, 2M×N, M×2N, or M×N. Alternatively, it may have a size of 2M×2N, the same size as the coding block. At this time, the fact that the coding block and the prediction block have the same size may mean that prediction is performed with the size obtained through division of the coding block without performing division of the prediction block. That is, this means that segmentation information for the prediction block is not generated. These settings can also be applied to transform blocks, and transformation can be performed in units of divided coding blocks. That is, the square or rectangular block obtained according to the division result may be a block used for intra-screen prediction or inter-screen prediction, or may be a block used for transformation or quantization of the residual component.

도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.Figure 3 is a configuration diagram of a video decoding device according to an embodiment of the present invention.

도 3을 참조하면, 영상 복호화 장치(30)는, 부호화 픽쳐 버퍼(300), 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.Referring to FIG. 3, the image decoding device 30 includes an encoded picture buffer 300, an entropy decoder 305, a prediction unit 310, an inverse quantization unit 315, an inverse transform unit 320, and an adder/subtractor ( 325), a filter 330, and a decoded picture buffer 335.

또한, 예측부(310)는 다시 화면 내 예측 모듈 및 화면 간 예측 모듈을 포함하여 구성될 수 있다.Additionally, the prediction unit 310 may be configured to include an intra-screen prediction module and an inter-screen prediction module.

먼저, 영상 부호화 장치(20)로부터 전달된 영상 비트스트림이 수신되면, 부호화 픽쳐 버퍼(300)에 저장될 수 있다.First, when the video bitstream transmitted from the video encoding device 20 is received, it may be stored in the encoded picture buffer 300.

엔트로피 복호화부(305)는 비트스트림을 복호화하여 양자화된 계수들, 움직임 벡터들 및 다른 구문(syntax)를 생성할 수 있다. 생성된 데이터는 예측부(310)로 전달될 수 있다.The entropy decoder 305 may decode the bitstream to generate quantized coefficients, motion vectors, and other syntax. The generated data may be transmitted to the prediction unit 310.

예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 이때, 복호화된 픽쳐 버퍼(335)에 저장된 참조 영상에 기초하여, 디폴트(default) 구성 기법을 이용한 참조 픽쳐 리스트를 구성할 수도 있다.The prediction unit 310 may generate a prediction block based on data delivered from the entropy decoding unit 305. At this time, based on the reference image stored in the decoded picture buffer 335, a reference picture list may be constructed using a default construction technique.

역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.The inverse quantization unit 315 may inverse quantize the quantized transform coefficients provided as a bitstream and decoded by the entropy decoder 305.

역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.The inverse transform unit 320 may generate a residual block by applying inverse DCT, inverse integer transform, or similar inverse transform techniques to the transform coefficients.

이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.At this time, the inverse quantization unit 315 and the inverse transform unit 320 reversely perform the process performed by the transform unit 210 and the quantization unit 215 of the image encoding device 20 described above and can be implemented in various ways. there is. For example, the same process and inverse transformation shared with the transform unit 210 and the quantization unit 215 may be used, and information about the transform and quantization process (e.g., transform size, transform The transformation and quantization process can be reversed using shape, quantization type, etc.).

역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.The residual block that has gone through the inverse quantization and inverse transformation process may be added to the prediction block derived by the prediction unit 310 to generate a restored image block. This addition can be performed by the adder/subtractor 325.

필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.The filter 330 may apply a deblocking filter to the reconstructed image block to remove blocking phenomenon as needed, and may additionally add other loop filters before and after the decoding process to improve video quality. You can also use it.

복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.The image block that has undergone restoration and filtering may be stored in the decoded picture buffer 335.

도 4는 본 발명의 일 실시예에 따른 화면 간 예측에서 현재 블록의 움직임 벡터를 설정하기 위한 후보 움직임 벡터를 결정하는 방법에 대한 예시도이다.Figure 4 is an example diagram of a method for determining a candidate motion vector for setting a motion vector of a current block in inter-screen prediction according to an embodiment of the present invention.

현재 블록의 예측 블록을 생성하기 위하여 현재 블록과 유사한 블록을 현재 블록이 속한 프레임과 시간적으로 다른 프레임 내의 블록에서 찾은 경우 해당 블록을 지시하는 정보로서 움직임 벡터를 사용할 수 있다. 이때, 부호화할 움직임 벡터의 좌표값이 큰 경우 비트 손실율이 매우 클 수 있다. 따라서, 부호화 장치는 부호화할 움직임 벡터와 유사성이 높을 것으로 예상되는 후보 움직임 벡터들 중에서 최적의 움직임 벡터를 선정한 후, 최적의 움직임 벡터를 지시하는 정보, 부호화할 움직임 벡터와 최적의 움직임 벡터 사이의 차분값 및 차분값의 부호를 복호화 장치에 전달할 수 있다. 이때, 최적의 움직임 벡터는 차분값이 최소화될 수 있도록, 후보 움직임 벡터들 중에서 현재 블록에 대한 움직임 벡터와의 거리가 최소가 되는 움직임 벡터일 수 있다.In order to generate a prediction block for the current block, if a block similar to the current block is found in a block in a frame temporally different from the frame to which the current block belongs, a motion vector can be used as information indicating the block. At this time, if the coordinate value of the motion vector to be encoded is large, the bit loss rate may be very high. Therefore, the encoding device selects the optimal motion vector among candidate motion vectors expected to have high similarity to the motion vector to be encoded, then provides information indicating the optimal motion vector, and the difference between the motion vector to be encoded and the optimal motion vector. The sign of the value and difference value can be transmitted to the decoding device. At this time, the optimal motion vector may be a motion vector that has the minimum distance from the motion vector for the current block among candidate motion vectors so that the difference value can be minimized.

여기서, 후보 움직임 벡터를 어떻게 결정할 것인지 문제되는데, 도 4를 참조하면, 현재 블록과 인접한 이웃 블록의 움직임 벡터를 후보 움직임 벡터로 결정할 수 있다. 즉, 현재 블록(Current BLOCK)과 인접한 이웃 블록들(A, B, C, D, E)의 움직임 벡터는 현재 블록의 움직임 벡터와 유사할 가능성이 높으므로 현재 블록의 움직임 벡터를 표현하는 후보 움직임 벡터로 결정할 수 있다.Here, the question is how to determine the candidate motion vector. Referring to FIG. 4, the motion vector of a neighboring block adjacent to the current block can be determined as the candidate motion vector. In other words, the motion vectors of the current block (Current BLOCK) and adjacent neighboring blocks (A, B, C, D, E) are likely to be similar to the motion vector of the current block, so the candidate motion representing the motion vector of the current block It can be decided as a vector.

또한, 현재 블록과 인접한 이웃 블록 뿐만 아니라, 현재 블록이 속한 프레임(또는 픽쳐)과 시간적으로 인접하며 부호화가 완료된 프레임(또는 픽쳐)에서, 현재 블록과 같은 위치에 있는 블록(Co-located BLOCK)의 움직임 벡터를 후보 움직임 벡터로 결정할 수도 있다.In addition, not only the neighboring blocks adjacent to the current block, but also the block (co-located BLOCK) located at the same location as the current block in the encoded frame (or picture) that is temporally adjacent to the frame (or picture) to which the current block belongs. A motion vector may be determined as a candidate motion vector.

또한, 후보 움직임 벡터는 이웃 블록 또는 시간적으로 인접하고 부호화가 완료된 프레임에서 현재 블록과 같은 위치에 있는 블록들 중에서 2개 이상을 선정할 수 있다. 이때, 후보 움직임 벡터의 개수와 후보 움직임 벡터의 선정 조건은 부호화 장치와 복호화 장치에 미리 설정되어 있을 수 있다.Additionally, two or more candidate motion vectors may be selected from among neighboring blocks or blocks that are temporally adjacent and are located at the same location as the current block in the encoded frame. At this time, the number of candidate motion vectors and the selection conditions for the candidate motion vector may be set in advance in the encoding device and the decoding device.

이하에서는 최적의 움직임 벡터를 지시하는 정보, 현재 블록의 움직임 벡터와 최적의 움직임 벡터 사이의 차분값, 차분값에 대한 부호 중에서 최적의 움직임 벡터를 지시하는 정보나 차분값에 대한 부호를 복호화 장치에서 알 수 있는 경우를 살펴보고, 이를 기초로 최적의 움직임 벡터를 지시하는 정보 또는 차분값에 대한 부호를 부호화하지 않는 방법을 설명한다. Hereinafter, among the information indicating the optimal motion vector, the difference value between the motion vector of the current block and the optimal motion vector, and the code for the difference value, the information indicating the optimal motion vector or the code for the difference value is used in the decoding device. We will look at cases where this can be known, and based on this, we will explain how not to encode the information indicating the optimal motion vector or the sign for the difference value.

도 5는 후보 움직임 벡터가 2개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 예시도이다.Figure 5 is an example diagram showing an area where the motion vector of the current block can exist when there are two candidate motion vectors.

도 5를 참조하면, 후보 움직임 벡터가 2개일 때 최적의 움직임 벡터를 지시하는 정보 또는 차분값에 대한 부호를 복호화 장치가 알 수 있는 경우를 설명할 수 있다. 또한, a와 b는 후보 움직임 벡터에 대한 x 또는 y 좌표값을 의미할 수 있으나 이하에서는 간략히 후보 움직임 벡터로 지칭한다.Referring to FIG. 5, a case in which a decoding device can know information indicating the optimal motion vector or a code for a difference value when there are two candidate motion vectors can be explained. Additionally, a and b may refer to x or y coordinate values for a candidate motion vector, but hereinafter, they are simply referred to as candidate motion vectors.

먼저, 두 개의 후보 움직임 벡터 a 및 b 중에서 최적의 움직임 벡터를 선정하고 최적의 움직임 벡터와 현재 블록의 움직임 벡터(k) 사이의 차분값(mvd, moving vector difference)을 부호화할 경우, 최적의 움직임 벡터와 현재 블록의 움직임 벡터(k) 사이의 차분값(mvd)이 다음의 수학식 1과 같은 관계를 가진다고 하자.First, if the optimal motion vector is selected among the two candidate motion vectors a and b and the difference value (mvd, moving vector difference) between the optimal motion vector and the current block's motion vector (k) is encoded, the optimal motion Let us assume that the difference value (mvd) between the vector and the motion vector (k) of the current block has the relationship as shown in Equation 1 below.

상기 수학식 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 relationship of Equation 1 above, if the candidate motion vector a is the optimal motion vector, the motion vector (k) of the current block is based on the candidate motion vector a. It may be located at a greater distance than (corresponding to half the distance between adjacent candidate motion vectors a and b). That is, the motion vector (k) of the current block may be located in the first area 51a and the second area 52a in FIG. 5. At this time, if the motion vector (k) of the current block is located in the second area 52a, it becomes closer to the candidate motion vector b than to the candidate motion vector a. If the motion vector (k) of the current block is closer to the candidate motion vector b than the candidate motion vector a, the prerequisite that the optimal motion vector is a is violated, so the motion vector (k) of the current block is in the second area 52a. It cannot be located in , but can be located in the first area 51a.

또한, 상기 수학식 1의 관계에서 후보 움직임 벡터 b가 최적의 움직임 벡터인 경우, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 b를 기준으로 보다 더 먼 거리에 위치할 수 있다. 즉, 현재 블록의 움직임 벡터(k)는 도 5에서 제3 영역(51b)와 제4 영역(52b)에 위치할 수 있다. 이때, 현재 블록의 움직임 벡터(k)가 제3 영역(51b)에 위치하면 후보 움직임 벡터 b보다 후보 움직임 벡터 a와 더 가까워지게 된다. 현재 블록의 움직임 벡터(k)가 후보 움직임 벡터 b보다 후보 움직임 벡터 a와 가까우면, 최적의 움직임 벡터가 b라는 전제조건에 어긋나므로, 현재 블록의 움직임 벡터(k)는 제3 영역(51b)에는 위치할 수 없고, 제4 영역(52b)에 위치할 수 있다.In addition, in the relationship of Equation 1 above, if the candidate motion vector b is the optimal motion vector, the motion vector (k) of the current block is based on the candidate motion vector b. It can be located at a greater distance. That is, the motion vector (k) of the current block may be located in the third area 51b and the fourth area 52b in FIG. 5. At this time, if the motion vector (k) of the current block is located in the third area 51b, it becomes closer to the candidate motion vector a than the candidate motion vector b. If the motion vector (k) of the current block is closer to the candidate motion vector a than the candidate motion vector b, the precondition that the optimal motion vector is b is violated, so the motion vector (k) of the current block is in the third area 51b. It cannot be located in and can be located in the fourth area 52b.

정리하면, 수학식 1을 만족할 경우 현재 블록의 움직임 벡터(k)는 제1 영역(51a) 또는 제4 영역(52b)에 위치한다는 것을 알 수 있는데, 이러한 사실을 통해 최적의 움직임 벡터를 지시하는 정보를 생략하거나, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값에 대한 부호를 생략할 수 있다.In summary, if Equation 1 is satisfied, it can be seen that the motion vector (k) of the current block is located in the first area (51a) or the fourth area (52b). This fact indicates that the optimal motion vector is Information can be omitted, or the sign for the difference value between the optimal motion vector and the motion vector of the current block can be omitted.

구체적으로, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값에 대한 부호를 생략하는 방법은 다음과 같다.Specifically, the 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, looking at the case where a is the optimal motion vector, the motion vector (k) of the current block is located in the first area 51a. Therefore, if the optimal motion vector is a, the motion vector (k) of the current block is located to the left of a (a position with a value smaller than a), so the motion vector (k) of the current block and the optimal motion vector ( As a prerequisite, it can be seen that the difference value (k-a) from a) is always negative.

다음으로, b가 최적의 움직임 벡터인 경우를 살펴보면, 현재 블록의 움직임 벡터(k)는 제4 영역(52b)에 위치한다. 따라서, 최적의 움직임 벡터가 b라면 현재 블록의 움직임 벡터(k)는 b보다 오른쪽에 위치(b보다 더 큰 값을 가지는 위치)에 있으므로, 현재 블록의 움직임 벡터(k)와 최적의 움직임 벡터(전제조건상 b)와의 차분값(k-b)은 항상 양수라는 것을 알 수 있다.Next, looking at the case where b is the optimal motion vector, the motion vector (k) of the current block is located in the fourth area 52b. Therefore, if the optimal motion vector is b, the motion vector (k) of the current block is located to the right of b (a position with a value greater than b), so the motion vector (k) of the current block and the optimal motion vector ( As a prerequisite, it can be seen that the difference value (k-b) with b) is always a positive number.

종합하면, 부호화 장치는 상기 수학식 1을 만족할 경우 최적의 움직임 벡터와 현재 블록의 움직임 벡터에 대한 차분값의 부호를 복호화 장치에 전달하는 과정을 생략하고, 차분값의 크기와 최적의 움직임 벡터를 지시하는 정보를 복호화 장치에 전달할 수 있다. 복호화 장치는 상기 수학식 1을 만족하는지 판단하고, 최적의 움직임 벡터를 지시하는 정보를 참조한 결과 최적의 움직임 벡터가 a라면 현재 블록의 움직임 벡터(k)가 제1 영역(51a)에 위치하는 것을 파악하여 차분값의 부호가 음수라고 결정할 수 있다. 또한, 복호화 장치는 상기 수학식 1을 만족하는지 판단하고, 최적의 움직임 벡터를 지시하는 정보를 참조한 결과 최적의 움직임 벡터가 b라면 현재 블록의 움직임 벡터(k)가 제4 영역(52b)에 위치하는 것을 파악하여 차분값의 부호가 양수라고 결정할 수 있다.In summary, when Equation 1 above is satisfied, the encoding device omits the process of transmitting the sign of the optimal motion vector and the difference value between the motion vector of the current block to the decoding device, and calculates the size of the difference value and the optimal motion vector. The indicated information can be transmitted to the decoding device. The decoding device determines whether Equation 1 is satisfied, and if the optimal motion vector is a as a result of referring to the information indicating the optimal motion vector, the motion vector (k) of the current block is located in the first area 51a. By understanding this, we can determine that the sign of the difference value is negative. In addition, the decoding device determines whether Equation 1 is satisfied, and if the optimal motion vector is b as a result of referring to information indicating the optimal motion vector, the motion vector (k) of the current block is located in the fourth area 52b. By understanding this, we can determine that the sign of the difference value is a positive number.

한편, 최적의 움직임 벡터를 지시하는 정보를 생략하는 방법은 다음과 같다.Meanwhile, the method of omitting information indicating the optimal motion vector is as follows.

부호화 장치가 최적의 움직임 벡터를 지시하는 정보를 생략하고, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값의 크기와 부호를 복호화 장치에 전송하였다면, 복호화 장치는 차분값의 크기와 부호를 통해 차분값을 확인할 수 있고, 확인된 차분값에 최적의 움직임 벡터가 될 수 있는 후보 움직임 벡터 a를 더할 수 있다. 이때 도출된 값(현재 블록에 대한 움직임 벡터 좌표값의 추정값일 수 있어, 추정 움직임 벡터로 지칭될 수 있다.)이 a와 b 중에서 a에 가까운 값을 가진다면 최적의 움직임 벡터는 a인 것으로 판단할 수 있다. 왜냐하면, a가 최적의 움직임 벡터라면, 차분값(k-a)에 후보 움직임 벡터 a를 더하여 도출된 값은 현재 블록의 움직임 벡터(k)가 되고, 부호화 장치는 후보 움직임 벡터 a가 현재 블록의 움직임 벡터(k)와 가장 가깝기 때문에 최적의 움직임 벡터로 선정하였을 것이기 때문이다. If the encoding device omits the information indicating the optimal motion vector and transmits the size and sign of the difference between the optimal motion vector and the motion vector of the current block to the decoding device, the decoding device transmits the size and sign of the difference value Through this, the difference value can be confirmed, and a candidate motion vector a, which can be the optimal motion vector, can be added to the confirmed difference value. At this time, if the derived value (which may be an estimate of the motion vector coordinate value for the current block and may be referred to as an estimated motion vector) has a value close to a among a and b, it is determined that the optimal motion vector is a. can do. This is because, if a is the optimal motion vector, the value derived by adding the candidate motion vector a to the difference value (k-a) becomes the motion vector (k) of the current block, and the encoding device determines that the candidate motion vector a is the motion vector of the current block. This is because it would have been selected as the optimal motion vector because it is closest to (k).

같은 방식으로, 복호화 장치는 차분값의 크기와 부호를 통해 차분값을 확인할 수 있고, 확인된 차분값에 최적의 움직임 벡터가 될 수 있는 후보 움직임 벡터 b를 더할 수 있다. 이때 도출된 값이 a와 b 중에서 b에 가까운 값을 가진다면 최적의 움직임 벡터는 b인 것으로 판단할 수 있다. In the same way, the decoding device can check the difference value through the size and sign of the difference value, and can add a candidate motion vector b, which can be the optimal motion vector, to the confirmed difference value. At this time, if the derived value is closer to b among a and b, it can be determined that the optimal motion vector is b.

한편, 상기 과정들을 모든 후보 움직임 벡터들에 대하여 수행한 결과, 최적의 움직임 벡터가 될 수 있는 움직임 벡터가 여러 개 도출될 수도 있다. 이러한 경우 복호화 장치가 어느 하나의 최적 움직임 벡터를 선정할 수 없으므로 부호화 장치는 최적의 움직임 벡터를 지시하는 정보를 생략할 수 없다. 즉, 후보 움직임 벡터 중에서 하나의 최적 움직임 벡터가 선정되지 않는 경우도 존재할 수 있으며, 이러한 경우에는 상기 방법을 적용하지 않는다. Meanwhile, 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 device cannot select any one optimal motion vector, the encoding device cannot omit information indicating the optimal motion vector. That is, there may be cases where one optimal motion vector is not selected among candidate motion vectors, and in this case, the above method is not applied.

여기서 최적의 움직임 벡터를 지시하는 정보를 생략하는 방법은 앞에서는 후보 움직임 벡터가 두개인 경우를 기준으로 설명하였으나, 복수의 후보 움직임 벡터가 존재하는 경우에도 같은 방법을 적용하는 것이 통상의 기술자에게 용이하게 이해될 수 있을 것이므로 더 이상 구체적인 설명은 생략한다. Here, the method of omitting the information indicating the optimal motion vector was previously explained based on the case where there are two candidate motion vectors, but it is easy for a person skilled in the art to apply the same method even when there are multiple candidate motion vectors. Since it can be easily understood, further detailed explanation will be omitted.

도 6은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제1 예시도이다. 도 7은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제2 예시도이다.Figure 6 is a first example diagram showing an area where the motion vector of the current block can exist when there are three candidate motion vectors. Figure 7 is a second example diagram showing an area where the motion vector of the current block can exist when there are three candidate motion vectors.

도 6 및 도 7을 참조하면, 후보 움직임 벡터가 a, b, c로 3개 존재할 경우(도면에서는 x 또는 y좌표를 기준으로 나타냄) 후보 움직임 벡터 사이의 간격(x또는 y좌표를 기준으로 인접한 후보 움직임 벡터 사이에 대한 간격들)은 a와 b사이, b와 c사이가 존재할 수 있다.Referring to Figures 6 and 7, when there are three candidate motion vectors a, b, and c (indicated based on x or y coordinates in the drawing), the interval between candidate motion vectors (adjacent based on x or y coordinates) Intervals between candidate motion vectors) may exist between a and b and between b and c.

이때, 후보 움직임 벡터 사이의 간격 중 큰 간격을 DL로 정의하고, 작은 간격을 DS로 정의할 수 있다. 도 6 및 도 7과 같이 후보 움직임 벡터 a와 b 사이의 간격이 큰 간격이고, 후보 움직임 벡터 b와 c 사이의 간격이 작은 간격을 가진다면, DL과 DS는 다음의 수학식 2 및 수학식 3과 같다. At this time, among the intervals between candidate motion vectors, the larger interval can be defined as DL, and the smaller interval can be defined as DS. As shown in Figures 6 and 7, if the gap between candidate motion vectors a and b is large, and the gap between candidate motion vectors b and c is small, DL and DS are expressed in Equation 2 and Equation 3 below: Same as

상기 수학식 2 및 수학식 3의 관계에서 현재 블록의 움직임 벡터와 최적의 움직임 벡터 사이의 차분값 사이의 관계가 다음의 수학식 4를 만족한다고 하자.Let us assume that in the relationship between Equation 2 and Equation 3 above, the relationship between the difference value between the motion vector of the current block and the optimal motion vector satisfies the following Equation 4.

상기 수학식 4의 조건에서, 현재 블록의 움직임 벡터가 위치하는 영역을 도시하면 도 6과 같다.Under the conditions of Equation 4 above, the area where the motion vector of the current block is located is shown in Figure 6.

도 6을 참조하면, 후보 움직임 벡터 a가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 a를 기준으로 DS보다 크고 DL보다 작거나 같은 거리내에 위치하므로 제1 영역(61a) 및 제2 영역(62a)에 위치할 수 있다. 즉, 이 경우 차분값(k-a)는 양수 또는 음수 모두 가능할 수 있다.Referring to FIG. 6, when the candidate motion vector a is the optimal motion vector, the motion vector (k) of the current block is located within a distance greater than DS and less than or equal to DL based on a, so that the first area 61a and It may be located in the second area 62a. That is, in this case, the difference value (k-a) can be either a positive or negative number.

또한, 후보 움직임 벡터 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 the optimal motion vector, the motion vector (k) of the current block is located within a distance greater than DS and less than or equal to DL based on b, so it can be located in the third area 61b. there is. At this time, in the case where the candidate motion vector b is the optimal motion vector, if the motion vector (k) of the current block is greater than b and has a value greater than DS based on b, the motion vector (k) of the current block is the candidate motion. Since it is closer to the candidate motion vector c than vector b, it may violate the prerequisite that the candidate motion vector b is the optimal motion vector. Therefore, if the candidate motion vector b is the optimal motion vector, the motion vector (k) of the current block cannot be greater than b, so 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 the optimal motion vector, the motion vector (k) of the current block is located within a distance greater than DS and less than or equal to DL based on c, so it can be located in the fourth area 62c. . At this time, in the case where the candidate motion vector c is the optimal motion vector, if the motion vector (k) of the current block is smaller than c and has a value smaller than DS based on c, the motion vector (k) of the current block is the candidate motion. Since it is closer to the candidate motion vector b than vector c, it may violate the prerequisite that the candidate motion vector c is the optimal motion vector. Therefore, if the candidate motion vector c is the optimal motion vector, the motion vector (k) of the current block cannot be smaller than c, so the difference value (k-c) is a positive number.

도 6에 대한 설명을 종합하면, 최적의 움직임 벡터가 a일 때, 현재 블록의 움직임 벡터(k)는 제1 영역(61a) 및 제2 영역(62a)에 위치하고 제1 영역(61a)에서 최적의 움직임 벡터(a)와 현재 블록의 움직임 벡터(k) 사이의 차분값(k-a)은 음수가 되고, 제2 영역(62a)에서는 양수가 되므로 차분값(k-a)은 양수 및 음수 둘다 가질 수 있다. 따라서, 최적의 움직임 벡터가 a일 때 복호화 장치는 차분값의 부호를 알수 없으므로, 부호화 장치는 차분값(k-a)의 부호와 크기, 최적의 움직임 벡터를 지시하는 정보를 복호화 장치에 전송할 수 있다.Summarizing the description of FIG. 6, when the optimal motion vector is a, the motion vector (k) of the current block is located in the first area 61a and the second area 62a, and the optimal motion vector in the first area 61a is The difference value (k-a) between the motion vector (a) of and the motion vector (k) of the current block is negative, and in the second area 62a, it is positive, so the difference value (k-a) can have both positive and negative numbers. . Therefore, when the optimal motion vector is a, the decoding device cannot know the sign of the difference value, so the encoding device can transmit information indicating the sign and size of the difference value (k-a) and the optimal motion vector to the decoding device.

그러나, 최적의 움직임 벡터가 b이면, 현재 블록의 움직임 벡터(k)는 제3 영역(61b)에 위치하므로 차분값(k-b)의 부호가 음수라는 것을 복호화 장치가 알 수 있다. 또한, 최적의 움직임 벡터가 c이면 현재 블록의 움직임 벡터(k)는 제4 영역(62c)에 위치하므로 차분값(k-c)의 부호가 양수라는 것을 복호화 장치가 알 수 있다. 따라서, 최적의 움직임 벡터가 b 또는 c인 경우 부호화 장치는 차분값의 부호를 복호화 장치에 전달하는 것을 생략할 수 있다.However, if the optimal motion vector is b, the motion vector (k) of the current block is located in the third area 61b, so the decoding device can know that the sign of the difference value (k-b) is negative. Additionally, if the optimal motion vector is c, the motion vector (k) of the current block is located in the fourth area 62c, so the decoding device can know that the sign of the difference value (k-c) is a positive number. Therefore, when the optimal motion vector is b or c, the encoding device can omit transmitting the sign of the difference value to the decoding device.

한편, 다시 상기 수학식 2 및 수학식 3의 관계에서 현재 블록의 움직임 벡터와 최적의 움직임 벡터 사이의 차분값 사이의 관계가 다음의 수학식 5를 만족한다고 하자.Meanwhile, let us again assume that in the relationship between Equation 2 and Equation 3 above, the relationship between the difference value between the motion vector of the current block and the optimal motion vector satisfies the following Equation 5.

상기 수학식 5의 조건에서, 현재 블록의 움직임 벡터(k)가 위치하는 영역을 도시하면 도 7과 같다.Under the conditions of Equation 5, the area where the motion vector (k) of the current block is located is shown in Figure 7.

도 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 the optimal motion vector, the motion vector (k) of the current block is located within a greater distance than the DL based on a, so it can be located in the first area 71a. . At this time, in the case where the candidate motion vector a is the optimal motion vector, if the motion vector (k) of the current block is larger than a and is located at a greater distance than the DL based on a, the motion vector (k) of the current block is the candidate motion. Since it is closer to the candidate motion vector b than vector a, it may violate the prerequisite that the candidate motion vector a is the optimal motion vector. Therefore, if the candidate motion vector a is the optimal motion vector, the motion vector (k) of the current block cannot be greater than a, so the difference value (k-a) may be a negative number.

또한, 후보 움직임 벡터 b가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 b를 기준으로 DL보다 먼 거리에 위치해야 한다. 이때, 후보 움직임 벡터 b가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 b를 기준으로 DL보다 먼 거리에 위치한다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 b보다 후보 움직임 벡터 a 또는 c에 더 가까워지므로 후보 움직임 벡터 b가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서, 후보 움직임 벡터가 b이면, 현재 블록의 움직임 벡터(k)가 존재하는 영역이 없게 되므로 후보 움직임 벡터는 b일 수 없다.Additionally, if the candidate motion vector b is the optimal motion vector, the motion vector (k) of the current block must be located at a greater distance than the DL based on b. At this time, in the case where the candidate motion vector b is the optimal motion vector, if the motion vector (k) of the current block is located at a greater distance than the DL based on b, the motion vector (k) of the current block is greater than the candidate motion vector b. Because it gets closer to motion vector a or c, it may violate the prerequisite that candidate motion vector b is the optimal motion vector. Therefore, if the candidate motion vector is b, the candidate motion vector cannot be b because there is no area where the motion vector (k) of the current block exists.

또한, 후보 움직임 벡터c가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 c를 기준으로 DL보다 큰 거리 내에 위치하므로, 제2 영역(72c)에 위치할 수 있다. 이때, 후보 움직임 벡터 c가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 c보다 작고, c를 기준으로 DL보다 먼 거리에 있다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 c보다 후보 움직임 벡터 b에 더 가까워지므로 후보 움직임 벡터 c가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터c가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 c보다 작을 수 없으므로, 차분값(k-c)은 항상 양수일 수 있다.Additionally, when the candidate motion vector c is the optimal motion vector, the motion vector (k) of the current block is located within a distance greater than DL based on c, and thus may be located in the second area 72c. At this time, in the case where the candidate motion vector c is the optimal motion vector, if the motion vector (k) of the current block is smaller than c and is farther than the DL based on c, the motion vector (k) of the current block is the candidate motion vector. Since it is closer to the candidate motion vector b than c, it may violate the prerequisite that the candidate motion vector c is the optimal motion vector. Therefore, if the candidate motion vector c is the optimal motion vector, the motion vector (k) of the current block cannot be smaller than c, so the difference value (k-c) can always be a positive number.

수학식 5를 전제조건으로 하여 도 7에 대한 설명을 종합하면, 최적의 움직임 벡터가 a일 때, 현재 블록의 움직임 벡터(k)는 제1 영역(71a)에 위치하고 제1 영역(71a)에서 최적의 움직임 벡터(a)와 현재 블록의 움직임 벡터(k) 사이의 차분값(k-a)은 음수라는 것을 복호화 장치가 알 수 있다. 따라서, 최적의 움직임 벡터가 a인 경우 부호화 장치는 차분값의 부호를 복호화 장치에 전달하는 것을 생략할 수 있다.Summarizing the description of FIG. 7 with Equation 5 as a prerequisite, when the optimal motion vector is a, the motion vector (k) of the current block is located in the first area 71a and The decoding device can know that the difference value (k-a) between the optimal motion vector (a) and the motion vector (k) of the current block is a negative number. Therefore, when the optimal motion vector is a, the encoding device can omit transmitting the sign of the difference value to the decoding device.

또한, 최적의 움직임 벡터가 b일 때, 현재 블록의 움직임 벡터(k)는 존재하는 영역이 없다. 따라서, 수학식 5를 만족할 때 최적의 움직임 벡터는 b일 수 없으므로, 부호화 장치는 후보 움직임 벡터에서 b를 제외하고 a 나 c를 후보 움직임 벡터로 정의하고, a 및 c 중에서 최적의 움직임 벡터를 지시하는 정보를 생성하여 복호화 장치로 전송할 수 있고, 복호화 장치는 수학식 5를 만족하는지 판단하여 최적의 움직임 벡터를 지시하는 정보를 통해 a나 c를 최적의 움직임 벡터로 해석할 수 있다. 이러한 경우에는 후보 움직임 벡터가 하나 제외되므로 3개 중 하나를 지시하는 비트값(2bit)보다 작은 비트값(1bit)을 사용할 수 있어 부호화 및 복호화의 효율을 증가시킬 수 있다.Additionally, when the optimal motion vector is b, there is no region in which the motion vector (k) of the current block exists. Therefore, when Equation 5 is satisfied, the optimal motion vector cannot be b, so the encoding device excludes b from the candidate motion vectors, defines a or c as the candidate motion vector, and indicates the optimal motion vector among a and c. information can be generated and transmitted to the decoding device, and the decoding device can determine whether Equation 5 is satisfied and interpret a or c as the optimal motion vector through information indicating the optimal motion vector. In this case, since one candidate motion vector is excluded, a bit value (1 bit) smaller than the bit value (2 bits) indicating one of the three can be used, thereby increasing the efficiency of encoding and decoding.

또한, 최적의 움직임 벡터가 c일 때, 현재 블록의 움직임 벡터(k)는 제2 영역(72c)에 위치하고 제2 영역(72c에서 최적의 움직임 벡터(c)와 현재 블록의 움직임 벡터(k) 사이의 차분값(k-c)은 양수라는 것을 복호화 장치가 알 수 있다. 따라서, 최적의 움직임 벡터가 c인 경우 부호화 장치는 차분값의 부호를 복호화 장치에 전달하는 것을 생략할 수 있다.In addition, when the optimal motion vector is c, the motion vector (k) of the current block is located in the second area 72c, and the optimal motion vector (c) and the motion vector (k) of the current block in the second area (72c) are The decoding device can know that the difference value (k-c) between is a positive number. Therefore, when the optimal motion vector is c, the encoding device can omit transmitting the sign of the difference value to the decoding device.

도 8은 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 방법에 대한 흐름도이다.Figure 8 is a flowchart of a video decoding method using inter-screen prediction according to an embodiment of the present invention.

도 8을 참조하면 화면 간 예측을 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계(S100), 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계(S110), 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120) 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계(S130)를 포함할 수 있다.Referring to FIG. 8, the image decoding method using inter-screen prediction includes receiving a bitstream (S100) and obtaining some of the information indicating the motion vector of the current block to be decoded from the received bitstream (S110). , obtaining the motion vector of the current block by determining the remaining information excluding the part using the obtained information (S120), and predicting the prediction block of the current block through inter-screen prediction using the motion vector of the current block. It may include a generating step (S130).

여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block includes the size of the difference value between the motion vector of the current block and the optimal motion vector selected from two or more candidate motion vectors, the sign of the difference value, and the optimal motion vector. It may include at least one of the information indicating.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120)는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block (S120) includes determining whether the size of the difference value corresponds to a preset condition, and if it corresponds to the preset condition, information indicating the optimal motion vector. It may include determining the sign of the difference value based on the obtained optimal motion vector.

여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on the interval between adjacent vectors among the two or more candidate motion vectors.

여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.Here, the step of determining whether the size of the difference value corresponds to a preset condition includes deriving the largest value of the gap between the adjacent vectors and the smallest value of the gap between the adjacent vectors, and the largest value. and comparing the smallest value with the size of the difference value.

여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval divided by half the interval between adjacent vectors.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120)는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block (S120) includes obtaining the difference value using the size of the difference value and the sign of the difference value, and adding the two or more candidate motion vectors to the obtained difference value. determining an estimated motion vector of the current block by adding a first candidate motion vector among the two or more candidate motion vectors; 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; It may include 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 judging may be repeatedly performed by substituting the remaining candidate motion vectors excluding the first candidate motion vector into the first candidate motion vector.

여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.Here, in the step of determining the optimal motion vector, if the candidate motion vector with the closest coordinate value is unique as a result of the repeated performance, the candidate motion vector may be determined as the optimal motion vector.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120)는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block (S120) includes determining whether the size of the difference value corresponds to a preset condition, and if the size of the difference value corresponds to the preset condition, at least one of the two or more candidate motion vectors. It may include excluding the motion vector of from the candidate motion vectors and determining the optimal motion vector among the remaining candidate motion vectors.

도 9는 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 장치에 대한 구성도이다.Figure 9 is a configuration diagram of a video decoding device using inter-screen prediction according to an embodiment of the present invention.

도 9를 참조하면 화면 간 예측을 이용한 영상 복호화 장치(200)는, 적어도 하나의 프로세서(processor, 210) 및 상기 적어도 하나의 프로세서(210)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 220)를 포함할 수 있다.Referring to FIG. 9, an image decoding apparatus 200 using inter-screen prediction includes at least one processor 210 and instructions instructing the at least one processor 210 to perform at least one step. ) may include a memory (220) for storing.

여기서 영상 복호화 장치(200)는 영상 부호화 장치로부터 비트스트림을 유무선 네트워크를 통해 수신하는 통신 모듈(230)을 더 포함할 수 있다.Here, the video decoding device 200 may further include a communication module 230 that receives a bitstream from the video encoding device through a wired or wireless network.

여기서 영상 복호화 장치(200)는 영상 복호화 과정에 필요한 참조 픽쳐, 복호화된 블록 등을 저장하는 로컬 저장소(240)를 더 포함할 수 있다.Here, the image decoding device 200 may further include a local storage 240 that stores reference pictures, decoded blocks, etc. required for the image decoding process.

여기서 상기 적어도 하나의 단계는, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Here, the at least one step includes receiving a bitstream, obtaining part of the information indicating the motion vector of the current block to be decoded from the received bitstream, and using the obtained information to obtain the remaining information except for the part. It may include obtaining a motion vector of the current block by determining , and generating a prediction block of the current block through inter-screen prediction using the motion vector of the current block.

여기서 상기 현재 블록의 움직임 벡터를 지시하는 정보는, 두개 이상의 후보 움직임 벡터 중에서 선정된 최적의 움직임 벡터와 상기 현재 블록의 움직임 벡터 사이의 차분값의 크기, 상기 차분값의 부호 및 상기 최적의 움직임 벡터를 지시하는 정보 중 적어도 하나를 포함할 수 있다.Here, the information indicating the motion vector of the current block includes the size of the difference value between the motion vector of the current block and the optimal motion vector selected from two or more candidate motion vectors, the sign of the difference value, and the optimal motion vector. It may include at least one of the information indicating.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block includes determining whether the size of the difference value corresponds to a preset condition, and if it corresponds to the preset condition, the optimal motion vector obtained from the information indicating the optimal motion vector. It may include determining the sign of the difference value based on the motion vector.

여기서 상기 미리 설정된 조건은, 상기 두개 이상의 후보 움직임 벡터들 중에서 인접한 벡터들 사이의 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on the interval between adjacent vectors among the two or more candidate motion vectors.

여기서 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계는, 상기 인접한 벡터들 사이의 간격이 가장 큰 값과 상기 인접한 벡터들 사이의 간격이 가장 작은 값을 도출하는 단계 및 상기 가장 큰 값과 상기 가장 작은 값을 상기 차분값의 크기와 비교하는 단계를 포함할 수 있다.Here, the step of determining whether the size of the difference value corresponds to a preset condition includes deriving the largest value of the gap between the adjacent vectors and the smallest value of the gap between the adjacent vectors, and the largest value. and comparing the smallest value with the size of the difference value.

여기서 상기 미리 설정된 조건은, 상기 인접한 벡터들 사이의 간격을 반으로 나눈 간격을 기초로 설정될 수 있다.Here, the preset condition may be set based on an interval divided by half the interval between adjacent vectors.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기와 상기 차분값의 부호를 이용하여 상기 차분값을 획득하는 단계, 획득된 차분값에 상기 두개 이상의 후보 움직임 벡터들 중 제1 후보 움직임 벡터를 더하여 상기 현재 블록의 추정 움직임 벡터를 결정하는 단계, 상기 추정 움직임 벡터가 상기 두개 이상의 후보 움직임 벡터들 중에서 상기 제1 후보 움직임 벡터와 가장 가까운 좌표값을 갖는지 판단하는 단계 및 판단 결과를 기초로, 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of acquiring the motion vector of the current block includes obtaining the difference value using the size of the difference value and the sign of the difference value, and adding the first of the two or more candidate motion vectors to the obtained difference value. Determining an estimated motion vector of the current block by adding candidate motion vectors; 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 a result. As a basis, it may include determining the optimal motion vector.

여기서 상기 추정 움직임 벡터를 결정하는 단계 및 상기 판단하는 단계는, 상기 제1 후보 움직임 벡터를 제외한 나머지 후보 움직임 벡터들을 상기 제1 후보 움직임 벡터로 대입하여 반복 수행될 수 있다.Here, the step of determining the estimated motion vector and the step of judging may be repeatedly performed by substituting the remaining candidate motion vectors excluding the first candidate motion vector into the first candidate motion vector.

여기서 상기 최적의 움직임 벡터를 결정하는 단계는, 상기 반복 수행의 결과 가장 가까운 좌표값을 갖는 후보 움직임 벡터가 유일하면, 해당 후보 움직임 벡터를 상기 최적의 움직임 벡터로 결정할 수 있다.Here, in the step of determining the optimal motion vector, if the candidate motion vector with the closest coordinate value is unique as a result of the repeated performance, the candidate motion vector may be determined as the optimal motion vector.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 두개 이상의 후보 움직임 벡터들 중 적어도 하나의 움직임 벡터를 후보 움직임 벡터에서 제외하고 나머지 후보 움직임 벡터들 중에서 상기 최적의 움직임 벡터를 결정하는 단계를 포함할 수 있다.Here, the step of obtaining the motion vector of the current block includes determining whether the size of the difference value corresponds to a preset condition, and if the size of the difference value corresponds to the preset condition, at least one motion vector among the two or more candidate motion vectors. It may include excluding 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, examples of the image decoding device 200 include a communication capable desktop computer, a laptop computer, a laptop, a smart phone, a tablet PC, and a mobile phone ( mobile phone, smart watch, smart glass, e-book reader, PMP (portable multimedia player), portable game console, navigation device, digital camera, DMB (digital multimedia) broadcasting) player, digital audio recorder, digital audio player, digital video recorder, digital video player, PDA (Personal Digital Assistant), etc.

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.Methods according to the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. Computer-readable media may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on a computer-readable medium may be specially designed and constructed for the present invention or may be known and usable by those skilled in the computer software art.

컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions may include machine language code such as that created by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The above-described hardware device may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.

또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다. Additionally, the above-described method or device may be implemented by combining all or part of its components or functions, or may be implemented separately.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although the present invention has been described above with reference to preferred embodiments, those skilled in the art may make various modifications and changes to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. You will understand that you can do it.

Claims (20)

화면간 예측을 이용한 영상 복호화 방법으로,
비트스트림을 수신하는 단계;
상기 비트스트림에 포함된 분할 정보를 기초로, 코딩 블록을 분할하여 현재 블록을 결정하는 단계;
복수의 후보 움직임 벡터들 및 움직임 벡터 지시 정보를 기초로, 상기 현재 블록의 추정 움직임 벡터를 획득하는 단계, 여기서, 상기 움직임 벡터 지시 정보는 상기 복수의 후보 움직임 벡터들 중 어느 하나를 지시함;
움직임 벡터 차분값의 크기 정보 및 상기 움직임 벡터 차분값의 부호 정보를 기초로, 상기 현재 블록의 상기 움직임 벡터 차분값을 획득하는 단계;
상기 추정 움직임 벡터 및 상기 움직임 벡터 차분값을 이용하여, 상기 현재 블록의 움직임 벡터를 획득하는 단계; 및
상기 현재 블록의 상기 움직임 벡터를 이용한 화면간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하되,
상기 부호 정보의 시그날링 여부는, 상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰지 여부를 기초로 결정되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰 경우, 상기 부호 정보는 시그날링되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 작거나 같은 경우, 상기 부호 정보는 시그날링되지 않는, 영상 복호화 방법.
A video decoding method using inter-screen prediction,
Receiving a bitstream;
Splitting a coding block based on splitting information included in the bitstream to determine a current block;
Obtaining an estimated motion vector of the current block based on a plurality of candidate motion vectors and motion vector indication information, wherein the motion vector indication information indicates one of the plurality of candidate motion vectors;
Obtaining the motion vector difference of the current block based on size information of the motion vector difference and sign information of the motion vector difference;
Obtaining a motion vector of the current block using the estimated motion vector and the motion vector difference; and
Generating a prediction block of the current block through inter-screen prediction using the motion vector of the current block,
Whether or not to signal the sign information is determined based on whether the size of the motion vector difference value is greater than a pre-defined threshold size,
If the size of the motion vector difference value is greater than a pre-defined threshold size, the sign information is signaled,
If the size of the motion vector difference value is less than or equal to a pre-defined threshold size, the code information is not signaled.
청구항 1에서,
상기 분할 정보는 쿼드 트리 분할을 기초로 분할할지 여부를 나타내는 쿼드 트리 분할 플래그, 바이너리 트리 분할을 기초로 분할할지 여부를 나타내는 바이너리 트리 분할 플래그, 또는 수직 방향 또는 수평 방향으로 분할할지 여부를 나타내는 분할 방향 플래그 중 적어도 하나를 포함하는, 영상 복호화 방법.
In claim 1,
The splitting information includes a quad-tree splitting flag indicating whether to split based on quad-tree splitting, a binary tree splitting flag indicating whether to split based on binary tree splitting, or a splitting direction indicating whether to split in the vertical or horizontal direction. A video decoding method including at least one of the flags.
청구항 2에서,
상기 코딩 블록은 상기 쿼드 트리 분할 또는 상기 바이너리 트리 분할 중 적어도 하나를 포함하는 분할 타입을 기초로 분할되는, 영상 복호화 방법.
In claim 2,
The video decoding method wherein the coding block is divided based on a partition type including at least one of the quad tree partition and the binary tree partition.
청구항 3에서,
상기 코딩 블록이 128x128의 크기를 가지는 경우, 상기 코딩 블록을 분할함에 있어서, 상기 쿼드 트리 분할만 이용되는, 영상 복호화 방법.
In claim 3,
When the coding block has a size of 128x128, only the quad tree division is used to split the coding block.
청구항 3에서,
상기 바이너리 트리 분할은 상기 쿼드 트리 분할을 기초로 한 블록 분할이 더 이상 수행되지 않는 경우에만 허용되는, 영상 복호화 방법.
In claim 3,
The binary tree division is allowed only when block division based on the quad tree division is no longer performed.
청구항 2에서,
상기 분할 방향 플래그는 상기 코딩 블록이 속한 상위 블록의 분할 타입에 따라 선택적으로 시그날링되고,
상기 상위 블록은 상기 코딩 블록보다 작은 분할 깊이를 가지는 블록을 나타내는, 영상 복호화 방법.
In claim 2,
The division direction flag is selectively signaled according to the division type of the upper block to which the coding block belongs,
An image decoding method, wherein the upper block represents a block having a smaller division depth than the coding block.
화면간 예측을 이용한 영상 부호화 방법으로,
제1 코딩 블록을 복수의 제2 코딩 블록들로 분할하는 분할 정보를 부호화는 단계;
현재 블록의 화면간 예측을 위한 움직임 벡터를 부호화하는 단계,
여기서, 상기 현재 블록은 상기 제2 코딩 블록들 중 어느 하나이고,
상기 현재 블록의 상기 움직임 벡터를 부호화하는 단계는,
복수의 후보 움직임 벡터들 중 상기 현재 블록의 추정 움직임 벡터를 지시하는 움직임 벡터 지시 정보를 부호화하는 단계, 및
상기 현재 블록의 움직임 벡터 차분값의 크기를 결정하는 크기 정보 및 상기 움직임 벡터 차분값의 부호를 결정하는 부호 정보를 부호화하는 단계를 포함함; 및
상기 분할 정보, 상기 움직임 벡터 지시 정보, 상기 크기 정보 및 상기 부호 정보를 포함하는 비트스트림을 생성하는 단계를 포함하되,
상기 부호 정보의 부호화 여부는, 상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰지 여부를 기초로 결정되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰 경우, 상기 부호 정보는 부호화되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 작거나 같은 경우, 상기 부호 정보는 부호화되지 않는, 영상 부호화 방법.
A video encoding method using inter-screen prediction,
Encoding division information for dividing a first coding block into a plurality of second coding blocks;
Encoding a motion vector for inter-screen prediction of the current block,
Here, the current block is any one of the second coding blocks,
The step of encoding the motion vector of the current block is:
Encoding motion vector indication information indicating an estimated motion vector of the current block among a plurality of candidate motion vectors, and
Encoding size information for determining the size of the motion vector difference value of the current block and sign information for determining the sign of the motion vector difference value; and
Generating a bitstream including the segmentation information, the motion vector indication information, the size information, and the sign information,
Whether to encode the sign information is determined based on whether the size of the motion vector difference is greater than a pre-defined threshold size,
If the size of the motion vector difference value is greater than a pre-defined threshold size, the sign information is encoded,
If the size of the motion vector difference value is less than or equal to a pre-defined threshold size, the sign information is not encoded.
화면간 예측을 이용한 영상 부호화 방법을 컴퓨터에서 실행하기 위한 명령들이 기록된 컴퓨터 판독 가능한 매체에 있어서,
상기 영상 부호화 방법은,
제1 코딩 블록을 복수의 제2 코딩 블록들로 분할하는 분할 정보를 부호화는 단계;
현재 블록의 화면간 예측을 위한 움직임 벡터를 부호화하는 단계,
여기서, 상기 현재 블록은 제2 코딩 블록들 중 어느 하나이고,
상기 현재 블록의 상기 움직임 벡터를 부호화하는 단계는,
복수의 후보 움직임 벡터들 중 상기 현재 블록의 추정 움직임 벡터를 지시하는 움직임 벡터 지시 정보를 부호화하는 단계, 및
상기 현재 블록의 움직임 벡터 차분값의 크기를 결정하는 크기 정보 및 상기 움직임 벡터 차분값의 부호를 결정하는 부호 정보를 부호화하는 단계를 포함함; 및
상기 분할 정보, 상기 움직임 벡터 지시 정보, 상기 크기 정보 및 상기 부호 정보를 포함하는 비트스트림을 생성하는 단계를 포함하되,
상기 부호 정보의 부호화 여부는, 상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰지 여부를 기초로 결정되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰 경우, 상기 부호 정보는 부호화되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 작거나 같은 경우, 상기 부호 정보는 부호화되지 않는, 컴퓨터 판독 가능한 매체.
In a computer-readable medium on which instructions for executing an image encoding method using inter-screen prediction on a computer are recorded,
The video encoding method is,
Encoding division information for dividing a first coding block into a plurality of second coding blocks;
Encoding a motion vector for inter-screen prediction of the current block,
Here, the current block is one of the second coding blocks,
The step of encoding the motion vector of the current block is:
Encoding motion vector indication information indicating an estimated motion vector of the current block among a plurality of candidate motion vectors, and
Encoding size information for determining the size of the motion vector difference value of the current block and sign information for determining the sign of the motion vector difference value; and
Generating a bitstream including the segmentation information, the motion vector indication information, the size information, and the sign information,
Whether to encode the sign information is determined based on whether the size of the motion vector difference is greater than a pre-defined threshold size,
If the size of the motion vector difference value is greater than a pre-defined threshold size, the sign information is encoded,
If the size of the motion vector difference is less than or equal to a pre-defined threshold size, the sign information is not encoded.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020180000034A 2017-01-02 2018-01-02 Image decoding method and apparatus using inter picture prediction KR102586198B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US16/475,217 US11240526B2 (en) 2017-01-02 2018-01-02 Method and apparatus for decoding image using interpicture prediction
PCT/KR2018/000062 WO2018124855A1 (en) 2017-01-02 2018-01-02 Method and apparatus for decoding image using inter-picture prediction
US17/557,133 US11818386B2 (en) 2017-01-02 2021-12-21 Method and apparatus for decoding image using interpicture prediction
KR1020230131205A KR20230145002A (en) 2017-01-02 2023-09-27 Image decoding method and apparatus using inter picture prediction
US18/483,860 US20240040143A1 (en) 2017-01-02 2023-10-10 Method and apparatus for decoding image using interpicture prediction

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170000404 2017-01-02
KR20170000404 2017-01-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020230131205A Division KR20230145002A (en) 2017-01-02 2023-09-27 Image decoding method and apparatus using inter picture prediction

Publications (2)

Publication Number Publication Date
KR20180080131A KR20180080131A (en) 2018-07-11
KR102586198B1 true KR102586198B1 (en) 2023-10-06

Family

ID=62917341

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180000034A KR102586198B1 (en) 2017-01-02 2018-01-02 Image decoding method and apparatus using inter picture prediction

Country Status (1)

Country Link
KR (1) KR102586198B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2770437T3 (en) * 2011-03-21 2020-07-01 Lg Electronics Inc Method of selecting a motion vector predictor and a device that uses it
KR20140016823A (en) * 2012-07-24 2014-02-10 한국전자통신연구원 Video decoding method and apparatus using the same
KR101782154B1 (en) * 2015-06-05 2017-09-26 인텔렉추얼디스커버리 주식회사 Image encoding/decoding method and image decoding apparatus using motion vector precision

Also Published As

Publication number Publication date
KR20180080131A (en) 2018-07-11

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
US10057574B2 (en) Coding tree unit (CTU) level adaptive loop filter (ALF)
AU2015328088B2 (en) QP derivation and offset for adaptive color transform in video coding
US10116942B2 (en) Method and apparatus for decoding a video using an intra prediction
KR20220100991A (en) Video filtering method and device
US11949865B2 (en) Image encoding/decoding method using pixel value range constituting image
US20240114126A1 (en) Image decoding method, image encoding method, image decoding device, image encoding device, and computer-readable recording medium
KR20160146590A (en) Image encoding method and image decoding method and apparatus using adaptive deblocking filtering
KR20230145002A (en) Image decoding method and apparatus using inter picture prediction
KR20220166354A (en) Method and Apparatus for Video Filtering
KR102594692B1 (en) Image decoding method and device for chroma components
KR102641457B1 (en) Image decoding method and device for chroma components
KR20230014101A (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
KR102640264B1 (en) Image decoding method and device for chroma quantization parameter data
KR102586198B1 (en) Image decoding method and apparatus using inter picture prediction
KR20180080114A (en) Intra prediction method considering redundancy of prediction blocks and video decoding apparatus performing intra prediction
US20230254483A1 (en) Intra prediction method and apparatus for performing adaptive filtering on reference pixel
KR102670935B1 (en) Image decoding method and the apparatus for chroma components
KR20160143585A (en) Image encoding/decoding method and image decoding apparatus using motion vector precision
KR20240051807A (en) Image transmisstion method based on accumulation of region of interest

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right