[go: up one dir, main page]

KR20250001975A - 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
KR20250001975A
KR20250001975A KR1020240171802A KR20240171802A KR20250001975A KR 20250001975 A KR20250001975 A KR 20250001975A KR 1020240171802 A KR1020240171802 A KR 1020240171802A KR 20240171802 A KR20240171802 A KR 20240171802A KR 20250001975 A KR20250001975 A KR 20250001975A
Authority
KR
South Korea
Prior art keywords
motion vector
current block
block
size
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
KR1020240171802A
Other languages
Korean (ko)
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
Priority claimed from KR1020230131205A external-priority patent/KR102736716B1/en
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of KR20250001975A publication Critical patent/KR20250001975A/en
Pending legal-status Critical Current

Links

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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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

Landscapes

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

Abstract

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

Description

화면 간 예측을 이용한 영상 복호화 방법 및 장치{IMAGE DECODING METHOD AND APPARATUS USING INTER PICTURE PREDICTION}{IMAGE DECODING METHOD AND APPARATUS USING INTER PICTURE PREDICTION}

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

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 ISO/ISE MPEG (Moving Picture Experts Group) and the ITU-T VCEG (Video Coding Experts Group) organized the Joint Collaborative Team on Video Coding (JCV-VC) and established the ISO/IEC MPEG-H HEVC (High Efficiency Video Coding)/ITU-T H.265 video compression standard in January 2013. In addition, in order to respond to the trend toward popularizing 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 and are actively working to establish next-generation video compression technology standards for UHD (Ultra High Definition) video compression that is clearer than HD (High Definition) video.

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

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

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

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

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

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

여기서 화면 간 예측을 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Here, a method for decoding a video using inter-screen prediction may include a step of receiving a bitstream, a step of obtaining a part of information indicating a motion vector of a current block to be decoded from the received bitstream, a step of obtaining a motion vector of the current block by determining the remaining information excluding the part using the obtained information, and a step of 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 may include at least one of the size of the difference between the optimal motion vector selected from among two or more candidate motion vectors and the motion vector of the current block, the sign of the difference, and information indicating the optimal motion vector.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of obtaining the motion vector of the current block may include the step of determining whether the size of the difference value corresponds to a preset condition, and if the size corresponds to the preset condition, the step of determining the sign of the difference value based on the optimal motion vector obtained from the information indicating the 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 may include the step of deriving a value having the largest interval between the adjacent vectors and a value having the smallest interval between the adjacent vectors, and the step of comparing the largest value and the smallest value with the size of the difference value.

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

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

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

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

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

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

여기서 상기 적어도 하나의 단계는, 비트스트림을 수신하는 단계, 수신된 비트스트림에서 복호화할 현재 블록의 움직임 벡터를 지시하는 정보 중 일부를 획득하는 단계, 획득된 정보를 이용하여 상기 일부를 제외한 나머지 정보를 결정함으로써 상기 현재 블록의 움직임 벡터를 획득하는 단계 및 상기 현재 블록의 움직임 벡터를 이용한 화면 간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함할 수 있다.Here, at least one of the steps may include: receiving a bitstream; obtaining a portion of information indicating a motion vector of a current block to be decoded from the received bitstream; determining the remaining information excluding the portion by using the obtained information to obtain the motion vector of the current block; 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 may include at least one of the size of the difference between the optimal motion vector selected from among two or more candidate motion vectors and the motion vector of the current block, the sign of the difference, and information indicating the optimal motion vector.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of obtaining the motion vector of the current block may include the step of determining whether the size of the difference value corresponds to a preset condition, and if the size corresponds to the preset condition, the step of determining the sign of the difference value based on the optimal motion vector obtained from the information indicating the 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 may include the step of deriving a value having the largest interval between the adjacent vectors and a value having the smallest interval between the adjacent vectors, and the step of comparing the largest value and the smallest value with the size of the difference value.

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

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

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

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

상기와 같은 본 발명에 따른 화면 간 예측을 이용한 영상 복호화 방법 및 장치를 이용할 경우에는 부호화 및 복호화 과정에서 소모되는 비트 수를 줄일 수 있다.When using the image 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 ratio can be improved.

도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 4는 본 발명의 일 실시예에 따른 화면 간 예측에서 현재 블록의 움직임 벡터를 설정하기 위한 후보 움직임 벡터를 결정하는 방법에 대한 예시도이다.
도 5는 후보 움직임 벡터가 2개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 예시도이다.
도 6은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제1 예시도이다.
도 7은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제2 예시도이다.
도 8은 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 방법에 대한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 장치에 대한 구성도이다.
FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
FIG. 2 is a block diagram of an image encoding device according to one embodiment of the present invention.
FIG. 3 is a configuration diagram of an image decoding device according to one embodiment of the present invention.
FIG. 4 is an exemplary diagram illustrating a method for determining a candidate motion vector for setting a motion vector of a current block in inter-screen prediction according to one 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.
FIG. 8 is a flowchart of a video decoding method using inter-screen prediction according to one embodiment of the present invention.
FIG. 9 is a configuration diagram of an image decoding device using inter-screen prediction according to one embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. The present invention can have various modifications and various embodiments, and specific embodiments are 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, but should be understood to include all modifications, equivalents, or substitutes included in the spirit and technical scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

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

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When it is said that a component is "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, when it is said 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 terminology used in this application is only used to describe specific embodiments and is not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprises" or "has" and the like are intended to specify the presence of a feature, number, step, operation, component, part or combination thereof described in the specification, but do not exclude in advance the possibility of the presence or addition of one or more other features, 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 one of ordinary skill in the art to which this invention belongs. Terms defined in commonly used dictionaries, such as those defined in common dictionaries, should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and will not be interpreted in an idealized or overly formal sense unless expressly defined in this application.

