KR20200085234A - Image encoding/decoding method and apparatus using efficient motion information prediction - Google Patents

Image encoding/decoding method and apparatus using efficient motion information prediction Download PDF

Info

Publication number
KR20200085234A
KR20200085234A KR1020200001228A KR20200001228A KR20200085234A KR 20200085234 A KR20200085234 A KR 20200085234A KR 1020200001228 A KR1020200001228 A KR 1020200001228A KR 20200001228 A KR20200001228 A KR 20200001228A KR 20200085234 A KR20200085234 A KR 20200085234A
Authority
KR
South Korea
Prior art keywords
motion information
candidate
block
buffer
prediction
Prior art date
Application number
KR1020200001228A
Other languages
Korean (ko)
Other versions
KR102342157B1 (en
Inventor
문주희
원동재
하재민
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to PCT/KR2020/000211 priority Critical patent/WO2020141962A1/en
Priority to US17/420,784 priority patent/US20220116588A1/en
Publication of KR20200085234A publication Critical patent/KR20200085234A/en
Priority to KR1020210181599A priority patent/KR102585179B1/en
Application granted granted Critical
Publication of KR102342157B1 publication Critical patent/KR102342157B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Landscapes

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

Abstract

A method and an apparatus for image encoding/decoding, according to the present invention, may generate a candidate list of a current block and perform inter-prediction of the current block by using any one of a plurality of candidates belonging to the candidate list. Here, the plurality of candidates comprise at least one from among a spatial candidate, a temporal candidate, and a restoration information-based candidate, and the restoration information-based candidate may be added from a buffer which stores motion information decoded prior to the current block.

Description

효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치{IMAGE ENCODING/DECODING METHOD AND APPARATUS USING EFFICIENT MOTION INFORMATION PREDICTION} Image encoding/decoding method and apparatus using efficient motion information prediction{IMAGE ENCODING/DECODING METHOD AND APPARATUS USING EFFICIENT MOTION INFORMATION PREDICTION}

본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것으로, 보다 상세하게는 현재 블록의 예측 블록 생성 시, 복원된 복수의 움직임정보들 중 현재 블록의 최적 움직임정보를 결정하기 위한 예측기에 해당하는 움직임정보를 효율적으로 결정하는 방법 및 장치에 관한 것이다.The present invention relates to an image encoding/decoding method and apparatus, and more particularly, when generating a prediction block of a current block, motion information corresponding to a predictor for determining optimal motion information of a current block among a plurality of restored motion information It relates to a method and apparatus for efficiently determining.

최근, 인터넷에서는 동영상과 같은 멀티미디어 데이터의 수요가 급격히 증가하고 있다. 하지만 채널(Channel)의 대역폭(Bandwidth)이 발전하는 속도는 급격히 증가하고 있는 멀티미디어 데이터의 양을 따라가기 힘든 상황이다. 이에 따라, 국제 표준화 기구인 ITU-T의 VCEG(Video Coding Expert Group)과 ISO/IEC의 MPEG(Moving Picture Expert Group)은 2014년 2월, 동영상 압축 표준인 HEVC(High Efficiency Video Coding) 버전1을 제정하였다.Recently, the demand for multimedia data such as video has been rapidly increasing on the Internet. However, the speed at which the bandwidth of the channel develops is difficult to keep up with the rapidly increasing amount of multimedia data. Accordingly, the International Standardization Organization's Video Coding Expert Group (VCEG) of the ITU-T and the Moving Picture Expert Group (MPEG) of the ISO/IEC announced the High Efficiency Video Coding (HEVC) version 1, the video compression standard, in February 2014. Instituted.

HEVC에서는 화면 내 예측(또는 인트라 예측), 화면 간 예측(또는 인터 예측), 변환, 양자화, 엔트로피 부호화 및 인-루프 필터 등의 기술을 정의하고 있다.HEVC defines techniques such as intra-picture prediction (or intra prediction), inter-picture prediction (or inter prediction), transformation, quantization, entropy encoding, and in-loop filters.

본 발명은 MERGE/AMVP 후보 리스트를 생성할 때 이용되는 움직임정보들을 효율적으로 유도하여 예측 효율을 향상시킬 수 있는 방법을 제안하고자 한다.The present invention is to propose a method for improving prediction efficiency by efficiently deriving motion information used when generating a MERGE/AMVP candidate list.

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 현재 블록의 후보 리스트를 생성하고, 상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행할 수 있다.The video encoding/decoding method and apparatus according to the present invention may generate a candidate list of a current block, and perform inter prediction of the current block by using any one of a plurality of candidates belonging to the candidate list.

본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 복수의 후보는 공간적 후보, 시간적 후보 또는 복원정보기반 후보 중 적어도 하나를 포함하고, 복원정보기반 후보는 상기 현재 블록 이전에 복호화된 움직임정보를 저장하는 버퍼로부터 추가될 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the plurality of candidates include at least one of a spatial candidate, a temporal candidate, or a reconstruction information-based candidate, and the reconstruction information-based candidate is motion information decoded before the current block. It can be added from the buffer to store.

본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 버퍼에 저장된 움직임정보는, 상기 버퍼에 나중에 저장된 움직임정보 순으로 상기 후보 리스트에 추가되거나, 상기 버퍼에 먼저 저장된 움직임정보 순으로 상기 후보 리스트에 추가될 수 있다.In the video encoding/decoding method and apparatus according to the present invention, motion information stored in the buffer is added to the candidate list in the order of motion information stored in the buffer later, or the candidate list in the order of motion information stored in the buffer first. Can be added to

본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 버퍼에 저장된 움직임정보가 상기 후보 리스트에 추가되는 순서 또는 개수는, 상기 현재 블록의 화면 간 예측 모드에 따라 상이하게 결정될 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the order or number of motion information stored in the buffer to be added to the candidate list may be differently determined according to a prediction mode between screens of the current block.

본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 후보 리스트는, 상기 후보 리스트의 최대 후보 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지거나, 상기 최대 후보 개수에서 1을 뺀 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워질 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the candidate list is filled using motion information stored in the buffer until the maximum number of candidates of the candidate list is reached, or 1 is selected from the maximum number of candidates. It can be filled using the motion information stored in the buffer until it reaches the subtracted number.

본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 버퍼는 코딩 트리 유닛(CTU), CTU 행, 슬라이스 또는 픽쳐 중 어느 하나의 단위로 초기화될 수 있다.In the image encoding/decoding method and apparatus according to the present invention, the buffer may be initialized in any one of a coding tree unit (CTU), a CTU row, a slice, or a picture.

본 발명에 따른 컴퓨터로 판독가능한 기록 매체는, 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장할 수 있다.The computer-readable recording medium according to the present invention can store a bitstream decoded by an image decoding method.

본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있이서, 상기 영상 복호화 방법은, 현재 블록의 후보 리스트를 생성하는 단계 및 상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함할 수 있다.In a computer-readable recording medium according to the present invention, the image decoding method comprises generating a candidate list of a current block and using one of a plurality of candidates belonging to the candidate list, And performing prediction.

본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 복수의 후보는, 공간적 후보, 시간적 후보 또는 복원정보기반 후보 중 적어도 하나를 포함하고, 복원정보기반 후보는, 상기 현재 블록 이전에 복호화된 움직임정보를 저장하는 버퍼로부터 추가될 수 있다.In the computer-readable recording medium according to the present invention, the plurality of candidates include at least one of a spatial candidate, a temporal candidate, or a reconstruction information-based candidate, and the reconstruction information-based candidate is a motion decoded before the current block. It can be added from a buffer that stores information.

본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 버퍼에 저장된 움직임정보는, 상기 버퍼에 나중에 저장된 움직임정보 순으로 상기 후보 리스트에 추가되거나, 상기 버퍼에 먼저 저장된 움직임정보 순으로 상기 후보 리스트에 추가될 수 있다.In the computer-readable recording medium according to the present invention, the motion information stored in the buffer is added to the candidate list in the order of motion information stored in the buffer later, or in the order of motion information stored in the buffer first. Can be added.

본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 버퍼에 저장된 움직임정보가 상기 후보 리스트에 추가되는 순서 또는 개수는, 상기 현재 블록의 화면 간 예측 모드에 따라 상이하게 결정될 수 있다.In the computer-readable recording medium according to the present invention, the order or number of motion information stored in the buffer added to the candidate list may be differently determined according to a prediction mode between screens of the current block.

본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 후보 리스트는, 상기 후보 리스트의 최대 후보 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지거나, 상기 최대 후보 개수에서 1을 뺀 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워질 수 있다.In the computer-readable recording medium according to the present invention, the candidate list is filled with motion information stored in the buffer until the maximum number of candidates in the candidate list is reached, or 1 is subtracted from the maximum number of candidates Until the number is reached, it may be filled using motion information stored in the buffer.

본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 버퍼는 코딩 트리 유닛(CTU), CTU 행, 슬라이스 또는 픽쳐 중 어느 하나의 단위로 초기화될 수 있다.In the computer-readable recording medium according to the present invention, the buffer may be initialized by any one of coding tree unit (CTU), CTU row, slice, or picture.

본 발명에 따르면, MERGE/AMVP 후보 리스트를 생성할 때 이용되는 움직임정보들을 효율적으로 유도하여 예측 효율을 향상시킬 수 있다.According to the present invention, prediction information can be improved by efficiently deriving motion information used when generating a MERGE/AMVP candidate list.

도 1은 영상 부호화 장치를 간략하게 나타낸 흐름도이다.
도 2는 영상 부호화 장치의 예측부를 상세히 설명하기 위한 도면이다.
도 3은 SKIP, MERGE 모드의 후보 움직임정보를 유도하는 방법을 설명하기 위한 도면이다.
도 4는 AMVP 모드의 후보 움직임정보를 유도하는 방법을 나타낸 흐름도이다.
도 5는 예측 정보를 부호화하는 방법을 나타낸 흐름도이다.
도 6은 영상 복호화 장치를 간략하게 나타낸 흐름도이다.
도 7은 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 8은 예측 정보를 복호화하는 방법을 나타낸 흐름도이다.
도 9는 본 실시예에 따른 MERGE/AMVP 후보 리스트를 구성하는 방법을 설명하기 위한 흐름도이다.
도 10은 본 실시예에 따른 시간적 후보 움직임정보를 유도하는 방법을 설명하기 위한 도면이다.
도 11은 본 실시예에 따른 시간적 후보 움직임정보를 유도할 때, 타깃 픽쳐에서 타깃 블록을 결정하는 제1 방법을 설명하기 위한 도면이다.
도 12는 본 실시예에 따른 시간적 후보 움직임정보를 유도할 때, 타깃 픽쳐에서 타깃 블록을 결정하는 제2 방법을 설명하기 위한 도면이다.
도 13은 본 실시예에 따른 시간적 후보 움직임정보를 유도할 때, 타깃 픽쳐에서 타깃 블록을 결정하는 제3 방법을 설명하기 위한 도면이다.
도 14는 본 실시예에 따른 History-based 후보 움직임정보를 유도하는 제1 방법을 설명하기 위한 도면이다.
도 15는 본 실시예에 따른 History-based 후보 움직임정보를 유도하는 제2 방법을 설명하기 위한 도면이다.
도 16은 본 실시예에 따른 평균 후보 움직임정보를 유도하는 제1 방법을 설명하기 위한 도면이다.
도 17은 본 실시예에 따른 평균 후보 움직임정보를 유도하는 제2 방법을 설명하기 위한 도면이다.
1 is a flowchart briefly showing an image encoding apparatus.
2 is a view for explaining in detail the prediction unit of the video encoding apparatus.
3 is a diagram for explaining a method for deriving candidate motion information in SKIP and MERGE modes.
4 is a flowchart showing a method of deriving candidate motion information in the AMVP mode.
5 is a flowchart illustrating a method of encoding prediction information.
6 is a flowchart briefly illustrating an image decoding apparatus.
7 is a view for explaining a prediction unit of an image decoding apparatus.
8 is a flowchart illustrating a method of decoding prediction information.
9 is a flowchart illustrating a method of configuring a MERGE/AMVP candidate list according to the present embodiment.
10 is a view for explaining a method of deriving temporal candidate motion information according to the present embodiment.
11 is a diagram for explaining a first method of determining a target block in a target picture when deriving temporal candidate motion information according to the present embodiment.
12 is a diagram for describing a second method of determining a target block in a target picture when deriving temporal candidate motion information according to the present embodiment.
13 is a diagram for explaining a third method of determining a target block in a target picture when deriving temporal candidate motion information according to the present embodiment.
14 is a diagram for explaining a first method for deriving history-based candidate motion information according to the present embodiment.
15 is a view for explaining a second method for deriving the history-based candidate motion information according to the present embodiment.
16 is a diagram for describing a first method of deriving average candidate motion information according to the present embodiment.
17 is a diagram for describing a second method of deriving average candidate motion information according to the present embodiment.

본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Embodiments of the present invention will be described in detail so that those skilled in the art to which the present invention pertains may easily practice the present invention with reference to the accompanying drawings. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.Throughout this specification, when a part is said to be'connected' to another part, this includes not only the case of being directly connected, but also the case of being electrically connected with another element in between.

또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.In addition, when it is said that a part "includes" a certain component in the whole specification, it means that other components may be further included rather than excluding other components unless otherwise specified.

또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Further, terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.

또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.In addition, in the embodiments of the apparatus and method described herein, a part of the configuration of the apparatus or a part of the method may be omitted. Also, the order of some of the components of the device or some of the steps of the method may be changed. In addition, other configurations or other steps may be inserted in some of the configuration of the device or in some of the steps of the method.

또한, 본 발명의 제1 실시예의 일부 구성 또는 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.Further, some of the components or steps of the first embodiment of the present invention may be added to the second embodiment of the present invention, or may replace some components or steps of the second embodiment.

덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.In addition, the components shown in the embodiments of the present invention are shown independently to indicate different characteristic functions, and do not mean that each component is composed of separate hardware or one software component unit. That is, for convenience of description, each component is listed as each component, and at least two components of each component may be combined to form one component, or one component may be divided into a plurality of components to perform a function. The integrated and separated embodiments of each of these components are also included in the scope of the present invention without departing from the essence of the present invention.

본 명세서에서, 블록은 단위, 영역, 유닛, 파티션 등으로 다양하게 표현될 수 있고, 샘플은 화소, 펠(pel), 픽셀 등으로 다양하게 표현될 수 있다.In the present specification, blocks may be variously expressed in units, regions, units, partitions, and the like, and samples may be variously expressed in pixels, pels, pixels, and the like.

이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, redundant description of the same components will be omitted.

도 1은 영상 부호화 장치의 구성을 간략하게 나타낸 블록 흐름도이다. 영상 부호화 장치는 영상을 부호화하는 장치로써 크게 블록 분할부, 예측부, 변환부, 양자화부, 엔트로피 부호화부, 역 양자화부, 역 변환부, 가산부, 인루프 필터부, 메모리부, 감산부를 포함할 수 있다.1 is a block flow diagram briefly showing the configuration of a video encoding apparatus. The image encoding apparatus is an apparatus for encoding an image, and includes a block division unit, a prediction unit, a transformation unit, a quantization unit, an entropy encoding unit, an inverse quantization unit, an inverse transformation unit, an addition unit, an in-loop filter unit, a memory unit, and a subtraction unit. can do.

블록 분할부(101)는 최대 크기의 부호화 하고자 하는 블록(이하, 최대 부호화 블록이라 칭함)으로부터 최소 크기의 부호화 하고자 하는 블록(이하, 최소 부호화 블록이라 칭함)까지 분할해 나간다. 블록 분할 방법에는 다양한 방법이 있다. 쿼드-트리 분할(이하, QT(Quad-Tree) 분할이라 칭함)은 현재 부호화 블록을 정확히 사분하는 분할이다. 이진-트리 분할(이하, BT(Binary-Tree) 분할이라 칭함)은 부호화 블록을 가로 방향 혹은 세로 방향으로 정확히 이분하는 분할이다. 터너리-트리(Ternary-tree) 분할은 부호화 블록을 가로 또는 세로 방향 중 어느 하나의 방향으로 삼분할하는 분할이다. 부호화 블록이 가로 방향으로 분할된 경우, 분할된 블록의 높이의 비는 {1:n:1}일 수 있다. 또는, 부호화 블록이 세로 방향으로 분할된 경우, 분할된 블록의 너비의 비는 {1:n:1}일 수 있다. 여기서, n은 1, 2, 3, 또는 그 이상의 자연수일 수 있다. 이 외에 다양한 분할 방법이 있을 수 있다. 또한, 여러 분할 방법들을 동시에 고려하여 분할해 나가는 방법도 가능하다. The block dividing unit 101 divides blocks from a maximum sized block (hereinafter referred to as a maximum coding block) to a minimum sized block (hereinafter referred to as a minimum coding block). There are various methods of the block division method. Quad-tree splitting (hereinafter referred to as QT (Quad-Tree) splitting) is a split that accurately divides the current coding block. Binary-tree partitioning (hereinafter, referred to as BT (Binary-Tree) partitioning) is a partition that divides an encoding block into horizontal or vertical directions exactly. A ternary-tree split is a split that divides an encoded block into either a horizontal or vertical direction. When the coding block is split in the horizontal direction, the ratio of the height of the divided block may be {1:n:1}. Alternatively, when the coding block is split in the vertical direction, the ratio of the width of the divided block may be {1:n:1}. Here, n may be 1, 2, 3, or more natural numbers. In addition, there may be various partitioning methods. In addition, it is also possible to divide by considering several division methods simultaneously.

예측부(102)는 현재 원본 블록에서 현재 예측 하고자 하는 블록(이하, 예측 블록이라 칭함)의 주변 화소나 이전에 이미 부호화/복호화가 끝난 참조 픽쳐 내 화소들을 이용하여 예측 블록을 생성한다. 예측 블록은 부호화 블록 내에서 1개 혹은 그 이상의 예측 블록들이 생성될 수 있다. 부호화 블록 내 예측 블록이 1개일 경우, 예측 블록은 부호화 블록과 동일한 형태이다. 동영상 신호의 예측 기술에는 크게 화면 내 예측과 화면 간 예측으로 구성 되어 있는데, 화면 내 예측은 현재 블록의 주변 화소들을 이용하여 예측 블록을 생성하는 방식이고, 화면 간 예측은 이전에 이미 부호화/복호화가 끝난 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 찾아서 예측 블록을 생성하는 방식이다. 그 후, 원본 블록과 예측 블록을 뺀 잔차 블록을 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 등 다양한 기법을 이용하여 예측 블록의 최적 예측 모드를 결정한다. RDO 비용 계산식은 수학식 1과 같다.The prediction unit 102 generates a prediction block using neighboring pixels of a block to be currently predicted (hereinafter referred to as a prediction block) from a current original block or pixels in a reference picture that has been previously encoded/decoded. The prediction block may generate one or more prediction blocks in the coding block. When there is one prediction block in the coding block, the prediction block has the same form as the coding block. The prediction technique of a video signal is largely composed of intra-screen prediction and inter-screen prediction. In-screen prediction is a method of generating a prediction block using surrounding pixels of a current block, and inter-screen prediction has been previously encoded/decoded. This is a method of finding a block most similar to the current block in the finished reference picture and generating a predictive block. Then, the optimal prediction mode of the prediction block is determined by using various techniques such as rate-distortion optimization (RDO) of the residual block minus the original block and the prediction block. The RDO cost calculation equation is as shown in Equation 1.

Figure pat00001
Figure pat00001

D, R, J는 각각 양자화에 의한 열화, 압축 스트림의 레이트, RD 비용이고, Φ는 부호화 모드, λ는 라그랑지안 승수(Lagrangian multiplier)로 에러의 양과 비트량 간의 단위를 일치시키기 위한 스케일 보정용 계수로 사용한다. 부호화 과정에서 최적의 부호화 모드로 선택되기 위해서는 해당 모드를 적용했을 때의 J 즉, RD-비용값이 다른 모드를 적용했을 때보다 작아야 하는데, RD-비용값을 구하는 식에는 비트율과 에러를 동시에 고려하여 계산한다.D, R, and J are deterioration by quantization, rate of compressed stream, and RD cost, Φ is the encoding mode, and λ is the Lagrangian multiplier, which is a scale correction factor to match the unit between the amount of error and the amount of bit. use. In order to be selected as the optimal encoding mode in the encoding process, J when the corresponding mode is applied, that is, the RD-cost value must be smaller than when other modes are applied. In the equation for obtaining the RD-cost value, bit rate and error are considered simultaneously. To calculate.

화면 내 예측부(미도시)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 화면 내 예측이 수행될 현재 블록의 주변 블록의 예측 모드가 화면 간 예측 예측인 경우, 화면 간 예측 예측이 적용된 주변 블록에 포함되는 참조 픽셀을, 화면 내 예측이 적용된 주변의 다른 블록 내의 참조 픽셀로 대체될 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를, 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.The intra prediction unit (not shown) may generate a prediction block based on reference pixel information around the current block, which is pixel information in the current picture. When the prediction mode of the neighboring block of the current block to which the intra prediction is to be performed is inter prediction prediction, the reference pixel included in the neighboring block to which the inter prediction prediction is applied is referred to as a reference pixel in another block around the intra prediction is applied. Can be replaced. That is, when the reference pixel is not available, the available reference pixel information may be replaced with at least one reference pixel among the available reference pixels.

화면 내 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보를 사용하지 않는 비방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측하기 위해 사용된 화면 내 예측 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.In the intra prediction, the prediction mode may have a directional prediction mode that uses reference pixel information according to a prediction direction and a non-directional mode that does not use directional information when performing prediction. The mode for predicting the luminance information and the mode for predicting the color difference information may be different, and the prediction prediction mode information or the predicted luminance signal information used in the screen used to predict the luminance information may be used to predict the color difference information. have.

화면 내 예측부는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 필터로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 적응적으로 결정할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.The intra prediction unit may include an adaptive intra smoothing (AIS) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter is a filter that performs filtering on the reference pixel of the current block and can adaptively determine whether to apply the filter according to the prediction mode of the current prediction unit. When the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.

화면 내 예측부의 참조 화소 보간부는 예측 단위의 화면 내 예측 예측 모드가 참조 화소를 보간한 화소값을 기초로 화면 내 예측 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 분수 단위 위치의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.The reference pixel interpolation unit of the on-screen prediction unit interpolates the reference pixel and the reference pixel at a fractional unit position when the intra-prediction prediction mode of the prediction unit is a prediction unit that performs intra-prediction prediction based on the pixel value that interpolated the reference pixel. Can generate If the prediction mode of the current prediction unit is a prediction mode in which a prediction block is generated without interpolating a reference pixel, the reference pixel may not be interpolated. The DC filter may generate a prediction block through filtering when the prediction mode of the current block is the DC mode.

화면 간 예측부(미도시)는, 메모리(110)에 저장된 기-복원된 참조영상과 움직임 정보를 이용하여 예측 블록을 생성한다. 움직임 정보는 예컨대 움직임 벡터, 참조픽처 인덱스, 리스트 1 예측 플래그, 리스트 0 예측 플래그 등을 포함할 수 있다.The inter-screen prediction unit (not shown) generates a prediction block using pre-restored reference images and motion information stored in the memory 110. The motion information may include, for example, a motion vector, a reference picture index, a list 1 prediction flag, a list 0 prediction flag, and the like.

화면 간 예측부는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 블록을 유도할 수 있다. 또한, 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로, 현재 블록의 예측 블록을 유도할 수도 있다. 본 발명의 일 실시예에 따른 화면 간 예측부는 참조 픽쳐 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다. The inter-screen prediction unit may derive a prediction block based on information of at least one of a previous picture or a subsequent picture of the current picture. In addition, a prediction block of a current block may be derived based on information of some regions in which encoding in a current picture is completed. The inter-screen prediction unit according to an embodiment of the present invention may include a reference picture interpolation unit, a motion prediction unit, and a motion compensation unit.

참조 픽쳐 보간부에서는 메모리(110)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8 탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4 탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.The reference picture interpolator may receive reference picture information from the memory 110 and generate pixel information of an integer pixel or less in the reference picture. In the case of luminance pixels, a DCT-based 8-tap interpolation filter (DCT-based interpolation filter) having different filter coefficients may be used to generate pixel information of integer pixels or less in units of 1/4 pixels. In the case of a color difference signal, a DCT-based interpolation filter (DCT-based interpolation filter) having different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/8 pixels.

움직임 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 움직임 예측을 수행할 수 있다. 움직임 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 움직임 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 움직임 벡터값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 블록의 예측 블록을 예측할 수 있다. 움직임 예측 방법으로 스킵(Skip) 모드, 머지(Merge) 모드, AMVP(Advanced Motion Vector Prediction) 모드 등 다양한 방법이 사용될 수 있다.The motion prediction unit may perform motion prediction based on the reference picture interpolated by the reference picture interpolation unit. As a method for calculating a motion vector, various methods such as Full Search-based Block Matching Algorithm (FBMA), Three Step Search (TSS), and New Three-Step Search Algorithm (NTS) can be used. The motion vector may have a motion vector value in units of 1/2 or 1/4 pixels based on the interpolated pixels. The motion prediction unit may predict a prediction block of a current block by differently using a motion prediction method. Various methods such as a skip mode, a merge mode, and an advanced motion vector prediction (AMVP) mode may be used as a motion prediction method.

도 2는 영상 부호화 장치의 예측부 내의 흐름을 설명한 흐름도이다. 원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행(201)하는 경우, 각 예측 모드 별로 최적 화면 내 예측 모드를 RD-비용값을 이용하여 결정(202)하고, 예측 블록을 생성한다. 원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행(203)하는 경우, SKIP 모드, MERGE 모드, AMVP 모드에 대해서 RD-비용값을 계산한다. MERGE 후보 탐색부(204)에서는 SKIP 모드와, MERGE 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 세트 중, 최적 움직임정보를 RD-비용값을 이용하여 결정(205)한다. AMVP 후보 탐색부(206)에서는 AMVP 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 세트들을 이용하여 움직임 추정을 수행(207)하고, 최적 움직임정보를 결정한다. 각 모드들에서 결정된 최적 움직임정보를 이용하여 움직임보상을 수행(208)하여 예측 블록을 생성한다.2 is a flowchart illustrating a flow in the prediction unit of the video encoding apparatus. When performing intra prediction using the original information and the reconstructed information (201), the optimal intra prediction mode for each prediction mode is determined using an RD-cost value (202), and a prediction block is generated. When inter-screen prediction is performed using the original information and the reconstruction information (203), RD-cost values are calculated for the SKIP mode, the MERGE mode, and the AMVP mode. The MERGE candidate search unit 204 configures a SKIP mode and a set of candidate motion information for the MERGE mode. Among the set of candidate motion information, optimal motion information is determined using an RD-cost value (205). The AMVP candidate search unit 206 configures a candidate motion information set for the AMVP mode. Motion estimation is performed using the corresponding candidate motion information sets (207), and optimal motion information is determined. Motion compensation is performed using the optimal motion information determined in each mode (208) to generate a prediction block.

상기 전술한 화면 간 예측은 3가지 모드(SKIP 모드, MERGE 모드, AMVP 모드)로 구성되어 있을 수 있다. 각 예측 모드는 움직임정보(예측 방향 정보, 참조 픽쳐 정보, 움직임 벡터)를 이용하여 현재 블록의 예측 블록을 구하고, 움직임정보를 이용한 추가적인 예측 모드가 있을 수 있다. The above-described inter-screen prediction may be composed of three modes (SKIP mode, MERGE mode, and AMVP mode). Each prediction mode may obtain a prediction block of a current block using motion information (prediction direction information, reference picture information, motion vector), and there may be an additional prediction mode using motion information.

SKIP 모드는 이미 복원된 영역의 움직임정보를 이용하여 최적 예측 정보를 결정한다. 복원된 영역 내에서 움직임정보 후보군을 구성하여 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성하는데, 여기서 움직임정보 후보군을 구성하는 방법은 하기 설명할 MERGE 모드의 움직임정보 후보군을 구성하는 방법과 동일하므로, 본 설명에서는 생략한다. The SKIP mode determines optimal prediction information using motion information of an already restored region. A motion information candidate group is constructed in the reconstructed region, and among the candidate groups, a candidate having the smallest RD-cost value is used as prediction information to generate a prediction block. Here, a method of configuring the motion information candidate group is described in the MERGE mode described below. Since it is the same as the method of configuring the motion information candidate group, it is omitted in this description.

MERGE 모드는 이미 복원된 영역의 움직임정보를 이용하여 최적 예측 정보를 결정한다는 점에서 SKIP 모드와 동일하다. 그러나 SKIP 모드는 예측 에러가 0이 되도록 하는 움직임정보를 움직임정보 후보군에서 탐색하고, MERGE 모드는 예측 에러가 0이 아닌 움직임 정보를 움직임정보 후보군에서 탐색한다는 점에서 그 차이를 달리한다. SKIP 모드와 마찬가지로, 복원된 영역 내에서 움직임정보 후보군을 구성하여 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성한다. The MERGE mode is the same as the SKIP mode in that optimal prediction information is determined using motion information of an already restored region. However, the SKIP mode differs in that the motion information that causes the prediction error to be 0 is searched for in the motion information candidate group, and the MERGE mode searches the motion information candidate group for which the prediction error is not 0. As in the SKIP mode, a motion information candidate group is configured in the reconstructed region, and among the candidate groups, a candidate having a minimum RD-cost value is used as prediction information to generate a prediction block.

도 3의 301은 SKIP 모드와 MERGE 모드의 움직임정보 후보군을 생성하는 방법을 나타낸 것이다. 움직임정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정할 수도 있고, 영상 부호화 장치의 상위 헤더(상위 헤더란, 비디오 파라미터단, 시퀀스 파라미터단, 픽쳐 파라미터단 등 블록의 상위단에서 전송되는 파라미터들을 의미함)에서 해당 개수 정보가 기 전송될 수도 있다. S305 단계와 S306 단계의 설명에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화 되었을 때에만, 해당 움직임정보를 이용하여 유도된 움직임정보를 움직임정보 후보군에 포함시킨다. S305 단계에서는 동일 픽쳐 내에서 현재 블록 주변의 공간적 후보 블록 5개 중, 4개 후보를 선택한다. 공간적 후보의 위치는 도 3의 302를 참조하고, 각 후보들의 위치는 복원된 영역 내에서 어떤 블록으로든 변경 가능하다. 공간적 후보는 A1, A2, A3, A4, A5 순으로 고려하여 먼저 사용 가능한 공간적 후보 블록의 움직임정보를 공간적 후보로 결정한다. 다만, 이는 우선 순위의 일예에 불과하며, 우선 순위는 A2, A1, A3, A4, A5 순일 수도 있고, A2, A1, A4, A3, A5 순일 수도 있다. 중복되는 움직임정보가 있을 경우, 우선 순위가 높은 후보의 움직임정보만을 고려한다. S306 단계에서는 시간적 후보 블록 2개 중, 1개 후보를 선택한다. 시간적 후보의 위치는 도 3의 302를 참조하고, 각 후보들의 위치는 Collocated 픽쳐 내에서 현재 픽쳐의 현재 블록 위치와 동일한 위치의 블록을 기준으로 결정된다. 여기서, Collocated 픽쳐는 복원 픽쳐 내에서 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 설정 가능하다. 시간적 후보는 B1, B2 블록 순으로 고려하여 먼저 사용 가능한 후보 블록의 움직임 정보를 시간적 후보로 결정한다. 시간적 후보의 움직임정보를 결정하는 방법은 도 3의 303을 참조한다. Collocated 픽쳐 내의 후보 블록(B1, B2) 움직임정보는 참조 픽쳐 B에 있는 예측 블록을 가리키고 있다. (단, 각 후보 블록의 참조 픽쳐는 서로 다를 수 있음. 본 설명에서는 편의상 이를 모두 참조 픽쳐 B라고 표현함) 해당 움직임벡터를 Collocated 픽쳐와 참조 픽쳐 B의 거리 대비, 현재 픽쳐와 참조 픽쳐 A의 거리의 비율을 계산하여 해당 비율만큼 후보 블록의 움직임벡터를 스케일하여 시간적 후보 움직임정보의 움직임벡터를 결정한다. 수학식 2는 스케일링 수식을 의미한다.3, 301 shows a method of generating candidate motion information groups in the SKIP mode and the MERGE mode. The maximum number of motion information candidate groups may be determined in the same manner by the video encoding apparatus and the video decoding apparatus, and transmitted from the upper stage of the block, such as the upper header of the video encoding apparatus (the upper header column, the video parameter stage, the sequence parameter stage, and the picture parameter stage). The corresponding number information may be previously transmitted in the meaning of the parameters. In the description of steps S305 and S306, only when the spatial candidate block and the temporal candidate block are encoded in the inter prediction mode, motion information derived using the corresponding motion information is included in the motion information candidate group. In step S305, four candidates are selected from among five spatial candidate blocks around the current block in the same picture. The location of the spatial candidate is referred to 302 in FIG. 3, and the location of each candidate can be changed to any block in the reconstructed region. Spatial candidates are considered in order of A 1 , A 2 , A 3 , A 4 , and A 5 , and first, motion information of usable spatial candidate blocks is determined as spatial candidates. However, this is only an example of priority, and the priority may be in the order of A 2 , A 1 , A 3 , A 4 , A 5 , or A 2 , A 1 , A 4 , A 3 , A 5 . When there is overlapping motion information, only motion information of a candidate having a high priority is considered. In step S306, one candidate among two temporal candidate blocks is selected. The location of the temporal candidate is referred to 302 of FIG. 3, and the location of each candidate is determined based on a block of the same location as the current block location of the current picture in the collocated picture. Here, the collocated picture can be set under the same conditions in the video encoding device and the video decoding device in the reconstructed picture. The temporal candidates are considered in the order of B 1 and B 2 blocks, and motion information of the available candidate blocks is first determined as temporal candidates. For the method of determining the motion information of the temporal candidate, refer to 303 of FIG. 3. The candidate block (B 1 , B 2 ) motion information in the collocated picture indicates a prediction block in the reference picture B. (However, the reference pictures of each candidate block may be different from each other. For convenience, this is referred to as reference picture B). By calculating the ratio, the motion vector of the candidate block is scaled by the corresponding ratio to determine the motion vector of the temporal candidate motion information. Equation 2 means a scaling equation.

Figure pat00002
Figure pat00002

MV는 시간적 후보 블록 움직임정보의 움직임벡터, MVscale은 스케일링된 움직임벡터, TB는 Collocated 픽쳐와 참조 픽쳐 B의 시간적 거리, TD는 현재 픽쳐와 참조 픽쳐 A의 시간적 거리를 의미한다. 또한, 참조 픽쳐 A, 참조 픽쳐 B는 동일한 참조 픽쳐일 수도 있다. 이렇게 스케일링된 움직임벡터를 시간적 후보의 움직임벡터로 결정하고, 시간적 후보 움직임정보의 참조 픽쳐 정보는 현재 픽쳐의 참조 픽쳐로 결정하여, 시간적 후보의 움직임정보를 유도한다. S307 단계는 S305, S306 단계에서 최대 움직임정보 후보군 개수를 채우지 못했을 경우에만 수행되며, 이전 단계에서 유도된 움직임정보 후보들의 조합으로 새로운 양방향 움직임정보 후보군을 추가하는 단계이다. 양방향 움직임정보 후보란, 이전까지 유도된 과거 혹은 미래 방향의 움직임정보들을 하나씩 가져와서 새로운 후보로 조합하여 만들어내는 것이다. 도 3의 304 표는 양방향 움직임정보 후보 조합의 우선순위를 나타낸 것이다. 본 표의 조합 이외에 추가적인 조합이 나올 수 있으며, 본 표는 하나의 예시를 나타낸 것이다. 양방향 움직임정보 후보를 이용하여도 최대 움직임정보 후보군 개수를 채우지 못했을 경우, S307 단계를 수행한다. S308 단계에서는 움직임정보 후보의 움직임벡터를 제로 움직임벡터로 고정하고, 예측 방향에 따른 참조 픽쳐를 달리하여서 최대 움직임정보 후보군의 개수를 채운다.MV is a motion vector of temporal candidate block motion information, MV scale is a scaled motion vector, TB is a temporal distance between a collocated picture and reference picture B, and TD is a temporal distance between a current picture and a reference picture A. Also, the reference pictures A and B may be the same reference picture. The scaled motion vector is determined as the motion vector of the temporal candidate, and the reference picture information of the temporal candidate motion information is determined as the reference picture of the current picture to derive the motion information of the temporal candidate. Steps S307 are performed only when the maximum number of motion information candidate groups is not satisfied in steps S305 and S306, and a new bidirectional motion information candidate group is added with a combination of motion information candidates derived in the previous step. The bidirectional motion information candidate is obtained by combining the motion information of the past or future direction derived one by one and combining them as a new candidate. Table 304 of FIG. 3 shows the priority of the bidirectional motion information candidate combination. In addition to the combinations of this table, additional combinations may appear, and this table shows one example. If the maximum number of motion information candidate groups is not satisfied even when using the bidirectional motion information candidate, step S307 is performed. In step S308, the motion vector of the motion information candidate is fixed to the zero motion vector, and the reference picture according to the prediction direction is varied to fill the maximum number of motion information candidate groups.

AMVP 모드는 예측 방향에 따른 참조 픽쳐 별로 움직임 추정을 거쳐 최적 움직임정보를 결정한다. 여기서, 예측 방향은 과거/미래 중 한 방향만을 사용하는 단방향 일수도 있고, 과거와 미래 방향 모두를 사용하는 양방향 일수도 있다. 움직임 추정을 통해 결정된 최적 움직임정보를 이용하여 움직임 보상을 수행하여 예측 블록을 생성한다. 여기서, 예측 방향에 따른 참조 픽쳐마다 움직임 추정을 위한 움직임정보 후보군을 유도한다. 해당 움직임정보 후보군은 움직임 추정의 시작 지점으로 사용된다. AMVP 모드의 움직임 추정을 위한 움직임정보 후보군을 유도하는 방법은 도 4를 참조한다.The AMVP mode determines the optimal motion information through motion estimation for each reference picture according to the prediction direction. Here, the prediction direction may be unidirectional using only one direction of the past/future, or it may be bidirectional using both the past and future directions. Motion compensation is performed using the optimal motion information determined through motion estimation to generate a prediction block. Here, a candidate motion information group for motion estimation is derived for each reference picture according to the prediction direction. The candidate motion information group is used as a starting point for motion estimation. 4 for a method of deriving a candidate motion information group for motion estimation in the AMVP mode.

움직임정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정할 수도 있고, 영상 부호화 장치의 상위 헤더에서 해당 개수 정보가 기 전송될 수도 있다. S401 단계와 S402 단계의 설명에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화 되었을 때에만, 해당 움직임정보를 이용하여 유도된 움직임정보를 움직임정보 후보군에 포함시킨다. S401 단계에서는 S305 단계의 설명과 다르게, 공간적 후보로서 유도되는 개수(2개)가 다를 수 있고, 공간적 후보를 선택하기 위한 우선 순위 또한 다를 수 있다. 나머지 설명은 S305 단계의 그것과 동일하다. S402 단계는 S306 단계의 설명과 동일하다. S403 단계에서는 현재까지 유도된 후보들 중, 중복되는 움직임정보가 있다면 제거한다. S404 단계는 S308 단계의 설명과 동일하다. 이렇게 유도된 움직임정보 후보들 중, RD-비용값이 최소인 움직임정보 후보를 최적 움직임정보 후보로 선택하여 해당 움직임정보를 기준으로 움직임 추정 과정을 거쳐 AMVP 모드의 최적 움직임정보를 구한다.The maximum number of motion information candidate groups may be determined in the same manner by the video encoding apparatus and the video decoding apparatus, or the corresponding number information may be previously transmitted from the upper header of the video encoding apparatus. In the description of steps S401 and S402, only when the spatial candidate block and the temporal candidate block are encoded in the inter prediction mode, motion information derived using the corresponding motion information is included in the motion information candidate group. In step S401, unlike the description of step S305, the number (two) derived as the spatial candidate may be different, and the priority for selecting the spatial candidate may also be different. The rest of the explanation is the same as that of step S305. Step S402 is the same as the description of step S306. In step S403, if there is overlapping motion information among candidates derived so far, it is removed. Step S404 is the same as the description of step S308. Among the motion information candidates derived in this way, the motion information candidate having the smallest RD-cost value is selected as the optimum motion information candidate, and then the motion estimation process is performed based on the motion information to obtain the optimum motion information in the AMVP mode.

변환부(103)는 원본 블록과 예측 블록의 차이인 잔차 블록을 변환하여 변환 블록을 생성한다. 변환 블록은 변환 및 양자화 과정을 위해 사용되는 가장 작은 단위이다. 변환부는 잔차 신호를 주파수 영역으로 변환하여 변환 계수를 가지는 변환 블록을 생성한다. 여기서 잔차 신호를 주파수 영역으로 변환하는 방법으로는 이산 코사인 변환(DCT: Discrete Cosine Transform)기반 변환, 이산 사인 변환(DST: Discrete Sine Transform), KLT(Karhunen Loeve Transform) 등 다양한 변환 기법을 이용할 수 있으며, 이를 이용하여 잔차 신호가 주파수 영역으로 변환되어 변환 계수가 생성 된다. 변환 기법을 편하게 사용하기 위해 기저벡터(basis vector)를 이용하여 행렬 연산을 하게 되는데 예측 블록이 어떤 예측 모드로 부호화 되었는지에 따라서 행렬 연산 시 변환 기법들을 다양하게 섞어 사용할 수 있다. 예를 들어, 화면 내 예측 시 예측 모드에 따라 가로 방향으로는 이산 코사인 변환을 사용하고 세로 방향으로는 이산 사인 변환을 사용 할 수도 있다.The transform unit 103 generates a transform block by transforming a residual block that is a difference between the original block and the predictive block. The transform block is the smallest unit used for transform and quantization processes. The transform unit converts the residual signal into the frequency domain to generate a transform block having a transform coefficient. Here, as a method of transforming the residual signal into the frequency domain, various transform techniques such as Discrete Cosine Transform (DCT)-based transform, Discrete Sine Transform (DST), and Karhunen Loeve Transform (KLT) can be used. , Using this, the residual signal is transformed into the frequency domain to generate a transform coefficient. In order to conveniently use the transformation technique, matrix operations are performed using a basis vector. Depending on the prediction mode in which the prediction block is encoded, various transformation techniques can be used in the matrix operation. For example, according to the prediction mode in the intra prediction, a discrete cosine transform may be used in the horizontal direction and a discrete sine transform may be used in the vertical direction.

양자화부(104)는 변환 블록을 양자화 하여 양자화된 변환 블록을 생성한다. 즉, 양자화부는 변환부(103)로부터 생성되는 변환 블록의 변환 계수들을 양자화 하여 양자화된 변환 계수를 가지는 양자화된 변환 블록(Quantized Transform Coefficient)을 생성한다. 양자화 방법으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 행렬 (Quantization Weighted Matrix) 등이 이용될 수 있지만, 이를 개량한 양자화 등 다양한 양자화 방법이 이용될 수 있다.The quantization unit 104 quantizes a transform block to generate a quantized transform block. That is, the quantization unit quantizes transform coefficients of a transform block generated by the transform unit 103 to generate a quantized transform block having a quantized transform coefficient. A dead zone uniform threshold quantization (DZUTQ) or a quantization weighted matrix (DZUTQ) may be used as the quantization method, but various quantization methods such as improved quantization may be used.

한편, 이상에서는 영상 부호화 장치가 변환부 및 양자화부를 포함하는 것을 도시하고 설명 했지만, 변환부 및 양자화부는 선택적으로 포함될 수 있다. 즉, 영상 부호화 장치는 잔차 블록을 변환하여 변환 블록을 생성하고 양자화 과정은 수행하지 않을 수 있으며, 잔차 블록을 주파수 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 심지어는 변환과 양자화 과정을 모두 수행하지 않을 수 있다. 영상 부호화 장치에서 변환부와 양자화부 중 일부 과정이 수행되지 않거나, 모든 과정이 수행 되지 않더라도 엔트로피 부호화부의 입력으로 들어가는 블록을 통상적으로 '양자화된 변환 블록'이라 일컫는다. On the other hand, in the above, although the image encoding apparatus is shown and described as including a transform unit and a quantization unit, the transform unit and the quantization unit may be selectively included. That is, the image encoding apparatus may transform the residual block to generate a transform block and not perform a quantization process, and not only transform the residual block into frequency coefficients, but also perform a quantization process, and even transform and quantize processes You may not do all of them. In the image encoding apparatus, a block that enters an input of an entropy encoding unit is usually referred to as a'quantized transformation block' even if some of the transformation units and the quantization units are not performed or all of the processes are not performed.

엔트로피 부호화부(105)는 양자화된 변환 블록을 부호화하여 비트스트림을 출력한다. 즉, 엔트로피 부호화부는 양자화부로부터 출력되는 양자화된 변환 블록의 계수들을 엔트로피 부호화(Entropy Encoding) 등 다양한 부호화 기법을 이용하여 부호화하고, 후술하는 영상 복호화 장치에서 해당 블록을 복호화 하는데 필요한 부가적인 정보들(예를 들면, 예측 모드에 대한 정보(예측 모드에 대한 정보란 예측부에서 결정된 움직임정보 혹은 화면 내 예측 모드 정보 등이 포함될 수 있음), 양자화 계수 등)을 포함하는 비트스트림을 생성하고 출력한다.The entropy encoding unit 105 encodes a quantized transform block and outputs a bitstream. That is, the entropy encoding unit encodes coefficients of the quantized transform block output from the quantization unit using various encoding techniques such as entropy encoding, and additional information necessary for decoding the block in an image decoding apparatus described later ( For example, a bitstream including information about a prediction mode (information on a prediction mode may include motion information determined by a prediction unit or information on a prediction mode in a screen, etc.) and quantization coefficients are generated and output.

역 양자화부(106)는 양자화된 변환 블록에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화 변환 블록을 복원한다. The inverse quantization unit 106 restores the inverse quantized transform block by inversely performing a quantization technique used for quantization on the quantized transform block.

역 변환부(107)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.The inverse transform unit 107 inversely transforms the inverse quantized transform block using the same method used for transform to restore the residual block, and performs an inverse transform by performing the transform technique used by the transform unit inversely.

한편, 이상에서는 역 양자화부와 역 변환부는 양자화부와 변환부에서 사용한 양자화 방식과 변환 방식을 역으로 사용하여 역 양자화 및 역 변환 할 수 있다. 또한 변환부와 양자화부에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 변환 및 양자화를 모두 수행하지 않은 경우, 역 양자화부와 역 변환부도 역 변환 및 역 양자화를 모두 수행하지 않거나 영상 부호화 장치에 포함되지 않고 생략 될 수 있다.On the other hand, in the above, the inverse quantization unit and the inverse transformation unit may perform inverse quantization and inverse transformation using the quantization method and the transformation method used by the quantization unit and the transformation unit inversely. In addition, when only the quantization unit and the quantization unit do not perform the transformation, only the inverse quantization may be performed and the inverse transformation may not be performed. If both the transform and the quantization are not performed, the inverse quantization unit and the inverse transform unit do not perform both inverse transform and inverse quantization or may be omitted without being included in the image encoding apparatus.

가산부(108)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.The adder 108 restores the current block by adding the residual signal generated by the inverse transform unit and the prediction block generated through prediction.

필터부(109)는 현재 픽쳐 내 모든 블록들이 복원된 이후, 픽쳐 전체에 걸쳐서 추가적으로 필터링 해주는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등이 있다. 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, SAO(Sample Adaptive Offset)란 복원 화소에 특정 값을 감산하거나 가산함으로써, 복원 영상과 원본 영상간 차이를 최소화시키는 작업을 말한다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 부호화 단위(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및/또는 필터 계수는 달라질 수 있다. 또한, 적용 대상 블록의 특성에 상관없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다. The filter unit 109 is a process of additionally filtering the entire picture after all blocks in the current picture are restored, and includes deblocking filtering, sample adaptive offset (SAO), and adaptive loop filter (ALF). Deblocking filtering refers to the task of reducing block distortion that occurs while coding an image in block units. Sample adaptive offset (SAO) is a method of minimizing the difference between the reconstructed image and the original image by subtracting or adding a specific value to the reconstructed pixel. Says the job. ALF (Adaptive Loop Filtering) may be performed based on a value obtained by comparing a filtered reconstructed image with an original image. After dividing the pixels included in the image into a predetermined group, one filter to be applied to the group may be determined to perform filtering differently for each group. Information related to whether to apply the ALF may be transmitted for each coding unit (CU), and the shape and/or filter coefficient of the ALF filter to be applied may be changed according to each block. Also, the ALF filter of the same form (fixed form) may be applied regardless of the characteristics of the block to be applied.

메모리(110)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용 될 수 있다.The memory 110 adds the residual signal generated by the inverse transform unit and the prediction block generated through prediction, and then stores the restored current block through additional filtering in the in-loop filter unit, such as the next block or the next picture. It can be used to predict.

감산부(111)는 현재 원본 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다.The subtraction unit 111 subtracts the prediction block from the current original block to generate a residual block.

도 5는 영상 부호화 장치 내 엔트로피 부호화부에서 코딩 정보의 부호화 흐름을 나타낸 흐름도이다. S501 단계에서는 SKIP 모드의 동작 정보를 부호화한다. S502 단계에서는 SKIP 모드의 동작 여부를 판단한다. S502 단계에서 SKIP 모드가 동작한다면 S507 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S502 단계에서 SKIP 모드가 동작하지 않는다면 S503 단계에서 예측 모드를 부호화한다. S503 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S504 단계에서 예측 모드가 화면 간 예측 모드였다면, S505 단계에서 MERGE 모드의 동작 정보를 부호화한다. S506 단계에서는 MERGE 모드의 동작 여부를 판단한다. S506 단에서 MERGE 모드가 동작한다면 S507 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S506 단계에서 MERGE 모드가 동작하지 않는다면 S508 단계에서 예측 방향을 부호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다. S509 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S509 단계에서 예측 방향이 미래 방향이 아니었다면 S510 단계에서 과거 방향의 참조 픽쳐 색인 정보를 부호화한다. S511 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 부호화한다. S512 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 부호화한다. S509 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S512 단계가 끝나면 S513 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S513 단계에서 예측 방향이 과거 방향이 아니었다면 S514 단계에서 미래 방향 참조 픽쳐 색인 정보를 부호화한다. S515 단계에서는 미래 방향의 MVD 정보를 부호화한다. S516 단계에서는 미래 방향의 MVP 정보를 부호화한 후, 본 흐름도를 종료한다. S504 단계에서 예측 모드가 화면 내 예측 모드였다면, S517 단계에서 화면 내 예측 모드 정보를 부호화한 후, 본 흐름도를 종료한다.5 is a flowchart illustrating an encoding flow of coding information in an entropy encoding unit in an image encoding apparatus. In step S501, operation information of the SKIP mode is encoded. In step S502, the operation of the SKIP mode is determined. If the SKIP mode is operated in step S502, after the MERGE candidate index information for the SKIP mode is encoded in step S507, this flow chart ends. If the SKIP mode does not operate in step S502, the prediction mode is encoded in step S503. In step S503, it is determined whether the prediction mode is inter-screen prediction or intra-screen prediction mode. If the prediction mode was the inter prediction mode in step S504, the operation information of the MERGE mode is encoded in step S505. In step S506, it is determined whether the MERGE mode is activated. If the MERGE mode is operated in step S506, the process proceeds to step S507, after encoding the MERGE candidate index information for the MERGE mode, the flowchart ends. If the MERGE mode does not operate in step S506, the prediction direction is encoded in step S508. Here, the prediction direction may be one of a past direction, a future direction, and two directions. In step S509, it is determined whether the prediction direction is the future direction or not. If the prediction direction is not the future direction in step S509, the reference picture index information of the past direction is encoded in step S510. In step S511, motion vector difference (MVD) information of a past direction is encoded. In step S512, the motion vector predictor (MVP) information of the past direction is encoded. In step S509, it is determined whether the prediction direction is in the future direction or in both directions, or in step S513, when the prediction direction is in the past direction. If the prediction direction is not the past direction in step S513, the future direction reference picture index information is encoded in step S514. In step S515, MVD information of a future direction is encoded. In step S516, after encoding the MVP information in the future direction, this flow chart ends. If the prediction mode was the intra prediction mode in step S504, after encoding the intra prediction mode information in step S517, the flowchart ends.

도 6은 영상 복호화 장치(600)의 구성을 간략하게 나타낸 블록 흐름도이다. 6 is a block flow diagram briefly showing the configuration of the video decoding apparatus 600.

영상 복호화 장치(600)는 영상을 복호화하는 장치로서, 크게 블록 엔트로피 복호화부, 역-양자화부, 역-변환부, 예측부, 가산부, 인루프 필터부, 메모리를 포함할 수 있다. 영상 부호화 장치에서 부호화 블록은 영상 복호화 장치에서 복호화 블록이라 칭한다.The image decoding apparatus 600 is an apparatus for decoding an image, and may largely include a block entropy decoding unit, an inverse-quantization unit, an inverse-transformation unit, a prediction unit, an adder unit, an in-loop filter unit, and a memory. The encoding block in the image encoding apparatus is referred to as a decoding block in the image decoding apparatus.

엔트로피 복호화부(601)는 영상 부호화 장치로부터 전송받은 비트스트림을 해석하여 해당 블록을 복호화 하는데 필요한 여러 정보들과 양자화된 변환 계수를 읽어 들인다. The entropy decoding unit 601 interprets the bitstream transmitted from the image encoding apparatus and reads various information and quantized transform coefficients necessary for decoding the corresponding block.

역 양자화부(602)는 엔트로피 복호화부에서 복호화한 양자화 계수에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화된 계수를 가지는 역 양자화된 블록을 복원한다. The inverse quantization unit 602 reconstructs an inverse quantized block having an inverse quantized coefficient by inversely performing a quantization technique used for quantization on the quantization coefficient decoded by the entropy decoding unit.

역 변환부(603)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화된 변환 블록을 역 변환하여 차분 신호를 가지는 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.The inverse transform unit 603 inversely transforms the inverse-quantized transform block using the same method used for transform to restore a residual block having a differential signal. Inverse transform is performed by performing the inverse transform technique used by the transform unit do.

예측부(604)는 엔트로피 복호화부에서 복호화한 예측 모드 정보를 이용하여 예측 블록을 생성하는데, 이는 영상 부호화 장치의 예측부에서 수행했던 예측 방식과 동일한 방식을 이용한다. The prediction unit 604 generates a prediction block using prediction mode information decoded by the entropy decoding unit, which uses the same method as the prediction method performed by the prediction unit of the image encoding apparatus.

가산부(605)는 역 변환부에서 복원된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.The adder 605 restores the current block by adding the residual signal restored by the inverse transform unit and the prediction block generated through prediction.

필터부(606)는 현재 픽쳐 내 모든 블록을 복원한 이후, 픽쳐 전체에 걸쳐서 추가적인 필터링은 하는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset), ALF 등이 있으며, 상세한 내용은 기 전술한 영상 부호화 장치의 인루프 필터부에서 설명한 바와 동일하다. After restoring all blocks in the current picture, the filter unit 606 performs de-blocking filtering, sample adaptive offset (SAO), and ALF as a process of performing additional filtering throughout the picture. This is the same as described in the in-loop filter section of the device.

메모리(607)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용 될 수 있다.The memory 607 adds the residual signal generated by the inverse transform unit and the prediction block generated through prediction, and then stores the restored current block that has undergone additional filtering in the in-loop filter unit, such as the next block or the next picture. It can be used to predict.

도 7은 영상 복호화 장치의 예측부 내의 흐름을 설명한 흐름도이다. 예측 모드가 화면 내 예측이라면, 최적 화면 내 예측 모드 정보를 결정(701)하고, 화면 내 예측을 수행(702)하여 예측 블록을 생성한다. 예측 모드가 화면 간 예측이라면, SKIP, MERGE, AMVP 모드 중 최적 예측 모드를 결정(703)한다. SKIP 모드 혹은 MERGE 모드로 복호화할 경우, MERGE 후보 탐색부(704)에서 SKIP 모드와, MERGE 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 세트 중, 전송된 후보 인덱스(e.g., 머지 인덱스)를 이용하여 최적 움직임정보를 결정(705)한다. AMVP 모드로 복호화할 경우, AMVP 후보 탐색부(706)에서는 AMVP 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 후보들 중, 전송된 후보 인덱스(e.g., MVP 정보)를 이용하여 최적 움직임 정보를 결정(707)한다. 이후, 각 모드들에서 결정된 최적 움직임정보를 이용하여 움직임 보상을 수행(708)하여 예측 블록을 생성한다.7 is a flowchart illustrating a flow in the prediction unit of the video decoding apparatus. If the prediction mode is intra prediction, the optimal intra prediction mode information is determined (701), and intra prediction is performed (702) to generate a prediction block. If the prediction mode is inter-screen prediction, an optimal prediction mode among SKIP, MERGE, and AMVP modes is determined (703). When decoding in the SKIP mode or the MERGE mode, the MERGE candidate search unit 704 configures a SKIP mode and a set of candidate motion information for the MERGE mode. Among the set of candidate motion information, optimal motion information is determined using the transmitted candidate index (e.g., merge index) (705). When decoding in the AMVP mode, the AMVP candidate search unit 706 configures a candidate motion information set for the AMVP mode. Among the candidate motion information candidates, optimal motion information is determined using the transmitted candidate index (e.g., MVP information) (707). Thereafter, motion compensation is performed using the optimal motion information determined in each mode (708) to generate a prediction block.

도 8은 영상 복호화 장치에서 코딩 정보의 복호화 흐름을 나타낸 흐름도이다. S801 단계에서는 SKIP 모드의 동작 정보를 복호화한다. S802 단계에서는 SKIP 모드의 동작 여부를 판단한다. S802 단계에서 SKIP 모드가 동작한다면 S807 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S802 단계에서 SKIP 모드가 동작하지 않는다면 S803 단계에서 예측 모드를 복호화한다. S803 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S804 단계에서 예측 모드가 화면 간 예측 모드였다면, S805 단계에서 MERGE 모드의 동작 정보를 복호화한다. S806 단계에서는 MERGE 모드의 동작 여부를 판단한다. S806 단계에서 MERGE 모드가 동작한다면 S807 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S806 단계에서 MERGE 모드가 동작하지 않는다면 S808 단계에서 예측 방향을 복호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다. S809 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S809 단계에서 예측 방향이 미래 방향이 아니었다면 S810 단계에서 과거 방향의 참조 픽쳐 색인 정보를 복호화한다. S811 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 복호화한다. S812 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 복호화한다. S809 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S812 단계가 끝나면 S813 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S813 단계에서 예측 방향이 과거 방향이 아니었다면 S814 단계에서 미래 방향 참조 픽쳐 색인 정보를 복호화한다. S815 단계에서는 미래 방향의 MVD 정보를 복호화한다. S816 단계에서는 미래 방향의 MVP 정보를 복호화한 후, 본 흐름도를 종료한다. S804 단계에서 예측 모드가 화면 내 예측 모드였다면, S1317 단계에서 화면 내 예측 모드 정보를 복호화한 후, 본 흐름도를 종료한다.8 is a flowchart illustrating a decoding flow of coding information in an image decoding apparatus. In step S801, the operation information of the SKIP mode is decoded. In step S802, it is determined whether the SKIP mode operates. If the SKIP mode is operated in step S802, after decoding the MERGE candidate index information for the SKIP mode in step S807, the flow diagram ends. If the SKIP mode does not operate in step S802, the prediction mode is decoded in step S803. In step S803, it is determined whether the prediction mode is inter-screen prediction or intra-screen prediction mode. If the prediction mode was the inter-screen prediction mode in step S804, the operation information of the MERGE mode is decoded in step S805. In step S806, it is determined whether the MERGE mode is activated. If the MERGE mode is operated in step S806, the process proceeds to step S807, after decoding the MERGE candidate index information for the MERGE mode, the flowchart ends. If the MERGE mode does not operate in step S806, the prediction direction is decoded in step S808. Here, the prediction direction may be one of a past direction, a future direction, and two directions. In step S809, it is determined whether the prediction direction is the future direction or not. If the prediction direction is not the future direction in step S809, the reference picture index information of the past direction is decoded in step S810. In step S811, MVD (Motion Vector Difference) information of a past direction is decoded. In step S812, the past direction MVP (Motion Vector Predictor) information is decoded. In step S809, it is determined whether the prediction direction is in the future direction or in both directions, or in step S813, when the prediction direction is in the past direction. If the prediction direction is not the past direction in step S813, the future direction reference picture index information is decoded in step S814. In step S815, the MVD information in the future direction is decoded. In step S816, after decoding the MVP information in the future direction, this flow chart ends. If the prediction mode was the intra prediction mode in step S804, after decoding the intra prediction mode information in step S1317, the flow diagram ends.

(공통 실시예)(Common Example)

하기 실시예에서는 영상 부호화 장치와 영상 복호화 장치의 예측부에서 MERGE 후보 탐색부(204, 704), AMVP 후보 탐색부(206, 706)에서 현재 블록의 화면 간 예측을 위한 후보 움직임정보를 유도하는 방법에 대해서 설명할 것이다. 후보 움직임정보는 MERGE 후보 탐색부에서는 현재 블록의 움직임정보로 바로 결정되고, AMVP 후보 탐색부에서는 현재 블록의 최적 움직임정보를 전송하기 위한 예측기(Predictor)로 사용된다. In the following embodiment, a method for deriving candidate motion information for inter-frame prediction of the current block by the MERGE candidate search units 204 and 704 and the AMVP candidate search units 206 and 706 in the prediction units of the video encoding device and the video decoding device I will explain. The candidate motion information is directly determined as motion information of the current block in the MERGE candidate search unit, and used as a predictor for transmitting optimal motion information of the current block in the AMVP candidate search unit.

도 9는 MERGE/AMVP 모드를 위한 후보 움직임정보를 유도하는 방법을 나타낸 흐름도이다. 본 흐름도에서 Merge 모드와 AMVP 모드의 후보 움직임정보를 유도하는 방법을 동일한 흐름도에 나타냈지만, 각 모드 별로 일부 후보들은 사용하지 않을 수도 있다. 따라서 모드 별로 유도 되는 후보 움직임정보는 다를 수 있으며, 유도되는 후보 움직임정보의 개수 또한 다를 수 있다. 예를 들어, Merge 모드는 공간적 후보 5(A)개 중 4(B)개의 후보를 선택할 수 있으며 AMVP 모드에서는 공간적 후보 4(A)개 중 2(B)개의 후보만을 선택할 수 있다. S901, S902 단계에서 A, B, C, D (A, B, C, D는 1 이상의 정수)는 각각 공간적 후보의 개수, 선택되는 공간적 후보의 개수, 시간적 후보의 개수, 선택되는 시간적 후보의 개수를 의미한다. 9 is a flowchart illustrating a method of deriving candidate motion information for a MERGE/AMVP mode. Although the method for deriving the candidate motion information of the Merge mode and the AMVP mode in this flow chart is shown in the same flow chart, some candidates for each mode may not be used. Accordingly, candidate motion information derived for each mode may be different, and the number of derived candidate motion information may also be different. For example, in the Merge mode, 4 (B) candidates among 5 (A) spatial candidates can be selected, and in the AMVP mode, only 2 (B) candidates among 4 (A) spatial candidates can be selected. In steps S901 and S902, A, B, C, and D (A, B, C, and D are integers of 1 or more) are the number of spatial candidates, the number of spatial candidates, the number of temporal candidates, and the number of temporal candidates, respectively. Means

S901 단계의 설명은 전술한 S305, S401단계의 설명과 동일하다. 단, 공간적 후보를 위한 주변 블록들의 위치는 상이할 수 있다. 또한, 공간적 후보를 위한 주변 블록은, 제1 그룹, 제2 그룹 또는 제3 그룹 중 적어도 하나에 속할 수 있다. 여기서, 제1 그룹은, 현재 블록의 좌측 블록(A1) 또는 좌하단 블록(A4) 중 적어도 하나를 포함하고, 제2 그룹은 현재 블록의 상단 블록(A2) 또는 우상단 블록(A3) 중 적어도 하나를 포함하고, 제3 그룹은 현재 블록의 좌상단 블록(A5), 좌상단 블록의 하단에 인접한 블록 또는 좌상단 블록의 좌측에 인접한 블록 중 적어도 하나를 포함할 수 있다. The description of step S901 is the same as the description of steps S305 and S401 described above. However, the positions of neighboring blocks for spatial candidates may be different. In addition, the neighboring block for the spatial candidate may belong to at least one of the first group, the second group, or the third group. Here, the first group includes at least one of the left block (A 1 ) or the lower left block (A 4 ) of the current block, and the second group is the upper block (A 2 ) or the upper right block (A 3 ) of the current block. ), and the third group may include at least one of an upper left block A 5 of the current block, a block adjacent to the bottom of the upper left block, or a block adjacent to the left of the upper left block.

S902 단계의 설명은 전술한 S306, S402 단계의 설명과 동일하다. 마찬가지로 시간적 후보를 위한 블록들의 위치는 상이할 수 있다. The description of step S902 is the same as the description of steps S306 and S402 described above. Similarly, the positions of blocks for temporal candidates may be different.

S903 단계에서는 서브 블록 단위 시간적 후보를 추가한다. 단, AMVP 후보 리스트에서 서브 블록 단위 시간적 후보를 추가할 경우, 전술한 AMVP 모드의 움직임벡터 유도 방법에 의거하여 임의의 서브 블록 1개의 후보 움직임정보만을 예측기로 이용해야 하지만, 때에 따라서 2개 이상의 서브 블록 후보 움직임정보를 이용하여 예측기로 이용할 수도 있다. 본 단계의 내용은 하기 실시예 1에서 상세히 설명할 것이다. In step S903, temporal candidates for each sub-block are added. However, when a temporal candidate for each sub-block is added from the list of AMVP candidates, only one candidate motion information of one arbitrary sub-block should be used as a predictor based on the above-described AMVP mode motion vector derivation method. It can also be used as a predictor by using block candidate motion information. The contents of this step will be described in detail in Example 1 below.

S904 단계에서는 History-based 후보를 추가한다. 본 단계의 내용은 하기 실시예 2에서 상세히 설명할 것이다. In step S904, a history-based candidate is added. The contents of this step will be described in detail in Example 2 below.

S905 단계에서는 Merge/AMVP list의 후보 움직임정보들 간 평균 후보를 추가한다. 본 단계의 내용은 하기 실시예 3에서 상세히 설명할 것이다.In step S905, an average candidate between candidate motion information of the Merge/AMVP list is added. The contents of this step will be described in detail in Example 3 below.

S905 단계까지 거친 후, Merge/AMVP list의 후보 움직임정보들이 최대 개수까지 채워지지 않을 경우, S906 단계에서 제로 움직임정보를 추가하여 최대 개수까지 채운 후, 본 흐름도를 종료하고, 각 모드를 위한 후보 움직임정보 리스트 구성을 완료한다. 본 실시예에서 설명한 후보 움직임정보는 Merge/AMVP 모드 이외에 다양한 예측 모드에서 활용될 수도 있다. 또한, 도 9는 후보 리스트는 추가된 후보의 순서를 한정하는 것은 아니다. 예를 들어, 서브 블록 단위 시간적 후보는 공간적 후보보다 우선적으로 후보 리스트에 추가될 수 있다. 또는 평균 후보가 History-based 후보보다 우선적으로 후보 리스트에 추가될 수도 있다. 본 명세서에서, 후보 움직임정보 리스트, 후보 움직임정보 세트, 움직임정보 후보군, 후보 리스트는 서로 동일한 의미로 이해될 수 있다. After going through step S905, if the candidate motion information of the Merge/AMVP list is not filled up to the maximum number, after adding zero motion information in step S906 to fill up to the maximum number, the flowchart is terminated, and the candidate motion for each mode Complete the information list configuration. The candidate motion information described in this embodiment may be utilized in various prediction modes in addition to the Merge/AMVP mode. 9, the candidate list does not limit the order of added candidates. For example, temporal candidates in sub-block units may be added to the candidate list in preference to spatial candidates. Alternatively, the average candidate may be added to the candidate list in preference to the History-based candidate. In this specification, the candidate motion information list, the candidate motion information set, the motion information candidate group, and the candidate list may be understood to have the same meaning.

(실시예 1)(Example 1)

본 실시예에서는 도 9의 S902, S903 단계의 시간적 후보, 서브 블록 단위 시간적 후보를 유도하는 방법에 대해서 상세히 설명할 것이다. 시간적 후보는 블록 단위 시간적 후보를 의미하며, 서브 블록 단위 시간적 후보와 구별될 수 있다. 여기서 서브 블록이란 현재 부호화 또는 복호화하고자 하는 블록(이하, 현재 블록)을 임의의 NxM (N, M ≥ 0) 크기의 블록으로 나눈 것으로, 현재 블록의 움직임정보를 유도하기 위한 기본 블록 단위를 의미한다. 서브 블록은 부호화기 및/또는 복호화기에 기-설정된 크기를 가질 수 있다. 예를 들어, 서브 블록은 4x4 또는 8x8와 같이 고정된 크기를 가진 정방형일 수 있다. 다만, 이에 한정되지 아니하며, 서브 블록의 형태는 비정방형일 수 있고, 서브 블록의 너비와 높이 중 적어도 하나는 8보다 클 수도 있다. 서브 블록 단위 시간적 후보는, 현재 블록이 NxM보다 큰 경우에 한하여 후보 리스트에 추가되도록 제한될 수 있다. 예를 들어, N과 M이 각각 8인 경우, 현재 블록의 너비와 높이가 각각 8보다 큰 경우에 한하여, 서브 블록 단위 시간적 후보가 후보 리스트에 추가될 수 있다.In this embodiment, a method of deriving temporal candidates and sub-block unit temporal candidates in steps S902 and S903 of FIG. 9 will be described in detail. The temporal candidate means a block-unit temporal candidate and can be distinguished from a sub-block-unit temporal candidate. Here, the sub-block refers to a basic block unit for deriving motion information of a current block by dividing a block to be encoded or decoded (hereinafter, a current block) into a block having an arbitrary NxM (N, M ≥ 0) size. . The sub-block may have a pre-set size in the encoder and/or decoder. For example, the sub-block may be a square having a fixed size, such as 4x4 or 8x8. However, the present invention is not limited thereto, and the shape of the sub-block may be non-square, and at least one of the width and height of the sub-block may be greater than 8. The temporal candidate for each sub-block may be limited to be added to the candidate list only when the current block is larger than NxM. For example, when N and M are 8 each, only a case in which the width and height of the current block is greater than 8, a temporal candidate for each sub-block may be added to the candidate list.

도 10은 본 실시예를 설명하기 위한 기본 개념도이다. 도 10에는 현재 픽쳐의 현재 (서브) 블록 1개가 도시되어 있다. 해당 (서브) 블록에 대한 타깃 (서브) 블록을 타깃 픽쳐 내에서 탐색한다. 여기서 타깃 픽쳐와 타깃 (서브) 블록 정보는 각각 상위 헤더 혹은 현재 블록 단위로 전송될 수도 있고, 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 타깃 픽쳐와 타깃 (서브) 블록을 지정할 수도 있다. 현재 (서브) 블록의 타깃 픽쳐와 타깃 (서브) 블록이 결정된 후, 타깃 (서브) 블록의 움직임정보를 이용하여 현재 (서브) 블록의 움직임정보를 유도한다. 10 is a basic conceptual diagram for explaining the present embodiment. FIG. 10 shows one current (sub) block of the current picture. The target (sub) block for the corresponding (sub) block is searched for in the target picture. Here, the target picture and the target (sub) block information may be transmitted in an upper header or a current block unit, respectively, and the target picture and the target (sub) block may be designated under the same conditions in the video encoding device and the video decoding device. After the target picture and the target (sub) block of the current (sub) block are determined, motion information of the current (sub) block is derived using the motion information of the target (sub) block.

구체적으로, 현재 블록의 각 서브 블록은 타깃 블록의 각 서브 블록과 대응 관계를 가진다. 서브 블록 단위 시간적 후보는 현재 블록 내 서브 블록 별로 움직임 정보를 가지며, 각 서브 블록의 움직임정보는 타깃 블록 내에서 대응 관계를 가진 서브 블록의 움직임정보를 이용하여 유도될 수 있다. 다만, 상기 대응 관계를 가진 서브 블록의 움직임정보가 가용하지 않은 경우가 존재할 수 있다. 이 경우, 해당 서브 블록의 움직임정보는, 디폴트 움직임정보로 설정될 수 있다. 여기서, 디폴트 움직임 정보는, 해당 서브 블록에 수평 방향 또는 수직 방향으로 인접한 주변 서브 블록의 움직임정보를 의미할 수 있다. 또는, 디폴트 움직임정보는, 타깃 블록의 중앙 샘플을 포함한 서브 블록의 움직임정보를 의미할 수도 있다. 다만, 이에 한정되지 아니하며, 디폴트 움직임정보는, 타깃 블록의 n개의 코너 샘플 중 어느 하나를 포함한 서브 블록의 움직임정보를 의미할 수 있다. n은 1, 2, 3, 또는 4일 수 있다. 또는, 중앙 샘플을 포함한 서브 블록 및/또는 n개의 코너 샘플을 포함한 서브 블록 중에서, 소정의 우선순서에 따라 가용한 움직임정보를 가진 서브 블록을 탐색하고, 가장 먼저 탐색된 서브 블록의 움직임정보를 디폴트 움직임정보로 설정할 수도 있다.Specifically, each sub-block of the current block has a corresponding relationship with each sub-block of the target block. The temporal candidate for each sub-block has motion information for each sub-block in the current block, and motion information of each sub-block can be derived using motion information of a sub-block having a corresponding relationship in the target block. However, there may be a case where motion information of a sub-block having the corresponding relationship is not available. In this case, motion information of the corresponding sub-block may be set as default motion information. Here, the default motion information may mean motion information of neighboring sub-blocks adjacent to the corresponding sub-block in a horizontal direction or a vertical direction. Alternatively, the default motion information may mean motion information of a sub-block including a central sample of the target block. However, the present invention is not limited thereto, and the default motion information may mean motion information of a sub-block including any one of n corner samples of the target block. n can be 1, 2, 3, or 4. Alternatively, among sub blocks including a central sample and/or sub blocks including n corner samples, a sub block having available motion information is searched according to a predetermined priority order, and motion information of the first searched sub block is defaulted. It can also be set as motion information.

한편, 전술한 디폴트 움직임정보가 가용한지 여부에 대한 판단을 선제적으로 수행할 수 있다. 판단 결과, 디폴트 움직임정보가 가용하지 않은 경우에는 서브 블록 단위 시간적 후보의 움직임정보 유도 및 후보 리스트에의 추가 과정은 생략될 수 있다. 즉, 디폴트 움직임정보가 가용한 경우에 한하여, 서브 블록 단위 시간적 후보가 유도되고, 후보 리스트에 추가될 수 있다.On the other hand, it is possible to preemptively determine whether the above-described default motion information is available. As a result of the determination, if the default motion information is not available, the process of deriving the motion information of the temporal candidate for each sub-block and adding it to the candidate list may be omitted. That is, as long as the default motion information is available, temporal candidates for each sub-block can be derived and added to the candidate list.

한편, 움직임정보의 움직임벡터는 스케일링 처리가 된 움직임벡터를 의미할 수도 있다. 타깃 픽쳐와 타깃 (서브) 블록의 참조 픽쳐의 시간적 거리를 TD, 현재 픽쳐와 현재 (서브) 블록의 참조 픽쳐의 시간적 거리를 TB로 정하고, 수식 2를 이용하여 타깃 (서브) 블록의 움직임벡터(MV)를 스케일링한다. 스케일링된 움직임벡터(MVscale)는 현재 (서브) 블록의 예측 (서브) 블록을 참조 픽쳐 내에서 가리킬 때 사용되거나, 현재 (서브) 블록의 시간적 후보 또는 서브 블록 단위 시간적 후보의 움직임벡터로 이용될 수 있다. 단, 스케일링된 움직임벡터 유도 시에 수식 2에서 사용된 변수 MV는 타깃 (서브) 블록의 움직임벡터를 의미하고, MVscale은 현재 (서브) 블록의 스케일링된 움직임벡터를 의미한다. Meanwhile, the motion vector of the motion information may mean a motion vector that has been scaled. The temporal distance of the reference picture of the target picture and the reference picture of the target (sub) block is TD, and the temporal distance of the reference picture of the current picture and the current (sub) block is TB, using Equation 2, the motion vector of the target (sub) block ( MV). The scaled motion vector (MV scale ) is used to point the prediction (sub) block of the current (sub) block within the reference picture, or may be used as a motion vector of a temporal candidate or a sub-block temporal candidate of the current (sub) block. Can. However, when deriving the scaled motion vector, the variable MV used in Equation 2 means the motion vector of the target (sub) block, and the MV scale means the scaled motion vector of the current (sub) block.

또한, 현재 (서브) 블록의 참조 픽쳐 정보는 영상 부호화 장치와 영상 복호화 장치가 동일한 조건으로 지정될 수도 있고, 현재 (서브) 블록의 참조 픽쳐 정보를 현재 (서브) 블록 단위로 전송하는 것도 가능하다. In addition, the reference picture information of the current (sub) block may be designated under the same conditions as the video encoding device and the video decoding device, and it is also possible to transmit the reference picture information of the current (sub) block in units of the current (sub) block. .

하기 현재 (서브) 블록의 타깃 (서브) 블록을 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 결정하는 방법에 대해서 좀 더 상세히 설명할 것이다. 현재 (서브) 블록의 타깃 (서브) 블록은 Merge/AMVP 후보 리스트에 있는 후보 움직임정보들 중 하나를 이용하여 가리킬 수 있다. 좀 더 상세하게는 후보 리스트에 있는 후보 움직임정보들의 예측 모드를 파악한 후, 예측 모드에 우선 순위를 부여하여 결정할 수도 있다. 예를 들어, AMVP 모드, MERGE 모드, SKIP 모드 순으로 우선순위를 두어서 후보 리스트에 있는 움직임정보들 중 하나를 선택하여 타깃 (서브) 블록을 가리킬 수 있다. Hereinafter, a method of determining the target (sub) block of the current (sub) block under the same conditions in the video encoding apparatus and the video decoding apparatus will be described in more detail. The target (sub) block of the current (sub) block can be indicated using one of the candidate motion information in the Merge/AMVP candidate list. More specifically, after determining the prediction mode of the candidate motion information in the candidate list, priority may be given to the prediction mode. For example, by prioritizing in the order of AMVP mode, MERGE mode, and SKIP mode, one of the motion information in the candidate list can be selected to indicate the target (sub) block.

또한 단순하게, 후보 리스트에 있는 가장 첫번째 후보 움직임정보를 무조건적으로 선택하여 타깃 (서브) 블록을 가리킬 수도 있다. 만약 동일한 예측 모드로 코딩된 후보 움직임정보들의 경우에는 후보 리스트상에서 우선 순위가 높았던 순으로 선택을 하는 등 다양한 우선 순위 조건을 이용할 수 있다. 단, 후보 움직임정보의 참조 픽쳐와 타깃 픽쳐가 다를 경우에는 해당 후보 움직임정보는 제외할 수도 있다. 혹은 현재 (서브) 블록과 동일 위치에 해당하는 타깃 픽쳐 내 타깃 (서브) 블록으로 결정할 수도 있다. Also, simply, the first candidate motion information in the candidate list may be unconditionally selected to indicate a target (sub) block. In the case of candidate motion information coded in the same prediction mode, various priority conditions can be used, such as selecting in the order of highest priority on the candidate list. However, when the reference picture and the target picture of the candidate motion information are different, the candidate motion information may be excluded. Alternatively, the target (sub) block in the target picture corresponding to the same position as the current (sub) block may be determined.

구체적으로, 타킷 (서브) 블록은, 현재 (서브) 블록의 위치에서 소정의 시간적 움직임벡터(temporal MV)만큼 쉬프트된 위치의 블록으로 결정될 수 있다. 여기서, 시간적 움직임벡터는, 현재 블록에 공간적으로 인접한 주변 블록의 움직임벡터로 설정될 수 있다. 상기 주변 블록은, 현재 블록의 좌측, 상단, 좌하단, 우상단 또는 좌상단 블록 중 어느 하나일 수 있다. 또는, 시간적 움직임벡터는, 부호화/복호화 장치에 기-약속된 고정된 위치의 주변 블록만을 이용하여 유도될 수도 있다. 예를 들어, 상기 고정된 위치의 주변 블록은 현재 블록의 좌측 블록(A1)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 상단 블록(A2)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 좌하단 블록(A3)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 우상단 블록(A4)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 좌상단 블록(A5)일 수 있다.Specifically, the target (sub) block may be determined as a block at a position shifted by a predetermined temporal motion vector (temporal MV) from the position of the current (sub) block. Here, the temporal motion vector may be set as a motion vector of neighboring blocks spatially adjacent to the current block. The neighboring block may be any one of the left, top, bottom left, top right, or top left blocks of the current block. Alternatively, the temporal motion vector may be derived by using only a peripheral block at a fixed position pre-promised in the encoding/decoding device. For example, the peripheral block in the fixed position may be the left block A1 of the current block. Alternatively, the peripheral block in the fixed position may be the upper block A2 of the current block. Alternatively, the peripheral block in the fixed position may be the lower left block A3 of the current block. Alternatively, the peripheral block in the fixed position may be the upper right block A4 of the current block. Alternatively, the peripheral block in the fixed position may be the upper left block A5 of the current block.

상기 설정은, 주변 블록의 참조 픽쳐와 타깃 픽쳐가 동일한 경우(예를 들어, 참조 픽쳐와 타깃 픽쳐 간의 POC 차이가 0인 경우)에 한하여 수행될 수 있다. 주변 블록의 참조 픽쳐와 타깃 픽쳐가 동일하지 않은 경우, 시간적 움직임벡터는 (0,0)으로 설정될 수 있다.The setting may be performed only when the reference picture and the target picture of the neighboring block are the same (for example, when the POC difference between the reference picture and the target picture is 0). When the reference picture and the target picture of the neighboring block are not the same, the temporal motion vector may be set to (0,0).

상기 설정된 시간적 움직임벡터는 소정의 오프셋 또는 쉬프트값 중 적어도 하나에 기초하여 라운딩될 수 있다. 여기서, 오프셋은, 쉬프트값에 기초하여 유도되고, 쉬프트값은 우측 방향의 쉬프트값(rightShift) 또는 좌측 방향의 쉬프트값(leftShift) 중 적어도 하나를 포함할 수 있다. 쉬프트값은 부호화/복호화 장치에 기-설정된 정수일 수 있다. 예를 들어, rightShift는 4로, leftShift는 0으로 각각 설정될 수 있다. 예를 들어, 시간적 움직임벡터의 라운딩은 다음 수학식 3과 같이 수행될 수 있다.The set temporal motion vector may be rounded based on at least one of a predetermined offset or shift value. Here, the offset is derived based on the shift value, and the shift value may include at least one of a right shift value (rightShift) or a left shift value (leftShift). The shift value may be an integer preset in the encoding/decoding device. For example, rightShift may be set to 4 and leftShift may be set to 0, respectively. For example, rounding of a temporal motion vector may be performed as shown in Equation 3 below.

[수학식 3][Equation 3]

offset = ( rightShift = = 0 ) ? 0 : ( 1 << ( rightShift - 1 ) )offset = (rightShift = = 0)? 0: (1 << (rightShift-1))

mvXR[ 0 ] = ( ( mvX[ 0 ] + offset - ( mvX[ 0 ] >= 0 ) ) >> rightShift ) << leftShiftmvX R [0] = ((mvX[ 0] + offset-(mvX[ 0] >= 0)) >> rightShift) << leftShift

mvXR[ 1 ] = ( ( mvX[ 1 ] + offset - ( mvX[ 1 ] >= 0 ) ) >> rightShift ) << leftShiftmvX R [1] = ((mvX[ 1] + offset-(mvX[ 1] >= 0)) >> rightShift) << leftShift

좀 더 상세한 설명을 위해서 2가지 조건을 가정한다. 첫번째는 이미 코딩이 끝난 픽쳐 내에서는 움직임정보를 4x4 서브 블록 단위로 저장하여 보관하고, (여기서, 움직임정보 저장을 위한 4x4 서브 블록 단위 경계들과 타깃 픽쳐 내 타깃 (서브) 블록의 경계들은 일치함) 두번째는 현재 블록 내 서브 블록의 크기를 4x4로 한다는 것이다. 전술한 블록들의 크기는 다양하게 결정할 수 있다. 이 때, 현재 (서브) 블록에서 동일 위치에 해당하는 타깃 픽쳐 내 타깃 (서브) 블록의 위치 혹은 현재 (서브) 블록의 Merge/AMVP 후보 리스트에 있는 움직임정보를 이용하여 타깃 픽쳐 내에서 가리킨 타깃 (서브) 블록의 위치를 결정하는 경우, 타깃 픽쳐 내에서 움직임 정보가 저장된 4x4 서브 블록 단위상에서 각 서브 블록의 기준 좌표와 현재 (서브) 블록의 기준 좌표가 대응하지 못할 수도 있다. 예를 들어, 현재 (서브) 블록의 맨 좌상단 화소의 좌표는 (12, 12) 인데 타깃 (서브) 블록의 맨 좌상단 좌표는 (8, 8) 일 수도 있는 등의 불일치가 발생할 수 있다. 이는 타깃 픽쳐의 블록 분할 구조가 현재 픽쳐와 다르기 때문에 발생하는 어쩔 수 없는 현상이다.Two conditions are assumed for a more detailed explanation. The first is to store and store motion information in 4x4 sub-block units within a picture that has already been coded (here, the 4x4 sub-block unit boundaries for storing motion information and the target (sub) block boundaries in the target picture coincide) ) The second is that the size of the sub-block in the current block is 4x4. The size of the aforementioned blocks can be variously determined. At this time, the target point indicated in the target picture using the motion information in the target (sub) block position in the current (sub) block or the target (sub) block in the Merge/AMVP candidate list of the current (sub) block ( When determining the position of the sub) block, the reference coordinates of each sub-block and the reference coordinates of the current (sub) block may not correspond to each 4x4 sub-block unit in which motion information is stored in the target picture. For example, the coordinates of the top left pixel of the current (sub) block are (12, 12), but the top left coordinate of the target (sub) block may be (8, 8), such a mismatch may occur. This is an unavoidable phenomenon that occurs because the block division structure of the target picture is different from the current picture.