통상적으로 영상은 일련의 정지 영상(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 can be composed of a series of still images, and these still images can be divided into GOP (Group of Pictures) units, and each still image can be referred to as a picture. At this time, the picture can represent one of a frame or a field in a progressive signal or an interlace signal, and when encoding/decoding is performed in frame units, the image can be represented as a 'frame', and when performed in field units, the image can be represented as a 'field'. The present invention assumes and explains a progressive signal, but it can also be applied to an interlace signal. As upper concepts, there can be units such as GOP and sequence, and furthermore, each picture can be divided into predetermined areas such as slices, tiles, and blocks. Further, one GOP can include units such as I picture, P picture, and B picture. An I picture may refer to a picture that is encoded/decoded on its own without using a reference picture, and a P picture and a B picture may refer to a picture that is encoded/decoded by performing processes such as motion estimation and motion compensation using a reference picture. In general, for a P picture, an I picture and a P picture can be used as reference pictures, and for a B picture, an I picture and a P picture can be used as reference pictures, but this definition above may also change depending on the encoding/decoding settings.

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

영상을 이루는 최소 단위는 화소(Pixel)일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도(Bit Depth)라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화 설정에 따라 그 이상의 비트 심도를 지원할 수 있다. 비트 심도는 컬러 공간(Color Space)에 따라 적어도 하나의 비트 심도가 지원될 수 있다. 또한, 영상의 컬러 포맷(Color Format)에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 예를 들어, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 다른 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다. The minimum unit that constitutes an image can 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 a higher bit depth can be supported depending on the encoding setting. The bit depth can support at least one bit depth depending on the color space. In addition, it can be composed of at least one color space depending on the color format of the image. Depending on the color format, it can be composed of one or more pictures having a certain size or one or more pictures having different sizes. For example, in the case of YCbCr 4:2:0, it can be composed of one luminance component (Y in this example) and two chrominance components (Cb/Cr in this example), and in this case, the composition ratio of the chrominance component and the luminance component can have a horizontal and vertical ratio of 1:2. As another example, in the case of 4:4:4, it can have the same composition ratio for the horizontal and vertical. When a picture is composed of one or more color spaces as in the above example, division into each color space can be performed.

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

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

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

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings.

도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.FIG. 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 image encoding device (105) and the decoding device (100) may be user terminals such as a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), a PlayStation Portable (PSP), a wireless communication terminal, a smart phone, a TV, etc., or server terminals such as an application server and a service server, and may include various devices including a communication device such as a communication modem for performing communication with various devices or wired/wireless communication networks, a memory (120, 125) for storing various programs and data for inter- or intra-prediction for encoding or decoding images, a processor (110, 115) for executing programs and performing calculations and controls, etc. In addition, the image encoded into a bitstream by the image encoding device (105) may be transmitted to the image decoding device (100) through a wired or wireless communication network such as the Internet, a local area network, a wireless LAN, a WiBro network, a mobile communication network, etc. in real time or non-real time, or through various communication interfaces such as a cable, a universal serial bus (USB), etc., and may be decoded in the image decoding device (100) to be restored into an image and played back. In addition, the 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는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.FIG. 2 is a block diagram of an image encoding device according to one embodiment of the present invention.

본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 복호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.The video encoding device (20) according to the present embodiment may include, as shown in FIG. 2, a prediction unit (200), a subtraction unit (205), a transformation unit (210), a quantization unit (215), an inverse quantization unit (220), an inverse transformation unit (225), an addition unit (230), a filter unit (235), a decoding 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 may generate a prediction block by performing spatial prediction using pixels of adjacent blocks of a current block, and inter-screen prediction may generate a prediction block by finding an area that best matches the current block from a reference image and performing motion compensation. It may be determined whether to use intra-screen prediction or inter-screen prediction for the corresponding unit (encoding unit or prediction unit), and specific information (e.g., intra-screen prediction mode, motion vector, reference image, etc.) according to each prediction method may be determined. At this time, the processing unit where prediction is performed and the processing unit where the prediction method and specific contents are determined may be determined according to the encoding/decoding settings. For example, the prediction method, the prediction mode, etc. may be determined by the prediction unit, and the prediction may be performed by the transformation unit.

감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호인 잔차 블록을 생성한다.The subtraction unit (205) generates a residual block by subtracting the prediction block from the current block. That is, the subtraction unit (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, and generates 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 transformation unit (210) transforms the residual block into a frequency domain and transforms each pixel value of the residual block into a frequency coefficient. Here, the transformation unit (210) can transform the residual signal into a frequency domain by using various transformation techniques that transform a spatial axis image signal into a frequency domain, such as a Hadamard transform, a DCT-based transform, a DST-based transform, and a KLT-based transform. The residual signal transformed into the frequency domain becomes a frequency coefficient. The transformation can be performed by a one-dimensional transformation matrix. Each transformation matrix can be adaptively used in horizontal and vertical units. For example, in the case of intra-screen prediction, if 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. If it is vertical, a DCT-based transformation matrix may be used in the horizontal direction, and a DST-based transformation matrix may 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 frequency coefficients converted into the frequency domain by the transformation unit (210). Here, the quantization unit (215) can quantize the converted residual block using dead zone uniform threshold quantization, quantization weighted matrix, or a quantization technique that is an improved version thereof. One or more quantization techniques can be candidates and can be determined by information about the encoding mode, prediction mode, etc.

엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 이를 엔트로피 부호화 기법 등을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다.The entropy encoding unit (245) scans the generated quantized frequency coefficient series according to various scan methods to generate a quantized coefficient series, and encodes the same using an entropy encoding technique, etc. to output the same. The scan pattern can be set to one of various patterns such as zigzag, diagonal, and 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) inversely quantizes the quantized frequency coefficient series to generate a residual block having 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 having pixel values, i.e., a restored residual block. Here, the inverse transform unit (225) can perform inverse transformation by inversely using the transformation method used in the transformation unit (210).

가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 복호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 현재 블록의 다음 블록이나 향후 다른 블록, 다른 픽쳐를 부호화할 때 참조 픽쳐로서 사용될 수 있다.The addition unit (230) adds the prediction block predicted by the prediction unit (200) and the residual block restored by the inverse transformation unit (225) to restore the current block. 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 encoding the next block of the current block or other blocks or other pictures 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, a Sample Adaptive Offset (SAO), and an Adaptive Loop Filter (ALF). The deblocking filter may remove block distortion occurring at the boundary between blocks in a restored picture. The ALF may perform filtering based on a value obtained by comparing a restored image with an original image after the block is filtered through the deblocking filter. The SAO may restore an offset difference from the original image on a pixel basis for a residual block to which the deblocking filter is applied, and may be applied in the form of a band offset, an edge offset, etc. Such a post-processing filter may be applied to a restored picture or block.

복호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 복호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면 내 예측 또는 화면 간 예측을 수행하는 예측부(200)에 제공될 수 있다.The decoded picture buffer (240) can store a block or picture restored through the filter unit (235). The restored block or picture stored in the decoded picture buffer (240) can be provided to a prediction unit (200) that performs intra-screen prediction 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, further divisions may be included, and the divisions may be used to divide the encoding units into various sizes. At this time, the encoding unit may be composed of a plurality of encoding blocks (for example, one luminance encoding block, two chrominance encoding blocks, etc.) depending on the color format. For convenience of explanation, one color component unit is assumed and explained. The encoding 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 division method (for example, tree-based division, quad-tree division, binary tree division, etc.), the encoding block may have a variable size such as M×N (for example, M and N are 4, 8, 16, 32, 64, 128, etc.). At this time, the encoding block may be a unit that serves as the basis for intra-screen prediction, inter-screen prediction, transformation, quantization, entropy encoding, etc. Although the present invention is described under the assumption that multiple sub-blocks having the same size and shape are obtained depending on the partitioning method, it may also be applied to cases having asymmetrical sub-blocks (for example, in the case of a binary tree, 4M × 4N is partitioned into 3M × 4N and M × 4N or 4M × 3N and 4M × N, etc.). In this case, the asymmetrical sub-blocks may be supported by information for which support is additionally determined according to the encoding/decoding settings in the partitioning method for obtaining symmetrical sub-blocks.

부호화 블록(M×N)의 분할은 재귀적인 트리 기반의 구조를 가질 수 있다. 이때, 분할 여부는 분할 플래그(예를 들어, 쿼드 트리 분할 플래그, 바이너리 분할 플래그)를 통해 나타낼 수 있다. 예를 들어, 분할 깊이(Depth)가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 4개의 서브 부호화 블록(쿼드 트리 분할) 또는 2개의 서브 부호화 블록(바이너리 트리 분할)에서 수행된다. 이때, 블록의 크기는 4개의 부호화 블록의 경우 (M >> 1) × (N >> 1)이고, 2개의 부호화 블록의 경우 (M >> 1) × N 또는 M × (N >>1)일 수 있다. 상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있다. 이때, 쿼드 트리 분할의 경우 하나의 분할 플래그(예를 들어, 분할 여부 플래그)가 지원될 수 있고, 바이너리 트리 분할의 경우 적어도 하나(최대 2개)의 플래그(예를 들어, 분할 여부 플래그에 추가적으로 분할 방향 플래그<가로 또는 세로. 선행하는 상위 또는 이전 분할 결과에 따라 일부 경우에 생략가능>)가 지원될 수 있다.The division of an encoding block (M × N) can have a recursive tree-based structure. At this time, whether or not to divide can be indicated by a division flag (e.g., a quad tree division flag, a binary division flag). For example, if the division flag of an encoding block with a division depth (Depth) of k is 0, encoding of the encoding block is performed in an encoding block with a division depth of k, and if the division flag of an encoding block with a division depth of k is 1, encoding of the encoding block is performed in four sub-coding blocks (quad tree division) or two sub-coding blocks (binary tree division) with a division depth of k+1 depending on the division method. At this time, the size of the block can be (M >> 1) × (N >> 1) for four encoding blocks, and (M >> 1) × N or M × (N >> 1) for two encoding blocks. The above sub-coding block can be set as an encoding block (k+1) again and split into sub-coding blocks (k+2) through the above process. At this time, in the case of quad tree splitting, one splitting flag (e.g., a splitting or not flag) can be supported, and in the case of binary tree splitting, at least one (at most two) flags (e.g., in addition to the splitting or not flag, a splitting direction flag <horizontal or vertical. May be omitted in some cases depending on the preceding upper or previous splitting result>) can 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 splitting can start from the maximum coding block and proceed to the minimum coding block. Alternatively, it can start from the minimum splitting depth and proceed to the maximum splitting depth. That is, splitting can be performed recursively until the size of the block reaches the minimum coding block size or the splitting depth reaches the maximum splitting depth. At this time, the size of the maximum coding block, the size of the minimum coding block, and the maximum splitting depth can be adaptively set according to the encoding/decoding settings (e.g., image <slice, tile> type <I/P/B>, encoding mode <Intra/Inter>, chrominance component <Y/Cb/Cr>, etc.). For example, when the maximum coding block is 128×128, quad tree splitting can be performed in the range of 8×8 to 128×128, and binary tree splitting can be performed in the range of 4×4 to 32×32 and when the maximum splitting depth is 3. 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 and with a maximum partition depth of 3. In the former case, it can be a setting in I picture type (e.g., slice), and in the latter case, it can be a setting in P or B picture type. As described in the above example, partitioning settings such as the size of the maximum coding block, the size of the minimum coding block, the maximum partitioning depth, etc. can be common or supported individually depending on the partitioning method.

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

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

상기 예를 통해 복수의 분할 방식이 수행되는 경우를 설명하였지만, 이에 한정되지 않고 다양한 분할 방식의 지원 조합이 가능할 수 있다. 예를 들어, 쿼드 트리/바이너리 트리/ 쿼드 트리 + 바이너리 트리 등의 분할 방식이 사용될 수 있다. 이때, 기본의 분할 방식은 쿼드 트리 방식, 추가적인 분할 방식은 바이너리 트리 방식으로 설정할 수 있고, 추가적인 분할 방식의 지원 여부에 대한 정보가 명시적으로 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함될 수 있다.Although the above example illustrates a case where multiple partitioning methods are performed, it is not limited thereto, and various combinations of partitioning methods may be supported. For example, partitioning methods such as quad tree/binary tree/quad tree + binary tree may be used. In this case, the basic partitioning method may be set to quad tree method, and the additional partitioning method may be set to binary tree method, and information on whether or not the additional partitioning method is supported may be explicitly included in units such as sequences, pictures, slices, and tiles.

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

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

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