도 11은 서브 블록 단위가 아닌 현재 블록 단위에서 시간적 후보 움직임정보를 유도할 때, 타깃 블록을 결정하는 방법을 설명하기 위한 예시 도면이다. 현재 블록의 기준 좌표에서 타깃 위치를 가리키는 움직임벡터가 (동일 위치 (즉, 제로 움직임) 혹은 후보 리스트에서 유도된 움직임벡터) 결정된 후, 타깃 픽쳐 내에서 해당 움직임벡터가 가리키는 지점을 찾는다. 타깃 픽쳐 내에서 해당 타깃 지점을 포함하는 4x4 타깃 서브 블록의 움직임정보를 현재 블록의 스케일링된 움직임벡터를 유도할 때 이용할 수 있다. 혹은 현재 블록에서 복수개의 기준 좌표를 두고 각 기준 좌표들이 가리키는 타깃 지점을 탐색하여, 타깃 지점이 모두 동일한 4x4 타깃 서브 블록을 가리킨다면 해당 타깃 서브 블록의 움직임정보를 현재 블록의 스케일링된 움직임벡터를 유도할 때 사용하면 되지만, 복수개의 4x4 타깃 서브 블록들을 가리킨다면 각 타깃 서브 블록들의 평균 움직임정보를 이용하여 현재 블록의 스케일링된 움직임벡터를 유도할 때 사용할 수도 있다. 타깃 지점은 도 11의 예시처럼 현재 블록 중앙 영역의 2개의 타깃 위치를 사용할 수도 있지만 그 이상을 사용하는 것도 물론이고 다른 현재 블록 내 있는 화소 위치 어디든 사용 가능하다. 평균 움직임정보를 계산하기 위한 움직임 정보도 당연히 2개 이상이 될 수 있다. 혹은 각 복수개의 타깃 서브 블록들을 이용하여 복수개의 스케일링된 움직임벡터를 유도 후, 복수개의 예측 블록을 생성하여 해당 예측 블록들을 가중합하여 최종 예측 블록을 생성할 수도 있다. 11 is an exemplary diagram for explaining a method of determining a target block when deriving temporal candidate motion information in a current block unit rather than a sub-block unit. After the motion vector indicating the target position in the reference coordinates of the current block (the same position (ie, zero motion) or the motion vector derived from the candidate list) is determined, the point to which the motion vector points in the target picture is found. The motion information of the 4x4 target sub-block including the target point in the target picture can be used to derive the scaled motion vector of the current block. Or, if a plurality of reference coordinates are located in the current block, and target points indicated by each reference coordinate are searched, and if the target points all point to the same 4x4 target sub-block, the motion information of the target sub-block is derived from the scaled motion vector of the current block. It can be used to do this, but if it refers to a plurality of 4x4 target sub-blocks, it can also be used to derive the scaled motion vector of the current block by using the average motion information of each target sub-block. The target point may use two target positions of the current block center area, as in the example of FIG. 11, but it can be used anywhere other than the pixel position within the current block. Of course, there may be two or more motion information for calculating the average motion information. Alternatively, after deriving a plurality of scaled motion vectors using each of the plurality of target sub-blocks, a plurality of prediction blocks may be generated to weight the corresponding prediction blocks to generate a final prediction block.

도 12, 13은 현재 블록 내 서브 블록 단위로 시간적 후보 움직임정보를 유도할 때, 타깃 블록을 결정하는 방법에 대해서 설명하기 위한 예시 도면이다. 도 12는 서브 블록 단위로 기준 위치가 1개인 경우의 예시 도면이고, 도 13은 서브 블록 단위로 복수개의 기준 위치가 사용될 때의 예시 도면이다. 12 and 13 are exemplary views for explaining a method of determining a target block when deriving temporal candidate motion information in units of sub-blocks in a current block. 12 is an exemplary diagram in a case where one reference position is in sub-block units, and FIG. 13 is an exemplary diagram when a plurality of reference positions are used in sub-block units.

도 12에서는 서브 블록 단위로 기준 위치가 서브 블록의 좌상단 화소 위치로 예시하였다. 현재 블록의 맨 우하단 서브 블록의 기준 좌표를 기점으로 찾은 타깃 픽쳐의 4x4 타깃 서브 블록을 기준으로 현재 블록과 동일한 크기의 타깃 블록을 결정한 후, 현재 블록과 타깃 블록의 동일 위치 서브 블록들끼리 타깃 서브 블록들의 움직임 정보를 이용하여 현재 서브 블록의 스케일링된 움직임벡터를 각각 유도할 수도 있다. 혹은 서브 블록의 기준 좌표에서 타깃 위치를 가리키는 움직임벡터를 통해 타깃 픽쳐의 타깃 위치를 파악한 후, 해당 타깃 위치가 포함된 4x4 타깃 서브 블록의 움직임정보를 현재 서브 블록의 스케일링된 움직임벡터를 유도할 때 사용할 수 있다.In FIG. 12, the reference position in units of sub blocks is illustrated as the position of the upper left pixel of the sub block. After determining the target block of the same size as the current block based on the 4x4 target sub-block of the target picture, which is based on the reference coordinate of the bottom-right sub-block of the current block, targets between the current block and the same-position sub-blocks of the target block The scaled motion vector of the current sub-block may be derived using the motion information of the sub-blocks, respectively. Alternatively, when the target position of the target picture is determined through the motion vector indicating the target position in the reference coordinates of the sub-block, and when the motion information of the 4x4 target sub-block including the target position is derived to derive the scaled motion vector of the current sub-block. Can be used.