도 3을 참조하면, 영상 복호화 장치(30)는, 부호화 픽쳐 버퍼(300), 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.Referring to FIG. 3, the image decoding device (30) may be configured to include an encoded picture buffer (300), an entropy decoding unit (305), a prediction unit (310), an inverse quantization unit (315), an inverse transformation unit (320), an adder/subtracter (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 an image bitstream transmitted from an image encoding device (20) is received, it can be stored in an encoded picture buffer (300).

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

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

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

역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.The inverse transform unit (320) can 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 transformation unit (320) perform the process performed in the transformation unit (210) and the quantization unit (215) of the image encoding device (20) described above in reverse, and can be implemented in various ways. For example, the same process and inverse transformation shared with the transformation unit (210) and the quantization unit (215) may be used, or the transformation and quantization process may be performed in reverse using information about the transformation and quantization process (e.g., transformation size, transformation shape, quantization type, etc.) from the image encoding device (20).

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

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

복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.The restored and filtered image blocks can be stored in the decoded picture buffer (335).

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

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

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

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

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

이하에서는 최적의 움직임 벡터를 지시하는 정보, 현재 블록의 움직임 벡터와 최적의 움직임 벡터 사이의 차분값, 차분값에 대한 부호 중에서 최적의 움직임 벡터를 지시하는 정보나 차분값에 대한 부호를 복호화 장치에서 알 수 있는 경우를 살펴보고, 이를 기초로 최적의 움직임 벡터를 지시하는 정보 또는 차분값에 대한 부호를 부호화하지 않는 방법을 설명한다. Below, we will examine a case where the information indicating the optimal motion vector or the code for the differential value among the information indicating the optimal motion vector, the difference between the motion vector of the current block and the optimal motion vector, and the code for the differential value can be known by a decoding device, and based on this, we will explain a method of not encoding the information indicating the optimal motion vector or the code for the differential 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, it can be explained that when there are two candidate motion vectors, a case can be described where the decoding device can know the code for the information or differential value indicating the optimal motion vector. In addition, a and b can mean the x or y coordinate values for the candidate motion vectors, but are simply referred to as candidate motion vectors hereinafter.

먼저, 두 개의 후보 움직임 벡터 a 및 b 중에서 최적의 움직임 벡터를 선정하고 최적의 움직임 벡터와 현재 블록의 움직임 벡터(k) 사이의 차분값(mvd, moving vector difference)을 부호화할 경우, 최적의 움직임 벡터와 현재 블록의 움직임 벡터(k) 사이의 차분값(mvd)이 다음의 수학식 1과 같은 관계를 가진다고 하자.First, when selecting an optimal motion vector from two candidate motion vectors a and b and encoding the difference (mvd, moving vector difference) between the optimal motion vector and the motion vector (k) of the current block, it is assumed that the difference (mvd) between the optimal motion vector and the motion vector (k) of the current block has a relationship as shown in the following mathematical expression 1.

상기 수학식 1의 관계에서, 후보 움직임 벡터 a가 최적의 움직임 벡터인 경우, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 a를 기준으로 (인접한 후보 움직임 벡터들 a, b 사이의 거리의 반에 해당) 보다 더 먼 거리에 위치할 수 있다. 즉, 현재 블록의 움직임 벡터(k)는 도 5에서 제1 영역(51a)와 제2 영역(52a)에 위치할 수 있다. 이때, 현재 블록의 움직임 벡터(k)가 제2 영역(52a)에 위치하면 후보 움직임 벡터 a보다 후보 움직임 벡터 b와 더 가까워지게 된다. 현재 블록의 움직임 벡터(k)가 후보 움직임 벡터 a보다 후보 움직임 벡터 b와 가까우면, 최적의 움직임 벡터가 a라는 전제조건에 어긋나므로, 현재 블록의 움직임 벡터(k)는 제2 영역(52a)에는 위치할 수 없고, 제1 영역(51a)에 위치할 수 있다.In the relationship of the above mathematical expression 1, 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. (half of the distance between adjacent candidate motion vectors a and b) can be located at a greater distance than that. That is, the motion vector (k) of the current block can 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 to the candidate motion vector a, the precondition that the optimal motion vector is a is violated, and therefore the motion vector (k) of the current block cannot be located in the second area (52a) and 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, if the candidate motion vector b is the optimal motion vector in the relationship of the above mathematical expression 1, the motion vector (k) of the current block is based on the candidate motion vector b. can be located at a further distance. That is, the motion vector (k) of the current block can 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 to the candidate motion vector b. If the motion vector (k) of the current block is closer to the candidate motion vector a than to the candidate motion vector b, the precondition that the optimal motion vector is b is violated, and therefore the motion vector (k) of the current block cannot be located in the third area (51b) and can be located in the fourth area (52b).

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

구체적으로, 최적의 움직임 벡터와 현재 블록의 움직임 벡터 사이의 차분값에 대한 부호를 생략하는 방법은 다음과 같다.Specifically, the method of omitting the sign of the difference 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, if we look at the case where a is the optimal motion vector, the motion vector (k) of the current block is located in the first region (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 smaller value than a), so we can see that the difference (k-a) between the motion vector (k) of the current block and the optimal motion vector (a in the precondition) is always negative.

다음으로, b가 최적의 움직임 벡터인 경우를 살펴보면, 현재 블록의 움직임 벡터(k)는 제4 영역(52b)에 위치한다. 따라서, 최적의 움직임 벡터가 b라면 현재 블록의 움직임 벡터(k)는 b보다 오른쪽에 위치(b보다 더 큰 값을 가지는 위치)에 있으므로, 현재 블록의 움직임 벡터(k)와 최적의 움직임 벡터(전제조건상 b)와의 차분값(k-b)은 항상 양수라는 것을 알 수 있다.Next, if we look at the case where b is the optimal motion vector, the motion vector (k) of the current block is located in the fourth region (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 larger value than b), so we can see that the difference (k-b) between the motion vector (k) of the current block and the optimal motion vector (b in the precondition) is always positive.

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

한편, 최적의 움직임 벡터를 지시하는 정보를 생략하는 방법은 다음과 같다.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 can confirm the difference through the size and sign of the difference, and add a candidate motion vector a that can be the optimal motion vector to the confirmed difference. At this time, if the derived value (which can be an estimated value of the motion vector coordinate value for the current block and therefore can be referred to as an estimated motion vector) is closer to a among a and b, it can be determined that the optimal motion vector is a. 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 would have selected the candidate motion vector a as the optimal motion vector because it is closest to the motion vector (k) of the current block.

같은 방식으로, 복호화 장치는 차분값의 크기와 부호를 통해 차분값을 확인할 수 있고, 확인된 차분값에 최적의 움직임 벡터가 될 수 있는 후보 움직임 벡터 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 add a candidate motion vector b that can be the optimal motion vector to the checked difference value. At this time, if the derived value has a value 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 for all candidate motion vectors, multiple motion vectors that can be the optimal motion vectors may be derived. In this case, since the decoding device cannot select a single optimal motion vector, the encoding device cannot omit information indicating the optimal motion vector. In other words, there may be cases where one optimal motion vector is not selected among the candidate motion vectors, and in such cases, the above method is not applied.

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

도 6은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제1 예시도이다. 도 7은 후보 움직임 벡터가 3개일 때 현재 블록의 움직임 벡터가 존재할 수 있는 영역을 나타낸 제2 예시도이다.Fig. 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. Fig. 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 FIGS. 6 and 7, when there are three candidate motion vectors, a, b, and c (indicated based on the x or y coordinate in the drawings), the intervals between the candidate motion vectors (intervals between adjacent candidate motion vectors based on the x or y coordinate) can be between a and b, or between b and c.

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

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

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

도 6을 참조하면, 후보 움직임 벡터 a가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 a를 기준으로 DS보다 크고 DL보다 작거나 같은 거리내에 위치하므로 제1 영역(61a) 및 제2 영역(62a)에 위치할 수 있다. 즉, 이 경우 차분값(k-a)는 양수 또는 음수 모두 가능할 수 있다.Referring to Fig. 6, if 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 with respect to a, and thus can be located in the first area (61a) and the second area (62a). That is, in this case, the difference value (k-a) can be either positive or negative.

또한, 후보 움직임 벡터 b가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 b를 기준으로 DS보다 크고 DL보다 작거나 같은 거리 내에 위치하므로, 제3 영역(61b)에 위치할 수 있다. 이때, 후보 움직임 벡터 b가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 b보다 크고, b를 기준으로 DS보다 큰 값을 가진다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 b보다 후보 움직임 벡터 c에 더 가까워지므로 후보 움직임 벡터 b가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터b가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 b보다 클 수 없으므로, 차분값(k-b)은 음수라는 것을 알 수 있다.In addition, if 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 with respect to b, and therefore can be located in the third region (61b). At this time, if the motion vector (k) of the current block is greater than b and has a value greater than DS with respect to b in the case where the candidate motion vector b is the optimal motion vector, the motion vector (k) of the current block may be closer to the candidate motion vector c than to the candidate motion vector b, and thus the precondition that the candidate motion vector b is the optimal motion vector may be violated. Accordingly, if the candidate motion vector b is the optimal motion vector, the motion vector (k) of the current block cannot be greater than b, and therefore, it can be seen that the difference value (k-b) is a negative number.

또한, 후보 움직임 벡터 c가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 c를 기준으로 DS보다 크고 DL보다 작거나 같은 거리 내에 위치하므로 제4 영역(62c)에 위치할 수 있다. 이때, 후보 움직임 벡터 c가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 c보다 작고, c를 기준으로 DS보다 작은 값을 가진다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 c보다 후보 움직임 벡터 b에 더 가까워지므로 후보 움직임 벡터 c가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터c가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 c보다 작을 수 없으므로, 차분값(k-c)은 양수라는 것을 알 수 있다.In addition, if 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 with respect to c, and thus can be located in the fourth region (62c). At this time, if the motion vector (k) of the current block is smaller than c and has a value smaller than DS with respect to c in the case where the candidate motion vector c is the optimal motion vector, the motion vector (k) of the current block may be closer to the candidate motion vector b than to the candidate motion vector c, and thus the precondition that the candidate motion vector c is the optimal motion vector may be violated. 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, and therefore, it can be seen that 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)의 부호와 크기, 최적의 움직임 벡터를 지시하는 정보를 복호화 장치에 전송할 수 있다.To summarize 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 difference value (k-a) between the optimal motion vector (a) and the motion vector (k) of the current block in the first area (61a) is negative, and in the second area (62a) it is positive, so the difference value (k-a) can have both positive and negative numbers. Accordingly, when the optimal motion vector is a, the decoding device cannot know the sign of the difference value, so the encoding device can transmit the sign and size of the difference value (k-a) and information indicating 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 differential value (k-b) is negative. In addition, 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 differential value (k-c) is positive. Therefore, if the optimal motion vector is b or c, the encoding device can omit transmitting the sign of the differential value to the decoding device.

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