도 13에서는 현재 서브 블록 별로 복수개의 타깃 서브 블록을 이용하여 스케일링된 움직임벡터를 유도하는 방법을 설명하기 위한 예시 도면이다. 도 13의 예시처럼 서브 블록 D의 스케일링된 움직임벡터를 유도할 경우에는, 서브 블록 D 내의 복수개의 기준 좌표를 기점으로 타깃 픽쳐 내 타깃 위치를 파악한다. 이 후, 타깃 위치가 동일한 타깃 서브 블록을 가리킬 경우 해당 타깃 서브 블록의 움직임정보를 이용하여 현재 서브 블록의 스케일링된 움직임벡터를 유도할 수 있지만, 도 13처럼 타깃 위치들이 서로 다른 타깃 서브 블록을 가리킬 경우에는 각 타깃 서브 블록들의 평균 움직임정보를 계산하여 현재 서브 블록의 스케일링된 움직임벡터를 유도할 수도 있다. 또한, 각 타깃 서브 블록들의 움직임정보를 이용하여 서로 다른 스케일링된 움직임벡터를 따로 유도한 후, 예측 서브 블록을 각각 생성하고, 각 예측 서브 블록들을 가중합하여 최종 예측 블록을 생성할 수도 있다. 현재 블록 내 다른 서브 블록들(서브 블록 A, B, C)도 전술한 방법으로 예측 서브 블록을 생성할 수 있다.13 is an exemplary view for explaining a method of deriving a scaled motion vector using a plurality of target sub-blocks for each current sub-block. In the case of deriving the scaled motion vector of sub-block D as illustrated in FIG. 13, the target position in the target picture is determined based on a plurality of reference coordinates in sub-block D. Subsequently, when the target location points to the target sub-block having the same target, the scaled motion vector of the current sub-block can be derived using the motion information of the target sub-block, but as illustrated in FIG. 13, target locations have different target sub-blocks. In the case, the average motion information of each target sub-block may be calculated to derive a scaled motion vector of the current sub-block. In addition, after deriving different scaled motion vectors separately using motion information of each target sub-block, a prediction sub-block may be respectively generated, and a final prediction block may be generated by weighting each prediction sub-block. Other sub-blocks in the current block (sub-blocks A, B, and C) can also generate a predictive sub-block in the manner described above.

(실시예 2)(Example 2)

본 실시예에서는 도 9의 904 단계를 상세히 설명할 것이다. History-based 후보는 (이하, '복원정보기반 후보'라 칭함) 시퀀스, 픽쳐 혹은 슬라이스 단위로, 현재 블록 이전에 부호화/복호화된 움직임정보를 저장하기 위한 복원정보기반 움직임 후보 저장 버퍼(이하, 'H 버퍼'라 칭함)가 존재한다. 해당 버퍼는 코딩된 움직임정보를 FIFO(First-in First-out) 방식으로 버퍼를 업데이트하면서 관리한다. H 버퍼는 CTU, CTU행, 슬라이스 혹은 픽쳐 단위로 초기화될 수 있고, 현재 블록이 움직임 정보에 의해 예측되어 코딩된 경우, 해당 움직임 정보들을 H 버퍼에 업데이트 한다. H 버퍼에 저장된 움직임정보들은 도 9의 S904 단계에서 Merge/AMVP 후보로 이용될 수 있다. H 버퍼의 후보 움직임정보를 후보 리스트에 추가할 때에는 H 버퍼에 가장 최근에 업데이트된 움직임정보 순으로 추가할 수도 있고, 그 반대도 가능하다. 혹은 화면 간 예측 모드에 따라서, H 버퍼의 움직임정보를 어느 순서로 꺼내어 후보 리스트에 추가할지를 결정할 수도 있다.In this embodiment, step 904 of FIG. 9 will be described in detail. The history-based candidate (hereinafter referred to as a'recovery information-based candidate') is a sequence, picture, or slice unit, and a motion information-based motion candidate storage buffer (hereinafter,'for storing motion information encoded/decoded before the current block). H buffer'). The buffer manages the coded motion information by updating the buffer in a FIFO (First-in First-out) method. The H buffer may be initialized in units of CTU, CTU rows, slices, or pictures, and when the current block is predicted and coded by motion information, corresponding motion information is updated to the H buffer. The motion information stored in the H buffer may be used as a Merge/AMVP candidate in step S904 of FIG. 9. When the candidate motion information of the H buffer is added to the candidate list, the most recently updated motion information may be added to the H buffer, and vice versa. Alternatively, according to the inter prediction mode, it may be determined in which order the motion information of the H buffer is extracted and added to the candidate list.