상기 수학식 5의 조건에서, 현재 블록의 움직임 벡터(k)가 위치하는 영역을 도시하면 도 7과 같다.Under the conditions of the above mathematical expression 5, the area where the motion vector (k) of the current block is located is illustrated in Fig. 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, if 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 DL from a, and thus can be located in the first region (71a). At this time, if the motion vector (k) of the current block is larger than a and located at a distance greater than DL from a in the case where the candidate motion vector a is the optimal motion vector, the motion vector (k) of the current block may be closer to the candidate motion vector b than to the candidate motion vector a, and thus the precondition that the candidate motion vector a is the optimal motion vector may be violated. Accordingly, if the candidate motion vector a is the optimal motion vector, the motion vector (k) of the current block cannot be larger than a, and therefore the difference value (k-a) may be negative.

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

또한, 후보 움직임 벡터c가 최적의 움직임 벡터일 경우, 현재 블록의 움직임 벡터(k)는 c를 기준으로 DL보다 큰 거리 내에 위치하므로, 제2 영역(72c)에 위치할 수 있다. 이때, 후보 움직임 벡터 c가 최적의 움직임 벡터인 경우에서 현재 블록의 움직임 벡터(k)가 c보다 작고, c를 기준으로 DL보다 먼 거리에 있다면, 현재 블록의 움직임 벡터(k)는 후보 움직임 벡터 c보다 후보 움직임 벡터 b에 더 가까워지므로 후보 움직임 벡터 c가 최적의 움직임 벡터라는 전제조건에 어긋날 수 있다. 따라서 후보 움직임 벡터c가 최적의 움직임 벡터인 경우 현재 블록의 움직임 벡터(k)는 c보다 작을 수 없으므로, 차분값(k-c)은 항상 양수일 수 있다.In addition, if 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 from c, and thus can be located in the second region (72c). At this time, if the candidate motion vector c is the optimal motion vector and the motion vector (k) of the current block is smaller than c and is located at a distance greater than DL from c, the motion vector (k) of the current block may be closer to the candidate motion vector b than to the candidate motion vector c, and thus the precondition that the candidate motion vector c is the optimal motion vector may be violated. Accordingly, if the candidate motion vector c is the optimal motion vector, the motion vector (k) of the current block cannot be smaller than c, and therefore the difference value (k-c) can always be a positive number.

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