구체적으로, 일 예로, H 버퍼와 후보 리스트 간의 중복성 체크를 통해서, H 버퍼의 움직임정보가 후보 리스트에 추가될 수 있다. 머지 모드(Merge mode)의 경우, 중복성 체크는, 후보 리스트의 머지 후보 일부와 H 버퍼의 움직임정보 일부에 대해서 수행될 수 있다. 후보 리스트의 일부는, 공간적 머지 후보 중 좌측 블록 및 상단 블록을 포함할 수 있다. 다만, 이에 한정되지 아니하며, 공간적 머지 후보 중 어느 하나의 블록으로 제한될 수도 있고, 좌하단 블록, 우상단 블록, 좌상단 블록 또는 시간적 머지 후보 중 적어도 하나를 더 포함할 수도 있다. 한편, H 버퍼의 일부는, H 버퍼에 가장 최근에 추가된 m개의 움직임정보를 의미할 수 있다. 여기서, m은 1, 2, 3 또는 그 이상이고, 부호화/복호화 장치에 기-약속된 고정된 값일 수 있다. H 버퍼에 5개의 움직임정보가 저장되어 있고, 각 움직임정보에 1 내지 5의 인덱스가 할당되어 있다고 가정한다. 인덱스가 클수록 나중에 저장된 움직임정보를 의미한다. 이때, 인덱스 5, 4 및 3을 가진 움직임정보와 상기 후보 리스트의 머지 후보 간의 중복성을 체크할 수 있다. 또는, 인덱스 5 및 4를 가진 움직임정보와 상기 후보 리스트의 머지 후보 간의 중복성을 체크할 수도 있다. 또는, 가장 나중에 추가된 인덱스 5의 움직임정보는 제외하고, 인덱스 4 및 3을 가진 움직임정보와 상기 후보 리스트의 머지 후보 간의 중복성을 체크할 수도 있다. 중복성 체크 결과, 동일한 움직임정보가 하나라도 존재하는 경우, H 버퍼의 움직임정보는 후보 리스트에 추가되지 않을 수 있다. 반면 동일한 움직임정보가 존재하지 않는 경우, H 버퍼의 움직임정보는 후보 리스트의 마지막 위치에 추가될 수 있다. 이때, H 버퍼에서 최근에 저장된 움직임정보의 순서로(즉, 인덱스가 큰 순서부터 작은 순서로) 후보 리스트에 추가될 수 있다. 다만, H 버퍼에서 가장 나중에 저장된 움직임정보(가장 큰 인덱스를 가진 움직임정보)는 후보 리스트에 추가되지 않도록 제한될 수도 있다.Specifically, for example, through redundancy check between the H buffer and the candidate list, motion information of the H buffer may be added to the candidate list. In the merge mode, redundancy check may be performed on a part of the merge candidate of the candidate list and a part of the motion information of the H buffer. A part of the candidate list may include a left block and an upper block among spatial merge candidates. However, the present invention is not limited thereto, and may be limited to any one of the spatial merge candidates, and may further include at least one of a lower left block, an upper right block, an upper left block, or a temporal merge candidate. Meanwhile, a part of the H buffer may mean m pieces of motion information most recently added to the H buffer. Here, m is 1, 2, 3 or more, and may be a fixed value pre-promised in the encoding/decoding device. It is assumed that 5 motion information is stored in the H buffer, and 1 to 5 indexes are allocated to each motion information. The larger the index, the later the stored motion information. At this time, redundancy between motion information having indexes 5, 4, and 3 and merge candidates of the candidate list may be checked. Alternatively, redundancy between motion information having indexes 5 and 4 and merge candidates of the candidate list may be checked. Alternatively, the redundancy between the motion information having the indexes 4 and 3 and the merge candidate of the candidate list may be checked, except for the motion information of the index 5 added last. As a result of the redundancy check, if there is even the same motion information, the motion information of the H buffer may not be added to the candidate list. On the other hand, if the same motion information does not exist, the motion information of the H buffer can be added to the last position of the candidate list. In this case, the motion information stored in the H buffer may be added to the candidate list in the order of the recently stored motion information (that is, from the largest index to the smallest index). However, the motion information (motion information having the largest index) stored last in the H buffer may be restricted so that it is not added to the candidate list.

반면, AMVP 모드의 경우, H 버퍼에 먼저 저장된 움직임정보(특히, 움직임벡터)의 순서로 후보 리스트에 추가될 수 있다. 즉, H 버퍼에 저장된 움직임정보 중 작은 인덱스를 가진 움직임정보가 큰 인덱스를 가진 움직임정보보다 먼저 후보 리스트에 추가될 수 있다.On the other hand, in the case of the AMVP mode, the motion information (especially motion vector) stored first in the H buffer may be added to the candidate list in order. That is, among the motion information stored in the H buffer, motion information having a small index may be added to a candidate list before motion information having a large index.