또한, 최적의 움직임 벡터가 b일 때, 현재 블록의 움직임 벡터(k)는 존재하는 영역이 없다. 따라서, 수학식 5를 만족할 때 최적의 움직임 벡터는 b일 수 없으므로, 부호화 장치는 후보 움직임 벡터에서 b를 제외하고 a 나 c를 후보 움직임 벡터로 정의하고, a 및 c 중에서 최적의 움직임 벡터를 지시하는 정보를 생성하여 복호화 장치로 전송할 수 있고, 복호화 장치는 수학식 5를 만족하는지 판단하여 최적의 움직임 벡터를 지시하는 정보를 통해 a나 c를 최적의 움직임 벡터로 해석할 수 있다. 이러한 경우에는 후보 움직임 벡터가 하나 제외되므로 3개 중 하나를 지시하는 비트값(2bit)보다 작은 비트값(1bit)을 사용할 수 있어 부호화 및 복호화의 효율을 증가시킬 수 있다.In addition, when the optimal motion vector is b, the motion vector (k) of the current block does not exist in an area. Therefore, since the optimal motion vector cannot be b when satisfying Equation 5, the encoding device can exclude b from the candidate motion vector and define a or c as the candidate motion vector, generate information indicating the optimal motion vector among a and c, and transmit the information to the decoding device, and the decoding device can interpret a or c as the optimal motion vector through the information indicating the optimal motion vector by determining whether Equation 5 is satisfied. 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, which can increase 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 decoding device can know that the difference value (k-c) between the optimal motion vector (c) and the motion vector (k) of the current block in the second area (72c) is positive. 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은 본 발명의 일 실시예에 따른 화면 간 예측을 이용한 영상 복호화 방법에 대한 흐름도이다.FIG. 8 is a flowchart of a video decoding method using inter-screen prediction according to one embodiment of the present invention.

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

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

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계(S120)는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step (S120) of obtaining the motion vector of the current block may include a step of determining whether the size of the difference value corresponds to a preset condition, and if so, a step of determining the sign of the difference value based on the optimal motion vector obtained from information indicating the 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 may include the step of deriving a value having the largest interval between the adjacent vectors and a value having the smallest interval between the adjacent vectors, and the step of comparing the largest value and the smallest value with the size of the difference value.

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

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

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

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

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

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

여기서 영상 복호화 장치(200)는 영상 부호화 장치로부터 비트스트림을 유무선 네트워크를 통해 수신하는 통신 모듈(230)을 더 포함할 수 있다.Here, the image decoding device (200) may further include a communication module (230) that receives a bitstream from the image encoding device via 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, at least one of the steps may include: receiving a bitstream; obtaining a portion of information indicating a motion vector of a current block to be decoded from the received bitstream; determining the remaining information excluding the portion by using the obtained information to obtain the motion vector of the current block; 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 may include at least one of the size of the difference between the optimal motion vector selected from two or more candidate motion vectors and the motion vector of the current block, the sign of the difference, and information indicating the optimal motion vector.

여기서 상기 현재 블록의 움직임 벡터를 획득하는 단계는, 상기 차분값의 크기가 미리 설정된 조건에 해당하는지 판단하는 단계 및 상기 미리 설정된 조건에 해당하면, 상기 최적의 움직임 벡터를 지시하는 정보에서 획득된 최적의 움직임 벡터를 기초로 상기 차분값의 부호를 결정하는 단계를 포함할 수 있다.Here, the step of obtaining the motion vector of the current block may include the step of determining whether the size of the difference value corresponds to a preset condition, and if the size corresponds to the preset condition, the step of determining the sign of the difference value based on the optimal motion vector obtained from the information indicating the 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 may include the step of deriving a value having the largest interval between the adjacent vectors and a value having the smallest interval between the adjacent vectors, and the step of comparing the largest value and the smallest value with the size of the difference value.

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

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

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

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

여기서 영상 복호화 장치(200)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Here, examples of the image decoding device (200) may include a desktop computer, a laptop computer, a notebook, a smart phone, a tablet PC, a mobile phone, a smart watch, a smart glass, an e-book reader, a portable multimedia player (PMP), a portable game console, a navigation device, a digital camera, a digital multimedia broadcasting (DMB) player, a digital audio recorder, a digital audio player, a digital video recorder, a digital video player, a PDA (Personal Digital Assistant), etc.

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