한편, H 버퍼에 저장된 움직임벡터가 후보 리스트에 동일하게 추가될 수도 있고, 전술한 라운딩 과정이 적용된 움직임벡터가 후보 리스트에 추가될 수도 있다. 라운딩은, 현재 블록의 움직임벡터의 정확도에 대응되도록 후보 움직임정보의 정확도를 조절하기 위함이다. 수학식 3을 참조하면, mvXR는 라운딩 과정이 적용된 움직임벡터를, mvX는 H 버퍼에 저장된 움직임벡터를 각각 의미할 수 있다. 또한, 쉬프트값인 rightShift 또는 leftShift 중 적어도 하나는, 움직임벡터의 정확도(혹은 해상도)를 고려하여 결정될 수 있다. 예를 들어, 움직임벡터의 정확도가 1/4 샘플인 경우, 쉬프트값은 2로 결정되고, 1/2 샘플인 경우, 쉬프트값은 3으로 결정될 수 있다. 움직임벡터의 정확도가 1 샘플인 경우, 쉬프트값은 4로 결정되고, 4 샘플인 경우, 쉬프트값은 6으로 결정될 수 있다. RightShift와 leftShift는 동일한 값으로 설정될 수 있다.Meanwhile, the motion vector stored in the H buffer may be added to the candidate list in the same way, or the motion vector to which the above-described rounding process is applied may be added to the candidate list. Rounding is to adjust the accuracy of candidate motion information so as to correspond to the accuracy of the motion vector of the current block. Referring to Equation 3, mvX R may mean a motion vector to which a rounding process is applied, and mvX may mean a motion vector stored in an H buffer. Further, at least one of the shift value rightShift or leftShift may be determined in consideration of the accuracy (or resolution) of the motion vector. For example, when the accuracy of the motion vector is 1/4 sample, the shift value may be determined as 2, and in the case of 1/2 sample, the shift value may be determined as 3. When the accuracy of the motion vector is 1 sample, the shift value may be determined as 4, and in the case of 4 samples, the shift value may be determined as 6. RightShift and leftShift can be set to the same value.

H 버퍼에 저장되는 움직임정보를 Merge/AMVP 후보 리스트에 추가할 때, 추가 될 수 있는 움직임정보의 개수를 제한할 수도 있다. 예를 들어, Merge/AMVP 후보 리스트의 최대 후보 개수까지 모두 H 버퍼에 있는 움직임정보를 이용하여 채울 수도 있지만, (최대 후보 개수 - 1)개 까지만 채울 수도 있다. When adding motion information stored in the H buffer to the Merge/AMVP candidate list, the number of motion information that can be added may be limited. For example, although the maximum number of candidates in the Merge/AMVP candidate list may be filled using motion information in the H buffer, only (maximum number of candidates-1) may be filled.

H 버퍼에 저장되는 후보 움직임정보의 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 결정할 수도 있고, 상위 헤더에서 영상 복호화 장치로 전송될 수도 있다.The number of candidate motion information stored in the H buffer may be determined under the same conditions in the video encoding device and the video decoding device, or may be transmitted from the upper header to the video decoding device.

구체적으로, Merge 후보 리스트의 경우, H 버퍼의 움직임정보를 이용하여 (최대 후보 개수-n)개까지만 채울 수 있다. 여기서, n은 1, 2, 또는 그 이상의 정수일 수 있다. 최대 후보 개수는, 부호화/복호화 장치에 기-정의된 고정된 개수(예를 들어, 5개, 6개, 7개, 8개)로 결정되거나, 최대 후보 개수를 지시하기 위해 시그날링된 정보에 기초하여 가변적으로 결정될 수도 있다. 한편, AMVP 후보 리스트의 경우, H 버퍼의 움직임정보를 이용하여 최대 후보 개수까지 채울 수 있다. AMVP 후보 리스트의 최대 후보 개수는 2개, 3개, 4개 또는 그 이상일 수 있다. AMVP 후보 리스트의 경우, Merge 후보 리스트와 달리 최대 후보 개수가 가변적이지 않을 수 있다.Specifically, in the case of the Merge candidate list, only (maximum number of candidates-n) can be filled using the motion information of the H buffer. Here, n may be an integer of 1, 2, or more. The maximum number of candidates is determined by a fixed number (for example, 5, 6, 7, 8) pre-defined in the encoding/decoding device, or in signaled information to indicate the maximum number of candidates It may be determined variably on the basis of. Meanwhile, in the case of the AMVP candidate list, the maximum number of candidates may be filled using motion information of the H buffer. The maximum number of candidates in the AMVP candidate list may be 2, 3, 4, or more. In the case of the AMVP candidate list, unlike the Merge candidate list, the maximum number of candidates may not be variable.

H 버퍼를 업데이트하는 제1 방법은 도 14를 참조한다. H 버퍼는 첫번째 CTU 행에서는 블록의 코딩 순으로 움직임정보들을 업데이트 한다. 두번째 CTU행부터는 블록의 코딩 순으로 움직임정보들을 업데이트 하는 것은 동일하지만, 상단 CTU 내에서 현재 CTU행과 인접한 복원 블록들에 저장된 움직임정보들을 추가 고려하여 H 버퍼를 업데이트할 수도 있다. 도 14에서 CTU 내의 mi는 Motion Information의 약어로써, 마지막 CTU행을 제외한 나머지 CTU행에서 맨 하단 블록들에 저장되어 있는 복원 움직임정보이다. H 버퍼에는 최대 P(P는 1 이상의 정수)개의 움직임정보가 업데이트 될 수 있으며, H 버퍼가 초기화되는 단위에 따라서 업데이트 방법이 달라질 수 있다. 본 실시예 에서는 CTU 단위로 초기화될 때와, CTU행 단위로 초기화될 때에 따른 H 버퍼 업데이트 방법에 대해서 설명할 것이다. 먼저 H 버퍼가 CTU 단위로 초기화될 때 두번째 CTU행의 각 CTU는 코딩을 시작하기 전에 H 버퍼를 mi를 이용하여 초기화할 수 있다. 여기서 초기화의 의미는 완전히 비워진 H 버퍼에 어떠한 움직임정보를 다시 업데이트한다는 것을 의미한다. 예를 들어, CTU8을 코딩 하기 전에 CTU3의 하단 4개의 mi를 이용하여 H 버퍼를 초기화할 수 있다. mi를 업데이트하는 순서 또한 다양하게 결정할 수 있다. 현재 좌측에 있는 mi부터 업데이트할 수도 있고, 그 반대로 우측에 있는 mi부터 업데이트할 수도 있다. H 버퍼가 CTU행 단위로 초기화될 때에는 각 CTU행의 첫번째 CTU에서만 상단 CTU의 mi를 이용해서 업데이트할 수도 있다. 또한, 각 초기화 단위로 H 버퍼를 모두 비워서 초기화를 할 수도 있다. 한편, 가장 최근에 부호화/복호화된 움직임정보가 H 버퍼에 기-저장된 움직임정보와 동일한 경우, 가장 최근의 움직임정보는 H 버퍼에 추가되지 않을 수 있다. 또는, 가장 최근의 움직임정보와 동일한 움직임정보를 H 버퍼에서 제거하고, 가장 최근의 움직임정보를 H 버퍼에 저장할 수도 있다. 이때, 가장 최근의 움직임 정보는, H 버퍼의 가장 마지막 위치에 저장될 수 있다.For a first method of updating the H buffer, see FIG. 14. The H buffer updates motion information in the coding order of blocks in the first CTU row. From the second CTU row, it is the same to update the motion information in the coding order of the block, but the H buffer may be updated by further considering motion information stored in reconstructed blocks adjacent to the current CTU row in the upper CTU. In FIG. 14, mi in CTU is an abbreviation for Motion Information, and is reconstructed motion information stored in the bottom blocks in the remaining CTU lines except the last CTU line. Up to P (P is an integer greater than or equal to 1) motion information may be updated in the H buffer, and the update method may vary according to the unit in which the H buffer is initialized. In this embodiment, an H buffer update method according to initialization in CTU units and initialization in CTU row units will be described. First, when the H buffer is initialized in CTU units, each CTU in the second CTU row can initialize the H buffer using mi before starting coding. Here, the meaning of initialization means that any motion information is updated again in the completely empty H buffer. For example, before coding CTU 8 , the H buffer can be initialized using the lower 4 mi of CTU 3 . The order of updating mi can also be determined in various ways. You can update from the mi on the left now, or vice versa. When the H buffer is initialized in units of CTU rows, only the first CTU in each CTU row can be updated using the mi of the upper CTU. In addition, the H buffer may be emptied for each initialization unit to initialize. Meanwhile, when the most recently encoded/decoded motion information is the same as the motion information pre-stored in the H buffer, the most recent motion information may not be added to the H buffer. Alternatively, the same motion information as the most recent motion information may be removed from the H buffer, and the most recent motion information may be stored in the H buffer. At this time, the most recent motion information may be stored in the last position of the H buffer.

H 버퍼를 업데이트하는 제2 방법은 도 15를 참조한다. 제2 방법은 H 버퍼 이외에 추가 움직임후보 저장 버퍼를 둔다. 이 버퍼는 상단 CTU의 복원 움직임정보(이하, 'Vmi'라 칭함)를 저장하는 버퍼(이하, 'V 버퍼'라 칭함)이다. 이 V 버퍼는 전술한 H 버퍼가 CTU행 혹은 슬라이스 단위로 초기화될 때 이용 가능할 수 있으며, V 버퍼는 CTU행 단위로 초기화될 수 있다. 현재 픽쳐에서 마지막 CTU행을 제외한 나머지 CTU행에서는 하단 CTU행을 위해서 V 버퍼 내 Vmi를 업데이트 해야 한다. 여기서 V 버퍼에는 최대 Q(Q는 1 이상의 정수)개의 움직임정보가 업데이트 될 수 있고, Vmi에 해당하는 움직임정보는 다양한 방법으로 결정할 수 있다. 예를 들어, Vmi는 CTU의 센터 좌표가 포함된 블록의 복원 움직임정보가 될 수도 있고, 상단 CTU에서 센터 좌표가 포함된 블록을 코딩 할 때, H 버퍼에 포함된 가장 최신 순의 움직임정보일 수도 있다. 하나의 CTU에서 업데이트되는 Vmi는 1개 이상일 수 있으며 업데이트된 Vmi는 하단 CTU의 H 버퍼를 업데이트할 때 사용된다. 첫번째 CTU행을 제외한 나머지 CTU행에서는 각 CTU 별로 상단 CTU행의 V 버퍼에 저장된 Vmi를 현재 H 버퍼에 업데이트한다. 상단 CTU 행의 V 버퍼에 저장된 Vmi가 복수개일 경우, 가장 먼저 업데이트 된 움직임 정보를 먼저 꺼내어 H 버퍼에 업데이트 할 수도 있고 그 반대의 순서로 업데이트 할 수도 있다. 업데이트를 하는 시기는 각 CTU를 코딩 하기 전 일 수도 있고, 각 CTU에서 상단 CTU와 접경하는 블록들을 코딩 하기 전 일 수도 있는 등 다양한 시점에서 V 버퍼에 저장된 상단 CTU의 Vmi를 H 버퍼에 업데이트를 할 수 있다. 또한, 상단 CTU 뿐 아니라 좌상단 CTU, 우상단 CTU의 Vmi도 H 버퍼에 업데이트할 수 있다.15 for a second method of updating the H buffer. The second method places an additional motion candidate storage buffer in addition to the H buffer. This buffer is a buffer (hereinafter referred to as a'V buffer') that stores the reconstructed motion information of the upper CTU (hereinafter referred to as'Vmi'). This V buffer may be available when the aforementioned H buffer is initialized in units of CTU rows or slices, and the V buffer may be initialized in units of CTU rows. In the current picture except for the last CTU line, Vmi in the V buffer must be updated for the lower CTU line. Here, up to Q (Q is an integer of 1 or more) motion information can be updated in the V buffer, and motion information corresponding to Vmi can be determined in various ways. For example, Vmi may be reconstructed motion information of a block containing the center coordinate of the CTU, or may be the most recent motion information included in the H buffer when coding a block containing the center coordinate in the upper CTU. have. There may be more than one Vmi updated in one CTU, and the updated Vmi is used to update the H buffer of the lower CTU. In the remaining CTU rows except the first CTU row, Vmi stored in the V buffer of the upper CTU row is updated to the current H buffer for each CTU row. When there are multiple Vmis stored in the V buffer of the upper CTU row, the first updated motion information can be retrieved first and updated in the H buffer or vice versa. The update time may be before coding each CTU, or before coding blocks that border the upper CTU in each CTU. At various times, the Vmi of the upper CTU stored in the V buffer can be updated to the H buffer. Can. In addition, the Vmi of the upper left CTU as well as the upper left CTU and the upper right CTU can be updated in the H buffer.

전술한 V 버퍼의 후보 움직임정보는 도 9의 MERGE/AMVP 후보 리스트 유도 과정에 독립적으로 추가될 수도 있다. V 버퍼 후보 움직임정보를 추가할 때 MERGE/AMVP 후보 리스트 내에서의 해당 우선 순위는 다양하게 결정할 수 있다. 예를 들어, S904 단계 이후에 V 버퍼 내 유효한 움직임정보가 있다면 해당 후보 움직임정보를 S904, S905 단계 사이에서 추가될 수도 있다. The above-described candidate motion information of the V buffer may be independently added to the MERGE/AMVP candidate list derivation process of FIG. 9. When adding V buffer candidate motion information, the corresponding priority in the MERGE/AMVP candidate list can be variously determined. For example, if there is valid motion information in the V buffer after step S904, the candidate motion information may be added between steps S904 and S905.

(실시예 3)(Example 3)

본 실시예에서는 도 9의 905 단계를 상세히 설명할 것이다. S901~S904 단계를 거쳐서 Merge/AMVP 후보 리스트에 채워진 움직임정보가 1개 이하인 경우에는 본 단계를 생략한다. Merge/AMVP 후보 리스트에 채워진 움직임정보가 2개 이상인 경우에는 각 후보들 간 평균 후보 움직임정보를 생성하여 후보 리스트를 채울 수 있다. 평균 후보 움직임정보의 움직임벡터는 움직임정보의 각 예측 방향 별로(List 0 혹은 List 1) 유도되는데, 후보 리스트에 저장된 동일한 방향의 움직임벡터를 평균하여 생성한 움직임벡터를 의미한다. 평균 후보 움직임정보를 유도할 때, 평균할 때 이용된 움직임정보의 참조 픽쳐 색인 정보가 다르다면 우선 순위가 높았던 움직임정보의 참조 픽쳐 정보를 평균 후보 움직임정보의 참조 픽쳐 색인 정보로 결정할 수 있다. 혹은 우선 순위가 낮았던 움직임정보의 참조 픽쳐 정보를 평균 후보 움직임정보의 참조 픽쳐 색인 정보로 결정할 수도 있다. In this embodiment, step 905 of FIG. 9 will be described in detail. If there is less than one motion information filled in the Merge/AMVP candidate list through steps S901 to S904, this step is omitted. If there is more than two motion information filled in the Merge/AMVP candidate list, the average candidate motion information may be generated between each candidate to fill the candidate list. The motion vector of the average candidate motion information is derived for each prediction direction (List 0 or List 1) of the motion information, and means a motion vector generated by averaging motion vectors in the same direction stored in the candidate list. When deriving the average candidate motion information, if the reference picture index information of the motion information used when averaging is different, the reference picture information of the motion information with high priority may be determined as the reference picture index information of the average candidate motion information. Alternatively, the reference picture information of the motion information having a low priority may be determined as reference picture index information of the average candidate motion information.