컴퓨터 판독 가능 매체의 예에는 롬(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, and the like. Examples of program instructions may include not only machine language codes generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter, and the like. The above-described hardware devices may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.

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

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

Claims (8)

화면간 예측을 이용한 영상 복호화 방법으로,
비트스트림을 수신하는 단계;
상기 비트스트림에 포함된 분할 정보를 기초로, 코딩 블록을 분할하여 현재 블록을 결정하는 단계;
복수의 후보 움직임 벡터들 및 움직임 벡터 지시 정보를 기초로, 상기 현재 블록의 추정 움직임 벡터를 획득하는 단계, 여기서, 상기 움직임 벡터 지시 정보는 상기 복수의 후보 움직임 벡터들 중 어느 하나를 지시함;
움직임 벡터 차분값의 크기 정보 및 상기 움직임 벡터 차분값의 부호 정보를 기초로, 상기 현재 블록의 상기 움직임 벡터 차분값을 획득하는 단계;
상기 추정 움직임 벡터 및 상기 움직임 벡터 차분값을 이용하여, 상기 현재 블록의 움직임 벡터를 획득하는 단계; 및
상기 현재 블록의 상기 움직임 벡터를 이용한 화면간 예측을 통해 상기 현재 블록의 예측 블록을 생성하는 단계를 포함하되,
상기 부호 정보의 시그날링 여부는, 상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰지 여부를 기초로 결정되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰 경우, 상기 부호 정보는 시그날링되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 작거나 같은 경우, 상기 부호 정보는 시그날링되지 않고,
상기 예측 블록 및 상기 비트스트림으로부터 스캔 패턴을 기초로 획득한 상기 현재 블록의 잔차 블록을 기초로, 상기 현재 블록은 복호화되고,
상기 스캔 패턴은, 지그재그 스캔 패턴, 대각선 스캔 패턴, 또는 래스터 스캔 패턴인 것을 특징으로 하는, 영상 복호화 방법.
A video decoding method using inter-screen prediction.
Step of receiving a bitstream;
A step of determining a current block by dividing a coding block based on the division information included in the above bitstream;
A step of 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;
A step of obtaining the motion vector differential of the current block based on the size information of the motion vector differential and the sign information of the motion vector differential;
A step of obtaining a motion vector of the current block by using the estimated motion vector and the motion vector difference; and
A step of generating a prediction block of the current block through inter-screen prediction using the motion vector of the current block,
Whether or not the above code information is signaled 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 above motion vector difference is greater than a pre-defined threshold size, the sign information is signaled,
If the size of the above motion vector difference is less than or equal to a pre-defined threshold size, the sign information is not signaled.
Based on the residual block of the current block obtained based on the scan pattern from the predicted block and the bitstream, the current block is decoded,
An image decoding method, characterized in that the scan pattern is a zigzag scan pattern, a diagonal scan pattern, or a raster scan pattern.
제1항에 있어서,
상기 분할 정보는 쿼드 트리 분할을 기초로 분할할지 여부를 나타내는 쿼드 트리 분할 플래그, 바이너리 트리 분할을 기초로 분할할지 여부를 나타내는 바이너리 트리 분할 플래그, 또는 수직 방향 또는 수평 방향으로 분할할지 여부를 나타내는 분할 방향 플래그 중 적어도 하나를 포함하는, 영상 복호화 방법.
In the first paragraph,
A method for decoding an image, wherein the above-described splitting information includes at least one of a quad tree splitting flag indicating whether to split based on a quad tree splitting, a binary tree splitting flag indicating whether to split based on a binary tree splitting, or a splitting direction flag indicating whether to split in a vertical direction or a horizontal direction.
제2항에 있어서,
상기 코딩 블록은 상기 쿼드 트리 분할 또는 상기 바이너리 트리 분할 중 적어도 하나를 포함하는 분할 타입을 기초로 분할되는, 영상 복호화 방법.
In the second paragraph,
A method for decoding an image, wherein the coding block is divided based on a division type including at least one of the quad tree division or the binary tree division.
제3항에 있어서,
상기 코딩 블록이 128x128의 크기를 가지는 경우, 상기 코딩 블록을 분할함에 있어서, 상기 쿼드 트리 분할만 이용되는, 영상 복호화 방법.
In the third paragraph,
An image decoding method in which only the quad tree division is used to divide the coding block when the coding block has a size of 128x128.
제3항에 있어서,
상기 바이너리 트리 분할은 상기 쿼드 트리 분할을 기초로 한 블록 분할이 더 이상 수행되지 않는 경우에만 허용되는, 영상 복호화 방법.
In the third paragraph,
A method for decoding an image, wherein the above binary tree partitioning is allowed only if block partitioning based on the above quad tree partitioning is no longer performed.
제2항에 있어서,
상기 분할 방향 플래그는 상기 코딩 블록이 속한 상위 블록의 분할 타입에 따라 선택적으로 시그날링되고,
상기 상위 블록은 상기 코딩 블록보다 작은 분할 깊이를 가지는 블록을 나타내는, 영상 복호화 방법.
In the second paragraph,
The above split direction flag is optionally signaled depending on the split type of the upper block to which the above coding block belongs.
A method for decoding an image, wherein the upper block represents a block having a smaller split depth than the coding block.
화면간 예측을 이용한 영상 부호화 방법으로,
제1 코딩 블록을 복수의 제2 코딩 블록들로 분할하는 분할 정보를 부호화는 단계;
현재 블록의 화면간 예측을 위한 움직임 벡터를 부호화하는 단계,
여기서, 상기 현재 블록은 상기 제2 코딩 블록들 중 어느 하나이고,
상기 현재 블록의 상기 움직임 벡터를 부호화하는 단계는,
복수의 후보 움직임 벡터들 중 상기 현재 블록의 추정 움직임 벡터를 지시하는 움직임 벡터 지시 정보를 부호화하는 단계, 및
상기 현재 블록의 움직임 벡터 차분값의 크기를 결정하는 크기 정보 및 상기 움직임 벡터 차분값의 부호를 결정하는 부호 정보를 부호화하는 단계를 포함함; 및
상기 분할 정보, 상기 움직임 벡터 지시 정보, 상기 크기 정보 및 상기 부호 정보를 포함하는 비트스트림을 생성하는 단계를 포함하되,
상기 부호 정보의 부호화 여부는, 상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰지 여부를 기초로 결정되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰 경우, 상기 부호 정보는 부호화되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 작거나 같은 경우, 상기 부호 정보는 부호화되지 않고,
상기 현재 블록의 원본 블록 및 상기 현재 블록의 예측 블록을 기초로, 상기 현재 블록의 잔차 블록은 스캔 패턴을 기초로 부호화되고,
상기 현재 블록의 예측 블록은, 상기 현재 블록의 화면간 예측을 통해 획득되고,
상기 스캔 패턴은, 지그재그 스캔 패턴, 대각선 스캔 패턴, 또는 래스터 스캔 패턴인 것을 특징으로 하는, 영상 부호화 방법.
A video encoding method using inter-screen prediction.
A step of encoding division information for dividing a first coding block into a plurality of second coding blocks;
A step for 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:
A step of encoding motion vector indication information indicating an estimated motion vector of the current block among a plurality of candidate motion vectors, and
A step of encoding size information for determining the size of the motion vector differential value of the current block and sign information for determining the sign of the motion vector differential value; and
Comprising a step of generating a bitstream including the above segmentation information, the motion vector indication information, the size information and the sign information,
Whether or not the above-mentioned sign information is encoded 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 above motion vector difference is greater than a pre-defined threshold size, the sign information is encoded,
If the size of the above motion vector difference is less than or equal to a pre-defined threshold size, the sign information is not encoded.
Based on the original block of the current block and the predicted block of the current block, the residual block of the current block is encoded based on the scan pattern,
The prediction block of the current block is obtained through inter-screen prediction of the current block,
An image encoding method, characterized in that the scan pattern is a zigzag scan pattern, a diagonal scan pattern, or a raster scan pattern.
화면간 예측을 이용한 영상 부호화 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서,
상기 영상 부호화 방법은,
제1 코딩 블록을 복수의 제2 코딩 블록들로 분할하는 분할 정보를 부호화는 단계;
현재 블록의 화면간 예측을 위한 움직임 벡터를 부호화하는 단계,
여기서, 상기 현재 블록은 제2 코딩 블록들 중 어느 하나이고,
상기 현재 블록의 상기 움직임 벡터를 부호화하는 단계는,
복수의 후보 움직임 벡터들 중 상기 현재 블록의 추정 움직임 벡터를 지시하는 움직임 벡터 지시 정보를 부호화하는 단계, 및
상기 현재 블록의 움직임 벡터 차분값의 크기를 결정하는 크기 정보 및 상기 움직임 벡터 차분값의 부호를 결정하는 부호 정보를 부호화하는 단계를 포함함; 및
상기 분할 정보, 상기 움직임 벡터 지시 정보, 상기 크기 정보 및 상기 부호 정보를 포함하는 상기 비트스트림을 생성하는 단계를 포함하되,
상기 부호 정보의 부호화 여부는, 상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰지 여부를 기초로 결정되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 큰 경우, 상기 부호 정보는 부호화되고,
상기 움직임 벡터 차분값의 크기가 기-정의된 임계 크기보다 작거나 같은 경우, 상기 부호 정보는 부호화되지 않고,
상기 현재 블록의 원본 블록 및 상기 현재 블록의 예측 블록을 기초로, 상기 현재 블록의 잔차 블록은 스캔 패턴을 기초로 부호화되고,
상기 현재 블록의 예측 블록은, 상기 현재 블록의 화면간 예측을 통해 획득되고,
상기 스캔 패턴은, 지그재그 스캔 패턴, 대각선 스캔 패턴, 또는 래스터 스캔 패턴인 것을 특징으로 하는, 컴퓨터 판독가능한 기록매체.
A computer-readable recording medium storing a bitstream generated by a video encoding method using inter-screen prediction,
The above image encoding method is,
A step of encoding division information for dividing a first coding block into a plurality of second coding blocks;
A step for 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:
A step of encoding motion vector indication information indicating an estimated motion vector of the current block among a plurality of candidate motion vectors, and
A step of encoding size information for determining the size of the motion vector differential value of the current block and sign information for determining the sign of the motion vector differential value; and
A step of generating the bitstream including the above segmentation information, the motion vector indication information, the size information and the sign information,
Whether or not the above-mentioned sign information is encoded 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 above motion vector difference is greater than a pre-defined threshold size, the sign information is encoded,
If the size of the above motion vector difference is less than or equal to a pre-defined threshold size, the sign information is not encoded.
Based on the original block of the current block and the predicted block of the current block, the residual block of the current block is encoded based on the scan pattern,
The prediction block of the current block is obtained through inter-screen prediction of the current block,
A computer-readable recording medium, characterized in that the scan pattern is a zigzag scan pattern, a diagonal scan pattern, or a raster scan pattern.
KR1020240171802A 2017-01-02 2024-11-27 Image decoding method and apparatus using inter picture prediction Pending KR20250001975A (en)

Applications Claiming Priority (3)

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

Related Parent Applications (1)

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

Publications (1)

Publication Number Publication Date
KR20250001975A true KR20250001975A (en) 2025-01-07

Family

ID=62917341

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020180000034A Active KR102586198B1 (en) 2017-01-02 2018-01-02 Image decoding method and apparatus using inter picture prediction
KR1020240171802A Pending KR20250001975A (en) 2017-01-02 2024-11-27 Image decoding method and apparatus using inter picture prediction

Family Applications Before (1)

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

Country Status (1)

Country Link
KR (2) KR102586198B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374598B2 (en) * 2011-03-21 2016-06-21 Lg Electronics Inc. Method for selecting motion vector predictor and device using same
US20150139323A1 (en) * 2012-07-24 2015-05-21 Electronics And Telecommunications Research Institute Method of decoding images and device using 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
KR102586198B1 (en) 2023-10-06

Similar Documents

Publication Publication Date Title
US11825099B2 (en) Image encoding/decoding method and apparatus using intra-screen prediction
US11553186B2 (en) In-loop filtering method according to adaptive pixel classification standard
US12348748B2 (en) Cross component filtering using a temporal source frame
JP7434588B2 (en) Method and apparatus for video filtering
US11949865B2 (en) Image encoding/decoding method using pixel value range constituting image
KR20220166354A (en) Method and Apparatus for Video Filtering
US20210289202A1 (en) Intra prediction method and apparatus for performing adaptive filtering on reference pixel
US20250193436A1 (en) Method and apparatus for decoding image using interpicture prediction
KR102711772B1 (en) The method of encoding and decoding of quantization matrix and the apparatus for using the same
JP2024019652A (en) Method and apparatus for video filtering
KR20180080114A (en) Intra prediction method considering redundancy of prediction blocks and video decoding apparatus performing intra prediction
KR20250001975A (en) Image decoding method and apparatus using inter picture prediction
US12184846B2 (en) Intra prediction method and apparatus for performing adaptive filtering on reference pixel
KR20240153950A (en) Intraprediction method and apparatus for performing adaptive filtering on reference pixels
KR20240051807A (en) Image transmisstion method based on accumulation of region of interest
WO2025072627A1 (en) Signalling improvement for in-loop filtering in video coding

Legal Events

Date Code Title Description
A107 Divisional application of patent
PA0107 Divisional application

Comment text: Divisional Application of Patent

Patent event date: 20241127

Patent event code: PA01071R01D

Filing date: 20230927

Application number text: 1020230131205

PA0201 Request for examination

Patent event code: PA02011R04I

Patent event date: 20241127

Comment text: Divisional Application of Patent

PG1501 Laying open of application