평균 후보 움직임정보를 Merge/AMVP 후보 리스트에 추가할 때, 생성된 평균 후보 움직임정보를 또 다른 평균 후보 움직임정보를 생성할 때 이용할 수도 있다. 이러한 예시를 설명하기 위해 도 16을 참조한다. 도 16에서 좌측 테이블은 도 9의 S905 단계를 거치기 전 Merge/AMVP 후보 리스트이고, 우측 테이블은 도 9의 S905 단계를 거친 후 Merge/AMVP 후보 리스트이다. 좌측 테이블을 보면 2개의 후보 리스트에는 0, 1번에 해당하는 후보 움직임정보가 채워져 있다. 이 2개의 움직임정보를 이용하여 2번에 해당하는 평균 후보 움직임정보를 생성할 수 있다. 도 16의 예시에서는 0번 후보의 List 0 방향 움직임벡터 (1, 1), 참조 픽쳐 색인 1인 움직임 정보와 1번 후보의 List 0 방향 움직임벡터 (3, -1), 참조 픽쳐 색인 0인 움직임정보를 평균하여 2번 후보의 List 0 방향 움직임정보를 채운다. List 1 방향의 경우 0번 후보의 움직임정보가 존재하지 않는다. 이런 경우에는 List 1 방향의 후보가 존재하는 1번 후보의 움직임정보를 그대로 가져와서 2번 후보의 List 1 방향 움직임정보를 채운다. 만약 평균 후보 움직임정보를 유도할 때 어느 한 방향의 움직임정보가 모두 없을 경우에는, 해당 방향은 따로 유도하지 않는다. 이렇게 유도된 2번의 평균 후보 움직임정보를 이용하여 추가적인 평균 후보 움직임정보를 생성할 수 있다. 3번의 평균 후보 움직임정보는 0, 2번 후보의 평균 후보 움직임정보이고, 4번의 평균 후보 움직임정보는 1, 2번 후보의 평균 후보 움직임정보이다. 평균 후보 움직임정보를 생성하는 방법은 전술한 바와 같다.When adding the average candidate motion information to the Merge/AMVP candidate list, the generated average candidate motion information may be used when generating another average candidate motion information. See FIG. 16 to illustrate this example. In FIG. 16, the left table is a list of Merge/AMVP candidates before step S905 of FIG. 9, and the right table is a list of Merge/AMVP candidates after step S905 of FIG. Looking at the table on the left, the candidate motion information corresponding to 0 and 1 is filled in the two candidate lists. Using these two pieces of motion information, it is possible to generate average candidate motion information corresponding to number two. In the example of FIG. 16, the motion information of List 0 direction motion vector (1, 1) of candidate 0, the motion information of reference picture index 1 and the motion vector of List 0 direction of candidate 1 (3, -1), motion of reference picture index 0 The information is averaged to fill the motion information of candidate 2 in the List 0 direction. In the case of List 1, there is no motion information of candidate 0. In this case, the motion information of candidate No. 1 in which the candidate in the direction of List 1 is present is taken as it is and the motion information of candidate No. 1 in the direction of No. 2 is filled. If there is no motion information in one direction when deriving the average candidate motion information, the corresponding direction is not separately derived. Additional average candidate motion information may be generated using the derived average motion information of the two times. The average candidate motion information of number 3 is the average candidate motion information of candidates 0 and 2, and the average candidate motion information of number 4 is the average candidate motion information of candidates 1 and 2. The method for generating the average candidate motion information is as described above.

도 9의 S905 단계를 거치기 전의 Merge/AMVP 후보 리스트에는 중복된 후보 움직임정보가 존재할 수도 있다. 평균 후보 움직임정보를 이러한 중복된 후보 움직임정보를 제거하는데 이용할 수도 있다. 도 17은 이러한 예시를 나타낸 것이다. 좌측, 우측 테이블은 도 16에서 설명한 바와 같다. 좌측 테이블을 보면 0, 2번의 후보 움직임정보가 완전히 동일하다. 이럴 경우, 우선 순위가 낮은 2번 후보 움직임정보를 평균 후보 움직임정보로 대체할 수 있다. 도 17의 예시에서는 0, 1번의 평균 후보 움직임정보로 기존의 2번 후보 움직임정보를 대체하였고, 3번은 0, 2번의 평균 후보 움직임정보, 4번은 1, 2번의 평균 후보 움직임정보를 이용하여 후보 리스트를 채운 것이다.Duplicate candidate motion information may exist in the Merge/AMVP candidate list before step S905 of FIG. 9. The average candidate motion information may be used to remove such duplicate candidate motion information. 17 shows this example. The left and right tables are as described in FIG. 16. Looking at the table on the left, the candidate motion information for 0 and 2 is completely the same. In this case, the second candidate motion information having a low priority may be replaced with the average candidate motion information. In the example of FIG. 17, the existing candidate motion information is replaced with the average candidate motion information of 0 and 1, 3 is the average candidate motion information of 0 and 2, and 4 is the candidate using the average candidate motion information of 1 and 2 The list is filled.

평균 후보 움직임정보를 이용하여 Merge/AMVP 후보 리스트를 채울 수 있는 개수 또한 제한될 수 있다. 예를 들어, Merge/AMVP 후보 리스트의 최대 후보 개수까지 모두 평균 후보 움직임정보를 이용하여 채울 수도 있지만, (후보 리스트 최대 개수 - 1)개 까지만 채울 수도 있다. 또한 평균 후보 움직임정보를 계산할 때 이용되는 후보 움직임정보가 3개 이상일 수 있으며, 3개 이상의 후보 움직임정보를 평균한 정보가 아닌 Median 정보를 평균 후보 움직임정보로 결정할 수도 있다. The number of Merge/AMVP candidate lists that can be filled using the average candidate motion information may also be limited. For example, it is possible to fill up to the maximum number of candidates in the Merge/AMVP candidate list using the average candidate motion information, but only up to (the maximum number of candidate lists-1). In addition, three or more candidate motion information may be used when calculating the average candidate motion information, and median information, not information obtained by averaging three or more candidate motion information, may be determined as the average candidate motion information.

전술한 실시예는 복호화 장치에서의 동작을 중심으로 살펴보았으나, 부호화 장치에서도 동일/유사하게 동작할 수 있으며, 자세한 설명은 생략하기로 한다.Although the above-described embodiment has been mainly focused on the operation in the decoding apparatus, the same or similar operation can be performed in the encoding apparatus, and detailed description will be omitted.

본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.Various embodiments of the present disclosure are not intended to list all possible combinations, but are intended to describe representative aspects of the present disclosure, and the items described in various embodiments may be applied independently or in combination of two or more.

또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. For implementation by hardware, one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), Universal It can be implemented by a processor (general processor), a controller, a microcontroller, a microprocessor.

본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.The scope of the present disclosure includes software or machine-executable instructions (eg, operating systems, applications, firmware, programs, etc.) that cause an operation according to the method of various embodiments to be executed on a device or computer, and such software or Instructions include a non-transitory computer-readable medium that is stored and executable on a device or computer.

Claims (15)

현재 블록의 후보 리스트를 생성하는 단계; 및
상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함하되,
상기 복수의 후보는, 공간적 후보, 시간적 후보 또는 복원정보기반 후보 중 적어도 하나를 포함하고,
복원정보기반 후보는, 상기 현재 블록 이전에 복호화된 움직임정보를 저장하는 버퍼로부터 추가되는, 영상 복호화 방법.
Generating a candidate list of the current block; And
And performing inter prediction of the current block by using any one of a plurality of candidates belonging to the candidate list,
The plurality of candidates include at least one of a spatial candidate, a temporal candidate, or a reconstruction information-based candidate,
The reconstructed information-based candidate is added from a buffer that stores motion information decoded before the current block.
제1항에 있어서,
상기 버퍼에 저장된 움직임정보는, 상기 버퍼에 나중에 저장된 움직임정보 순으로 상기 후보 리스트에 추가되거나, 상기 버퍼에 먼저 저장된 움직임정보 순으로 상기 후보 리스트에 추가되는, 영상 복호화 방법.
According to claim 1,
The motion information stored in the buffer is added to the candidate list in the order of motion information stored in the buffer later, or added to the candidate list in the order of motion information stored in the buffer first.
제2항에 있어서,
상기 버퍼에 저장된 움직임정보가 상기 후보 리스트에 추가되는 순서 또는 개수는, 상기 현재 블록의 화면 간 예측 모드에 따라 상이하게 결정되는, 영상 복호화 방법.
According to claim 2,
The order or number of motion information stored in the buffer added to the candidate list is determined differently according to a prediction mode between screens of the current block.
제3항에 있어서,
상기 후보 리스트는, 상기 후보 리스트의 최대 후보 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지거나, 상기 최대 후보 개수에서 1을 뺀 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지는, 영상 복호화 방법.
According to claim 3,
The candidate list is filled with motion information stored in the buffer until the maximum number of candidates in the candidate list is reached, or the motion information stored in the buffer is reached until the maximum number of candidates minus one is reached. A video decoding method, which is filled by using.
제1항에 있어서,
상기 버퍼는 코딩 트리 유닛(CTU), CTU 행, 슬라이스 또는 픽쳐 중 어느 하나의 단위로 초기화되는, 영상 복호화 방법.
According to claim 1,
The buffer is initialized in any one unit of a coding tree unit (CTU), CTU row, slice or picture.
현재 블록의 후보 리스트를 생성하는 단계; 및
상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함하되,
상기 복수의 후보는, 공간적 후보, 시간적 후보 또는 복원정보기반 후보 중 적어도 하나를 포함하고,
복원정보기반 후보는, 상기 현재 블록 이전에 복호화된 움직임정보를 저장하는 버퍼로부터 추가되는, 영상 부호화 방법.
Generating a candidate list of the current block; And
And performing inter prediction of the current block by using any one of a plurality of candidates belonging to the candidate list,
The plurality of candidates include at least one of a spatial candidate, a temporal candidate, or a reconstruction information-based candidate,
The reconstruction information-based candidate is added from a buffer that stores motion information decoded before the current block.
제6항에 있어서,
상기 버퍼에 저장된 움직임정보는, 상기 버퍼에 나중에 저장된 움직임정보 순으로 상기 후보 리스트에 추가되거나, 상기 버퍼에 먼저 저장된 움직임정보 순으로 상기 후보 리스트에 추가되는, 영상 부호화 방법.
The method of claim 6,
The motion information stored in the buffer is added to the candidate list in the order of motion information stored in the buffer later, or added to the candidate list in the order of motion information stored in the buffer first.
제7항에 있어서,
상기 버퍼에 저장된 움직임정보가 상기 후보 리스트에 추가되는 순서 또는 개수는, 상기 현재 블록의 화면 간 예측 모드에 따라 상이하게 결정되는, 영상 부호화 방법.
The method of claim 7,
The order or number of motion information stored in the buffer added to the candidate list is determined differently according to a prediction mode between screens of the current block.
제8항에 있어서,
상기 후보 리스트는, 상기 후보 리스트의 최대 후보 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지거나, 상기 최대 후보 개수에서 1을 뺀 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지는, 영상 부호화 방법.
The method of claim 8,
The candidate list is filled with motion information stored in the buffer until the maximum number of candidates in the candidate list is reached, or the motion information stored in the buffer is reached until the maximum number of candidates minus one is reached. Filled using, video encoding method.
제6항에 있어서,
상기 버퍼는 코딩 트리 유닛(CTU), CTU 행, 슬라이스 또는 픽쳐 중 어느 하나의 단위로 초기화되는, 영상 부호화 방법.
The method of claim 6,
The buffer is initialized in any one unit of a coding tree unit (CTU), CTU row, slice, or picture.
영상 복호화 방법에 의해 복호화되는 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
상기 영상 복호화 방법은,
현재 블록의 후보 리스트를 생성하는 단계; 및
상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함하되,
상기 복수의 후보는, 공간적 후보, 시간적 후보 또는 복원정보기반 후보 중 적어도 하나를 포함하고,
복원정보기반 후보는, 상기 현재 블록 이전에 복호화된 움직임정보를 저장하는 버퍼로부터 추가되는, 컴퓨터로 판독가능한 기록 매체.
A computer-readable recording medium storing a bitstream decoded by an image decoding method, the method comprising:
The video decoding method,
Generating a candidate list of the current block; And
And performing inter prediction of the current block by using any one of a plurality of candidates belonging to the candidate list,
The plurality of candidates include at least one of a spatial candidate, a temporal candidate, or a reconstruction information-based candidate,
The reconstructed information-based candidate is a computer-readable recording medium added from a buffer storing motion information decoded before the current block.
제11항에 있어서,
상기 버퍼에 저장된 움직임정보는, 상기 버퍼에 나중에 저장된 움직임정보 순으로 상기 후보 리스트에 추가되거나, 상기 버퍼에 먼저 저장된 움직임정보 순으로 상기 후보 리스트에 추가되는, 컴퓨터로 판독가능한 기록 매체.
The method of claim 11,
The computer-readable recording medium, the motion information stored in the buffer is added to the candidate list in the order of motion information stored later in the buffer, or added to the candidate list in the order of motion information stored in the buffer first.
제12항에 있어서,
상기 버퍼에 저장된 움직임정보가 상기 후보 리스트에 추가되는 순서 또는 개수는, 상기 현재 블록의 화면 간 예측 모드에 따라 상이하게 결정되는, 컴퓨터로 판독가능한 기록 매체.
The method of claim 12,
The order or number of motion information stored in the buffer added to the candidate list is determined differently according to a prediction mode between screens of the current block.
제13항에 있어서,
상기 후보 리스트는, 상기 후보 리스트의 최대 후보 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지거나, 상기 최대 후보 개수에서 1을 뺀 개수에 도달할 때까지 상기 버퍼에 저장된 움직임정보를 이용하여 채워지는, 컴퓨터로 판독가능한 기록 매체.
The method of claim 13,
The candidate list is filled with motion information stored in the buffer until the maximum number of candidates in the candidate list is reached, or the motion information stored in the buffer is reached until the maximum number of candidates minus one is reached. A computer-readable recording medium that is filled using.
제11항에 있어서,
상기 버퍼는 코딩 트리 유닛(CTU), CTU 행, 슬라이스 또는 픽쳐 중 어느 하나의 단위로 초기화되는, 컴퓨터로 판독가능한 기록 매체.
The method of claim 11,
The buffer is initialized by a unit of a coding tree unit (CTU), CTU row, slice, or picture, and a computer-readable recording medium.
KR1020200001228A 2019-01-04 2020-01-06 Image encoding/decoding method and apparatus using efficient motion information prediction KR102342157B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2020/000211 WO2020141962A1 (en) 2019-01-04 2020-01-06 Method and apparatus for image encoding/decoding
US17/420,784 US20220116588A1 (en) 2019-01-04 2020-01-06 Method and apparatus for image encoding/decoding
KR1020210181599A KR102585179B1 (en) 2019-01-04 2021-12-17 Image encoding/decoding method and apparatus using efficient motion information prediction

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190001414 2019-01-04
KR20190001414 2019-01-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210181599A Division KR102585179B1 (en) 2019-01-04 2021-12-17 Image encoding/decoding method and apparatus using efficient motion information prediction

Publications (2)

Publication Number Publication Date
KR20200085234A true KR20200085234A (en) 2020-07-14
KR102342157B1 KR102342157B1 (en) 2021-12-22

Family

ID=71526738

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020200001228A KR102342157B1 (en) 2019-01-04 2020-01-06 Image encoding/decoding method and apparatus using efficient motion information prediction
KR1020200001229A KR102319033B1 (en) 2019-01-04 2020-01-06 Image encoding/decoding method and apparatus using efficient motion information prediction
KR1020210142326A KR102585178B1 (en) 2019-01-04 2021-10-25 Image encoding/decoding method and apparatus using efficient motion information prediction
KR1020230129394A KR20230141723A (en) 2019-01-04 2023-09-26 Image encoding/decoding method and apparatus using efficient motion information prediction
KR1020230129395A KR20230145277A (en) 2019-01-04 2023-09-26 Image encoding/decoding method and apparatus using efficient motion information prediction

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1020200001229A KR102319033B1 (en) 2019-01-04 2020-01-06 Image encoding/decoding method and apparatus using efficient motion information prediction
KR1020210142326A KR102585178B1 (en) 2019-01-04 2021-10-25 Image encoding/decoding method and apparatus using efficient motion information prediction
KR1020230129394A KR20230141723A (en) 2019-01-04 2023-09-26 Image encoding/decoding method and apparatus using efficient motion information prediction
KR1020230129395A KR20230145277A (en) 2019-01-04 2023-09-26 Image encoding/decoding method and apparatus using efficient motion information prediction

Country Status (1)

Country Link
KR (5) KR102342157B1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Li Zhang, et. al., "CE4 : Summary report on inter prediction and motion vector coding", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 12th Meeting: MACAO, 2018.10.* *
Naeri Park, et. al., "CE4-related: History-based Motion vector prediction considering parallel processing", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 12th Mee* *

Also Published As

Publication number Publication date
KR102342157B1 (en) 2021-12-22
KR102319033B1 (en) 2021-10-29
KR20210131289A (en) 2021-11-02
KR20230145277A (en) 2023-10-17
KR20200085235A (en) 2020-07-14
KR20230141723A (en) 2023-10-10
KR102585178B1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
US20230276067A1 (en) Method for generating prediction block in amvp mode
KR101316060B1 (en) Decoding method of inter coded moving picture
KR20210058782A (en) Method and apparatus for encoding/decoding an image
KR102425722B1 (en) Method and apparatus for encoding/decoding a video signal
US20220116588A1 (en) Method and apparatus for image encoding/decoding
KR20130067280A (en) Decoding method of inter coded moving picture
KR20130002242A (en) Method for encoding and decoding video information
KR102585179B1 (en) Image encoding/decoding method and apparatus using efficient motion information prediction
KR102585178B1 (en) Image encoding/decoding method and apparatus using efficient motion information prediction
KR102557740B1 (en) Method and apparatus for encoding/decoding a video signal
KR20210124069A (en) Method and apparatus for encoding and decoding image
KR20130050898A (en) Encoding method and apparatus, and decoding method and apparatus of image

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)