KR20210001768A - Video encoding and decoding method and apparatus using complex motion information model - Google Patents

Video encoding and decoding method and apparatus using complex motion information model Download PDF

Info

Publication number
KR20210001768A
KR20210001768A KR1020190078325A KR20190078325A KR20210001768A KR 20210001768 A KR20210001768 A KR 20210001768A KR 1020190078325 A KR1020190078325 A KR 1020190078325A KR 20190078325 A KR20190078325 A KR 20190078325A KR 20210001768 A KR20210001768 A KR 20210001768A
Authority
KR
South Korea
Prior art keywords
information
prediction
block
motion information
candidate
Prior art date
Application number
KR1020190078325A
Other languages
Korean (ko)
Inventor
문주희
원동재
하재민
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to KR1020190078325A priority Critical patent/KR20210001768A/en
Publication of KR20210001768A publication Critical patent/KR20210001768A/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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • 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/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

Landscapes

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

Abstract

The present invention provides a method and device for encoding and decoding a video using a complex motion information model to improve coding efficiency of a video signal. The present invention suggests a method for deriving motion information used for generating a MERGE/AMVP candidate list.

Description

복합 움직임 정보 모형을 이용한 동영상 부호화 및 복호화 방법과 장치{.}Video encoding and decoding method and apparatus using complex motion information model{.}

본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것으로, 보다 상세하게는 Triangle 머지 후보 리스트에서 현재 블록 내 복수개의 삼각 분할된 서브 블록에 움직임 정보를 효율적으로 결정하는 부호화 및 복호화하기 위한 방법 및 장치와 Affine 예측을 수행할 때, 현재 블록 내 서브 블록의 크기를 효율적으로 결정하는 부호화 및 복호화 방법과 장치에 관한 것이다.The present invention relates to a method and apparatus for encoding/decoding an image, and more particularly, to a method and apparatus for encoding and decoding for efficiently determining motion information in a plurality of triangulated subblocks in a current block in a triangle merge candidate list; The present invention relates to an encoding and decoding method and apparatus for efficiently determining the size of a subblock in a current block when performing Affine prediction.

최근, 인터넷에서는 동영상과 같은 멀티미디어 데이터의 수요가 급격히 증가하고 있다. 하지만 채널(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 is increasing rapidly on the Internet. However, it is difficult to keep up with the rapidly increasing amount of multimedia data at the rate of development of the bandwidth of the channel. Accordingly, ITU-T's VCEG (Video Coding Expert Group) and ISO/IEC's Moving Picture Expert Group (MPEG), an international standardization organization, revised version 1 of HEVC (High Efficiency Video Coding), a video compression standard, in February 2014. Established.

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

본 발명은 비디오 신호의 코딩 효율을 향상시키고자 함에 있다.The present invention is to improve the coding efficiency of a video signal.

본 발명은 MERGE/AMVP 후보 리스트를 생성할 때 이용되는 움직임 정보 유도 방법을 제안하고 있다. The present invention proposes a motion information derivation method used when generating a MERGE/AMVP candidate list.

본 발명에 따른 비디오 신호 처리 방법 및 장치는 비디오 신호 코딩 효율을 향상시킬 수 있다.The video signal processing method and apparatus according to the present invention can improve video signal coding efficiency.

도 1은 영상 부호화 장치를 간략하게 나타낸 흐름도이다.
도 2는 영상 복호화 장치를 간략하게 나타낸 흐름도이다.
도 3은 영상 부호화 장치의 예측부를 상세히 설명하기 위한 도면이다.
도 4는 영상 부호화 장치의 예측 정보를 부호화하는 방법을 나타낸 흐름도이다.
도 5는 영상 복호화 장치의 예측부를 상세히 설명하기 위한 도면이다.
도 6은 영상 복호화 장치의 예측 정보를 복호화하는 방법을 나타낸 흐름도이다.
도 7은 머지 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다.
도 8은 영상 부호화 정치와 영상 복호화 장치에서 머지 정보들을 부호화/복호화하는 방법을 나타낸 흐름도이다.
도 9는 본 실시예에 따른 Triangle 머지 모드를 위해서 현재 블록을 삼각 분할하는 방법을 설명하기 위한 도면이다.
도 10은 본 실시예에 따른 머지 후보 리스트 내에서 Triangle 머지 모드 수행 시 분할된 삼각 블록들에 적용되는 후보 움직임 정보를 결정하는 방법을 설명하기 위한 도면이다.
도 11은 본 실시예에 따른 Triangle 머지 모드 정보를 부호화하는 방법을 설명하기 위한 도면이다.
도 12는 현재 블록에서 Affine 예측을 수행할 때, 서브 예측 블록의 크기 및 모양을 결정하는 방법을 설명하기 위한 도면이다.
1 is a schematic flowchart of an image encoding apparatus.
2 is a flowchart schematically showing an apparatus for decoding an image.
3 is a diagram for describing in detail a prediction unit of an image encoding apparatus.
4 is a flowchart illustrating a method of encoding prediction information of an image encoding apparatus.
5 is a diagram illustrating in detail a prediction unit of an image decoding apparatus.
6 is a flowchart illustrating a method of decoding prediction information of an image decoding apparatus.
7 is a diagram for describing a method of constructing a merge candidate list.
8 is a flowchart illustrating a method of encoding/decoding merge information in an image encoding device and an image decoding apparatus.
9 is a view for explaining a method of triangulating a current block for a triangle merge mode according to the present embodiment.
FIG. 10 is a diagram illustrating a method of determining candidate motion information applied to triangular blocks divided when performing a triangle merge mode in a merge candidate list according to the present embodiment.
11 is a diagram for describing a method of encoding triangle merge mode information according to the present embodiment.
12 is a diagram for explaining a method of determining a size and shape of a sub prediction block when Affine prediction is performed in a current block.

도 1은 영상 부호화 장치의 구성을 간략하게 나타낸 블록 흐름도이다. 영상 부호화 장치는 영상을 부호화하는 장치로써 크게 블록 분할부, 예측부, 변환부, 양자화부, 엔트로피 부호화부, 역 양자화부, 역 변환부, 가산부, 인루프 필터부, 메모리부, 감산부를 포함할 수 있다.1 is a block flow diagram schematically showing the configuration of an image encoding apparatus. An image encoding apparatus is a device that encodes an image and includes a block division unit, a prediction unit, a transform unit, a quantization unit, an entropy encoding unit, an inverse quantization unit, an inverse transform 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) 분할이라 칭함)은 부호화 블록을 가로 방향 혹은 세로 방향으로 정확히 이분하는 분할이다. 삼진-트리 분할(이하, TT(Ternary-Tree) 분할이라 칭함)은 부호화 블록을 가로 방향 혹은 세로 방향으로 1:2:1의 비율로 삼분하는 분할이다. BT 분할과 TT 분할을 통칭 MTT(Multi-Type Tree) 분할이라 칭할 수도 있다. 이 외에 다양한 분할 방법이 있을 수 있다. 또한, 여러 분할 방법들을 동시에 고려하여 분할해 나가는 방법도 가능하다. The block dividing unit 101 divides a block to be encoded with a maximum size (hereinafter, referred to as a maximum coding block) to a block to be encoded with a minimum size (hereinafter, referred to as a minimum coding block). There are various methods of block partitioning. The quad-tree division (hereinafter referred to as QT (Quad-Tree) division) is a division that accurately divides the current coding block. Binary-tree division (hereinafter referred to as BT (Binary-Tree) division) is a division in which a coded block is accurately divided in a horizontal direction or a vertical direction. The ternary-tree division (hereinafter referred to as TT (Ternary-Tree) division) is a division in which a coded block is divided in a ratio of 1:2:1 in a horizontal direction or a vertical direction. BT segmentation and TT segmentation may be collectively referred to as MTT (Multi-Type Tree) segmentation. In addition to this, there may be various ways of dividing. In addition, it is possible to divide by considering several division methods at the same time.

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

Figure pat00001
Figure pat00001

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

도 3은 영상 부호화 장치의 예측부의 일 실시예를 도시한 도면이다.3 is a diagram illustrating an embodiment of a prediction unit of an image encoding apparatus.

화면 내 예측부(301)는 원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행할 수 있다. 예컨대, 복수의 참조 화소 라인 중 적어도 하나의 참조 화소 라인의 선택, 참조 화소의 생성, 참조 화소의 필터링, 참조 화소를 이용하여 예측 블록 생성, 및/또는 생성된 예측 블록의 필터링을 수행할 수 있다. 화면 내 예측 모드 유도부(302)는 각 예측 모드 별로 계산된 RD-비용값을 이용하여 예컨대, 최적의 화면 내 예측 모드를 결정하고, 그에 따른 예측 블록을 생성하거나 선택하여 최종적으로 출력할 수 있다.The intra prediction unit 301 may perform intra prediction using original information and restoration information. For example, selection of at least one reference pixel line among a plurality of reference pixel lines, generation of a reference pixel, filtering of a reference pixel, generation of a prediction block using a reference pixel, and/or filtering of the generated prediction block may be performed. . The intra prediction mode inducing unit 302 may determine, for example, an optimal intra prediction mode by using the RD-cost value calculated for each prediction mode, and may generate or select a prediction block according to the prediction mode, and finally output it.

화면 간 예측부(303)는 원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행할 수 있다. 화면 간 예측부(303)는, Skip 모드, Merge 모드, AMVP (Advanced Motion Vector Prediction) 모드 등을 포함하는 복수의 화면 간 예측 모드들의 각각에 대해 RD-비용값을 계산할 수 있다.The inter prediction unit 303 may perform inter prediction using original information and restoration information. The inter prediction unit 303 may calculate an RD-cost value for each of a plurality of inter prediction modes including a Skip mode, a Merge mode, and an Advanced Motion Vector Prediction (AMVP) mode.

머지(Merge) 후보 탐색부(304)는 스킵 (Skip) 모드와 Merge 모드를 위한 후보 움직임 정보 세트를 구성한다. 스킵, 머지 모드에는 다양한 머지 모드가 있을 수 있다. 머지 후보 탐색부에서 유도된 후보 움직임 리스트의 움직임 정보를 그대로 현재 블록의 움직임 정보로 이용하는 Regular 머지 모드, 화면 내 예측 모드와 머지 후보 탐색부에서 유도된 후보 움직임 리스트의 움직임 정보 중 하나와 가중합을 통해 예측 정보를 결정하는 CIIP (Combined Inter-Intra Prediction) 머지 모드, 현재 블록을 2개의 삼각 블록으로 분할하여 각 삼각 블록에 머지 후보 탐색부에서 유도된 후보 움직임 리스트의 서로 다른 움직임 정보를 적용하는 Triangle 머지 모드, 머지 후보 탐색부에서 유도된 후보 움직임 리스트 내 움직임 정보들에 추가적인 MVD (Motion Vector Difference) 정보를 전송하여 움직임 정보를 유도하는 MMVD (Merge with Motion Vector Difference) 머지 모드, 현재 블록 각 모서리 지점의 CPMV (Control Point Motion Vector)를 Affine 후보 움직임 리스트에서 유도하고 현재 블록의 임의 크기의 서브 블록 단위로 좌상단, 우상단 지점의 2개 CPMV를 이용한 수학식 2를 적용하여 움직임 벡터를 유도하거나, 좌상단, 우상단, 좌하단 지점의 3개 CPMV를 이용한 수학식 3을 적용하여 움직임 벡터를 유도하여 움직임 정보를 유도하는 Affine 머지 모드가 있다.The merge candidate search unit 304 configures a set of candidate motion information for the skip mode and the merge mode. There may be various merge modes in the skip and merge modes. A weighted sum with one of the motion information of the candidate motion list derived from the regular merge mode, the intra prediction mode and the candidate motion list derived from the merge candidate searcher is performed using the motion information of the candidate motion list derived from the merge candidate search unit as the motion information of the current block. CIIP (Combined Inter-Intra Prediction) merge mode that determines prediction information through a triangle that divides the current block into two triangular blocks and applies different motion information from the candidate motion list derived from the merge candidate search unit to each triangular block. Merge mode, Merge with Motion Vector Difference (MMVD) merge mode, which induces motion information by transmitting additional MVD (Motion Vector Difference) information to motion information in the candidate motion list derived from the merge candidate search unit, each corner point of the current block The CPMV (Control Point Motion Vector) of is derived from the Affine candidate motion list, and the motion vector is derived by applying Equation 2 using the two CPMVs of the upper left and upper right points in units of subblocks of arbitrary size of the current block, or There is an Affine merge mode in which motion information is derived by deriving a motion vector by applying Equation 3 using three CPMVs at the upper right and lower left points.

Figure pat00002
Figure pat00002

Figure pat00003
Figure pat00003

수학식 2, 3에서 (MVx, MVy)는 각 서브 블록의 움직임 벡터이고, (MV0x, MV0y)는 좌상단 지점의 CPMV, (MV1x, MV1y)는 우상단 지점의 CPMV, (MV2x, MV2y)는 좌하단 지점의 CPMV를 의미하고, W, H는 현재 블록의 가로, 세로 길이, x, y는 각 서브 블록의 중심 좌표를 의미한다. 머지 후보 탐색부 (304)에서는 현재 머지 모드가 Affine 머지 모드일 경우, Affine 머지 후보 움직임 리스트를 구성하고, 그 외의 머지 모드에서는 Normal 머지 후보 움직임 리스트 ('후보 움직임 리스트'라고도 칭함)를 구성할 수 있다. 머지 후보 탐색부에서 유도된 후보 움직임 리스트를 통해 Regular, CIIP 머지 모드의 각 후보 별 RD-비용값을 계산하여 각 머지 모드의 최적 움직임 정보를 유도(305, 306)하고, 최적 움직임 정보가 양방향 움직임 정보일 경우, DMVR (Decoder-side Motion Vector Refinement), BDOF (Bi-Directional Optical Flow) 과정을 수행(310, 311)한다. 그러나, 머지 후보 탐색부에서 유도된 후보 움직임 리스트를 통해 Triangle, MMVD, Affine 머지 모드의 경우에는 각 후보 별 RD-비용값을 계산하여 각 머지 모드의 최적 움직임 정보를 유도(305, 306)하고, DMVR, BDOF 과정을 수행하지 않는다. 이후 각 머지 모드의 최적 RD-비용값을 비교하여 최적 머지 모드를 결정하고, 최적 머지 모드의 움직임 정보를 이용하여 움직임 보상부(315)에서 예측 블록을 생성한다. 여기서 DMVD, BDOF 과정은 하기 서술하는 조건이 부합하는 경우에 한하여 수행될 수 있다.In Equations 2 and 3, (MVx, MVy) is the motion vector of each sub-block, (MV0x, MV0y) is the CPMV of the upper left point, (MV1x, MV1y) is the CPMV of the upper right point, and (MV2x, MV2y) is the lower left It means the CPMV of the point, W and H are the horizontal and vertical lengths of the current block, and x and y are the center coordinates of each sub-block. When the current merge mode is an Affine merge mode, the merge candidate search unit 304 may configure an Affine merge candidate motion list, and in other merge modes, a Normal merge candidate motion list (also referred to as a'candidate motion list') may be configured. have. The optimal motion information of each merge mode is derived (305, 306) by calculating the RD-cost value for each candidate in the Regular and CIIP merge modes through the candidate motion list derived from the merge candidate search unit, and the optimal motion information is bidirectional motion. In the case of information, DMVR (Decoder-side Motion Vector Refinement) and BDOF (Bi-Directional Optical Flow) processes are performed (310, 311). However, in the case of the Triangle, MMVD, and Affine merge modes through the candidate motion list derived from the merge candidate search unit, the RD-cost value for each candidate is calculated to derive optimal motion information for each merge mode (305, 306), DMVR, BDOF process is not performed. Thereafter, the optimal merge mode is determined by comparing the optimal RD-cost values of each merge mode, and the motion compensation unit 315 generates a prediction block using motion information of the optimal merge mode. Here, the DMVD and BDOF processes may be performed only when the conditions described below are met.

DMVR 수행 조건 (하기 모든 조건들이 부합하는 경우에 수행)DMVR execution conditions (if all the following conditions are met)

- 상위 헤더에서 전송된 동작 정보가 참인 경우-When the motion information transmitted from the upper header is true

- 머지 모드가 Regular 머지 모드 혹은 CIIP 머지 모드인 경우-When the merge mode is Regular merge mode or CIIP merge mode

- 움직임 정보의 예측 방향이 양방향인 경우-When motion information is predicted in both directions

- Lsit0 방향 (혹은 과거 방향)의 참조 픽쳐가 현재 픽쳐 보다 시간적으로 이전이고, List 1 방향 (혹은 미래 방향)의 참조 픽쳐가 현재 픽쳐 보다 시간적으로 이후이면서 현재 픽쳐와 List0 방향의 참조 픽쳐와의 거리와 현재 픽쳐와 List1 방향의 참조 픽쳐와의 거리가 동일한 경우 -The distance between the current picture and the reference picture in the List0 direction while the reference picture in the Lsit0 direction (or in the past) is temporally earlier than the current picture, and the reference picture in the List 1 direction (or in the future) is temporally later than the current picture And the current picture and the reference picture in the List1 direction are the same

- 예측 블록을 생성하기 위한 양방향의 예측 블록을 가중합 할 때, List0 방향 (혹은 과거 방향)의 예측 블록과 List1 방향 (혹은 미래 방향)의 예측 블록에 적용되는 가중치가 동일한 경우-When the bidirectional prediction blocks to generate the prediction block are weighted, the weight applied to the prediction block in the List0 direction (or in the past direction) and the prediction block in the List1 direction (or in the future direction) is the same.

- 현재 블록의 가로 길이가 8 이상인 경우 -When the current block's width is 8 or more

- 현재 블록의 세로 길이가 8 이상인 경우-If the current block's height is 8 or more

- 현재 블록의 가로x세로 길이가 128 이상인 경우-When the current block's width x height is 128 or more

BDOF 수행 조건 (하기 모든 조건들이 부합하는 경우에 수행)BDOF execution conditions (Executed when all of the following conditions are met)

- 상위 헤더에서 전송된 동작 정보가 참인 경우-When the motion information transmitted from the upper header is true

- 움직임 정보의 예측 방향이 양방향인 경우-When motion information is predicted in both directions

- Lsit0 방향 (혹은 과거 방향)의 참조 픽쳐가 현재 픽쳐 보다 시간적으로 이전이고, List 1 방향 (혹은 미래 방향)의 참조 픽쳐가 현재 픽쳐 보다 시간적으로 이후인 경우-When the reference picture in the Lsit0 direction (or in the past) is temporally earlier than the current picture, and the reference picture in the List 1 direction (or in the future) is temporally later than the current picture

- 예측 모드가 Regular 머지 모드 혹은 CIIP 머지 모드 혹은 Regular AMVP 모드인 경우-When the prediction mode is Regular merge mode, CIIP merge mode or Regular AMVP mode

- 예측 블록을 생성하기 위한 양방향의 예측 블록을 가중합 할 때, List0 방향 (혹은 과거 방향)의 예측 블록과 List1 방향 (혹은 미래 방향)의 예측 블록에 적용되는 가중치가 동일한 경우-When the bidirectional prediction blocks to generate the prediction block are weighted, the weight applied to the prediction block in the List0 direction (or in the past direction) and the prediction block in the List1 direction (or in the future direction) is the same.

- 현재 블록의 세로 길이가 8 이상인 경우-If the current block's height is 8 or more

- Luma 성분의 예측 블록을 생성하는 경우 (Chroma 성분 X)-When generating a prediction block of the Luma component (Chroma component X)

DMVR, BDOF 과정에 대한 상세한 설명한 본 특허의 서술 목적과 상이한 바, 상세한 설명을 생략한다.Detailed Description of the DMVR and BDOF Processes Since they are different from the description purpose of the present patent, detailed descriptions are omitted.

AMVP 후보 탐색부(312)는 AMVP 모드를 위한 후보 움직임 정보 세트를 구성한다. Regular AMVP 모드의 최적 움직임 정보 추정부(313)는 현재 블록의 후보 움직임 정보 리스트를 이용하여 움직임 추정을 수행하고, 예컨대, RD-비용값이 최소인 최적의 움직임 정보를 결정한다. Affine AMVP 모드의 최적 움직임 정보 추정부(314)는 현재 블록의 각 모서리 지점의 최적 CPMV를 후보 움직임 정보 리스트를 이용하여 움직임 추정을 수행하고, 예컨대, RD-비용값이 최소인 최적의 CPMV 정보를 결정한다. CPMV는 2개 혹은 3개 일 수 있으며, 2개인 경우에는 현재 블록의 좌상단, 우상단 모서리 지점, 3개인 경우에는 좌상단, 우상단, 좌하단 모서리 지점의 CPMV일 수 있다. 결정된 CPMV를 이용하여 현재 블록 내 서브 블록 단위로 최적의 움직임 정보를 결정한다. 움직임 보상부(208)는 최적의 움직임 정보를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성한다.The AMVP candidate search unit 312 configures a candidate motion information set for the AMVP mode. The optimal motion information estimating unit 313 in the regular AMVP mode performs motion estimation by using the candidate motion information list of the current block, and determines, for example, optimal motion information having a minimum RD-cost value. The optimal motion information estimating unit 314 of the Affine AMVP mode performs motion estimation using the candidate motion information list for the optimal CPMV of each corner point of the current block, and for example, the optimal CPMV information with the minimum RD-cost value. Decide. The number of CPMVs may be two or three, and in case of two, it may be the CPMV at the upper left, upper right corner of the current block, and if three, the CPMV at the upper left, upper right, and lower left corners. Using the determined CPMV, optimal motion information is determined in units of sub-blocks within the current block. The motion compensation unit 208 generates a prediction block by performing motion compensation using optimal motion information.

전술한 화면 간 예측 모드는 크게 3가지 모드(Skip 모드, Merge 모드, AMVP 모드)를 포함할 수 있다. 각 예측 모드는 움직임 정보(예측 방향 정보, 참조 픽쳐 정보, 움직임 벡터)를 이용하여 현재 블록의 예측 블록을 생성할 수 있다. 또한, 움직임 정보를 이용한 추가적인 예측 모드가 존재할 수 있다.The above-described inter prediction mode may largely include three modes (Skip mode, Merge mode, and AMVP mode). Each prediction mode may generate a prediction block of the current block using motion information (prediction direction information, reference picture information, and motion vector). In addition, there may be an additional prediction mode using motion information.

Skip 모드의 경우, 각 모드 별로 이미 복원된 영역의 움직임 정보를 이용하여 현재 블록의 예측 정보(예컨대, 최적의 예측 정보)를 결정할 수 있다. 복원된 영역 내에서 움직임 정보 후보군을 구성하고, 해당 후보군 중 예컨대, RD-비용값이 최소인 후보를 현재 블록의 예측 정보로 사용할 수 있다. Skip 모드의 움직임 정보 후보군 구성 방법은 후술할 머지 모드의 움직임 정보 후보군 구성 방법과 동일하다. In the case of the Skip mode, prediction information (eg, optimal prediction information) of a current block may be determined by using motion information of an area that has already been reconstructed for each mode. A motion information candidate group may be configured within the reconstructed region, and a candidate having a minimum RD-cost value among the candidate groups may be used as prediction information of the current block. The method of constructing the motion information candidate group in the skip mode is the same as the method of constructing the motion information candidate group in the merge mode to be described later.

Merge 모드의 경우, 각 모드 별로 이미 복원된 영역의 움직임 정보를 이용하여 현재 블록의 예측 정보(예컨대, 최적의 예측 정보)를 결정한다는 점에서 Skip 모드와 동일하다. 그러나 Skip 모드는 예측 에러가 0이 되도록 하는 움직임 정보를 움직임 정보 후보군에서 탐색하고, Merge 모드는 예측 에러가 0이 아닌 움직임 정보를 움직임 정보 후보군에서 탐색한다는 점에서 양자는 차이가 있다. Skip 모드와 마찬가지로, 복원된 영역 내에서 움직임 정보 후보군을 구성하고, 해당 후보군 중 예컨대, RD-비용값이 최소인 후보를 현재 블록의 예측 정보로 사용하여 예측 블록을 생성할 수 있다. In the merge mode, it is the same as the Skip mode in that prediction information (eg, optimal prediction information) of a current block is determined by using motion information of an area that has already been reconstructed for each mode. However, the Skip mode is different in that the motion information that causes the prediction error to be 0 is searched in the motion information candidate group, and the Merge mode is in the motion information candidate group for the motion information whose prediction error is not 0. Similar to the skip mode, a motion information candidate group may be configured within a reconstructed region, and a prediction block may be generated by using, for example, a candidate having a minimum RD-cost value among the candidate groups as prediction information of the current block.

도 7의 701은 Skip 모드 또는 Merge 모드에서, 움직임 정보 후보군을 생성하는 방법을 설명하기 위한 도면이고, Merge702는 공간적 후보 블록의 위치와 시간적 후보 블록의 위치를 설명하기 위한 도면이고, 703은 시간적 후보의 움직임 정보를 결정하는 방법을 설명하기 위한 도면이다, 704는 평균 양방향 후보 움직임 정보를 유도하는 방법을 설명하기 위한 도면이다.701 of FIG. 7 is a diagram for explaining a method of generating a motion information candidate group in Skip mode or Merge mode, Merge702 is a diagram for explaining the location of a spatial candidate block and a temporal candidate block, and 703 is a temporal candidate A diagram for describing a method of determining motion information of 704 is a diagram for describing a method of deriving average bidirectional candidate motion information.

움직임 정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정될 수도 있고, 영상 부호화 장치의 상위 헤더(상위 헤더란, 비디오 파라미터 셋, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 타일 헤더, 슬라이스 헤더 등 블록의 상위 레벨에서 전송되는 파라미터들을 의미함)에서 해당 개수 정보가 전송될 수도 있다. The maximum number of motion information candidate groups may be equally determined by the video encoding apparatus and the video decoding apparatus, and the upper header of the video encoding apparatus (the upper header is, a video parameter set, a sequence parameter set, a picture parameter set, a tile header, a slice header, etc.) (Meaning parameters transmitted at a higher level of a block) may transmit the corresponding number information.

S705 단계와 S706 단계에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화되었을 때에만, 해당 움직임 정보를 이용하여 유도된 움직임 정보를 움직임 정보 후보군에 포함시킬 수 있다.Only when the spatial candidate block and the temporal candidate block are encoded in the inter prediction mode in steps S705 and S706, motion information derived using the corresponding motion information may be included in the motion information candidate group.

S705 단계에서는 동일 픽쳐 내에서 현재 블록 주변으로부터 공간적 후보를 선택할 수 있다. 예컨대, 소정 위치의 공간적 후보 블록 5개 중 4개를 공간적 후보로서 선택할 수 있다. 공간적 후보 블록의 위치는 예컨대, 도 4에 도시된 A1 내지 A5의 위치일 수 있다. 그러나 공간적 후보 블록의 개수와 위치는 이에 한정되지 않으며, 복원된 영역 내에서 어떤 블록으로든 변경 가능하다. 공간적 후보는 A1, A2, A3, A4, A5 순으로 고려되어, 먼저 사용 가능한 공간적 후보 블록의 움직임 정보를 공간적 후보로 결정할 수 있다. 그러나 복수의 후보간의 고려 순서는 상기 순서로 한정되지 않는다. 만약, 복수의 공간적 후보들의 움직임 정보가 중복될 경우, 우선 순위가 높은 후보의 움직임 정보만을 고려할 수 있다. In step S705, a spatial candidate may be selected from around the current block within the same picture. For example, 4 out of 5 spatial candidate blocks at a predetermined location may be selected as spatial candidates. The positions of the spatial candidate blocks may be, for example, positions A1 to A5 shown in FIG. 4. However, the number and location of spatial candidate blocks are not limited thereto, and can be changed to any block within the reconstructed area. Spatial candidates are considered in the order of A1, A2, A3, A4, A5, and motion information of an available spatial candidate block may be first determined as a spatial candidate. However, the order of consideration among the plurality of candidates is not limited to the above order. If motion information of a plurality of spatial candidates is overlapped, only motion information of a candidate having a high priority may be considered.

S706 단계에서는 현재 픽쳐 이전에 부호화/복호화된 픽쳐 내에서 시간적 후보를 선택할 수 있다. 예컨대, 콜로케이티드(Collocated) 픽쳐 내의 2개의 시간적 후보 블록들 중, 1개를 시간적 후보로서 선택할 수 있다. 시간적 후보 블록의 위치는 702 그림에 도시된 B1, B2일 수 있다. 각 후보들의 위치는 픽쳐 내에서 현재 픽쳐의 현재 블록 위치와 동일한 위치의 블록을 기준으로 결정된다. 여기서, 콜로케이티드 픽쳐는 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 설정 가능하다. 예컨대, 소정의 참조 픽쳐 인덱스에 해당하는 참조 픽쳐가 콜로케이티드 픽쳐로 선택될 수 있다. 또는, 콜로케이티드 픽쳐를 지시하는 인덱스 정보가 시그널링될 수도 있다. 시간적 후보는 B1, B2 블록 순으로 고려되어, 먼저 사용 가능한 후보 블록의 움직임 정보를 시간적 후보로 결정할 수 있다. 그러나, 시간적 후보 블록의 개수, 위치 및 고려 순서는 상기 설명된 실시예로 한정되지 않는다.In step S706, a temporal candidate may be selected from a picture encoded/decoded before the current picture. For example, one of two temporal candidate blocks in a collocated picture may be selected as a temporal candidate. The locations of the temporal candidate blocks may be B1 and B2 shown in Figure 702. The positions of each candidate are determined based on a block at the same position as the current block position of the current picture in the picture. Here, the collocated picture can be set under the same conditions in the video encoding apparatus and the video decoding apparatus. For example, a reference picture corresponding to a predetermined reference picture index may be selected as a collocated picture. Alternatively, index information indicating a collocated picture may be signaled. The temporal candidate is considered in the order of B1 and B2 blocks, and motion information of an available candidate block may be first determined as a temporal candidate. However, the number, location, and order of consideration of temporal candidate blocks are not limited to the above-described embodiment.

702, 703에 도시된 바와 같이, 예컨대, 콜로케이티드 픽쳐 내의 후보 블록(B1또는 B2)의 움직임 정보는 참조 픽쳐 B에 있는 예측 블록을 가리킬 수 있다. 각 후보 블록의 참조 픽쳐는 서로 다를 수 있으나, 본 설명에서는 편의상 이를 모두 참조 픽쳐 B라고 표현한다. 해당 움직임 벡터는 콜로케이티드 픽쳐와 참조 픽쳐 B 사이의 거리(TD), 현재 픽쳐와 참조 픽쳐 A 사이의 거리(TB)의 비율을 이용하여 스케일링됨으로써, 시간적 후보의 움직임 벡터로서 결정될 수 있다. 예컨대, 상기 스케일링은 아래의 수학식 4를 이용하여 수행될 수 있다.As shown in 702 and 703, for example, motion information of a candidate block (B1 or B2) in a collocated picture may indicate a prediction block in a reference picture B. Reference pictures of each candidate block may be different from each other, but in this description, all of them are referred to as reference pictures B for convenience. The corresponding motion vector is scaled using a ratio of the distance (TD) between the collocated picture and the reference picture B, and the distance (TB) between the current picture and the reference picture A, and thus may be determined as a motion vector of a temporal candidate. For example, the scaling may be performed using Equation 4 below.

Figure pat00004
Figure pat00004

MV는 시간적 후보 블록의 움직임 정보의 움직임 벡터, MVscale은 스케일링된 움직임 벡터, TB는 콜로케이티드 픽쳐와 참조 픽쳐 B 사이의 시간적 거리, TD는 현재 픽쳐와 참조 픽쳐 A 사이의 시간적 거리를 의미한다. 이때, 참조 픽쳐 A, 참조 픽쳐 B는 동일한 참조 픽쳐일 수도 있다. 상기 스케일링된 움직임 벡터가 시간적 후보의 움직임 벡터로 결정될 수 있다. 또한, 시간적 후보 움직임 정보의 참조 픽쳐 정보는 현재 픽쳐의 참조 픽쳐로 결정하여, 시간적 후보의 움직임 정보를 유도할 수 있다.MV is a motion vector of motion information of a temporal candidate block, MVscale is a scaled motion vector, TB is a temporal distance between a collocated picture and a reference picture B, and TD is a temporal distance between a current picture and a reference picture A. In this case, the reference picture A and the reference picture B may be the same reference picture. The scaled motion vector may be determined as a temporal candidate motion vector. Also, the reference picture information of the temporal candidate motion information may be determined as a reference picture of the current picture, and motion information of the temporal candidate may be derived.

S707 단계에서는 History-based 후보를 선택할 수 있다. History-based 후보는 (이하, '복원정보기반 후보'라 칭함) 시퀀스, 픽쳐 혹은 슬라이스 단위로 코딩된 움직임 정보를 저장하기 위한 복원정보기반 움직임 후보 저장 버퍼(이하, 'H 버퍼'라 칭함)가 존재한다. 해당 버퍼는 코딩된 움직임 정보를 FIFO(First-in First-out) 방식으로 버퍼를 업데이트하면서 관리한다. H 버퍼는 CTU, CTU행, 슬라이스 혹은 픽쳐 단위로 초기화될 수 있고, 현재 블록이 움직임 정보에 의해 예측되어 코딩된 경우, 해당 움직임 정보들을 H 버퍼에 업데이트 한다. H 버퍼에 저장된 움직임 정보들은 Skip, Merge, AMVP 후보로 이용될 수 있다. H 버퍼의 후보 움직임 정보를 후보 리스트에 추가할 때에는 H 버퍼에 가장 최근에 업데이트된 움직임 정보 순으로 추가할 수도 있고, 그 반대도 가능하다. H 버퍼에 저장되는 움직임 정보를 후보 리스트에 추가할 때, 추가 될 수 있는 움직임 정보의 개수를 제한할 수도 있다. 예를 들어, 후보 리스트의 최대 후보 개수까지 모두 H 버퍼에 있는 움직임 정보를 이용하여 채울 수도 있지만, (후보 리스트 최대 개수 - 1)개 까지만 채울 수도 있다. H 버퍼에 저장되는 후보 움직임 정보의 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 결정할 수도 있고, 상위 헤더에서 영상 복호화 장치로 전송될 수도 있다.In step S707, a history-based candidate may be selected. History-based candidates (hereinafter referred to as'restored information-based candidates') include a restoration information-based motion candidate storage buffer (hereinafter referred to as'H buffer') for storing motion information coded in units of sequence, picture, or slice. exist. The corresponding buffer manages the coded motion information while updating the buffer in a first-in first-out (FIFO) method. The H buffer may be initialized in units of CTU, CTU row, slice, or picture, and when the current block is predicted and coded by motion information, corresponding motion information is updated in the H buffer. Motion information stored in the H buffer can be used as Skip, Merge, and AMVP candidates. When adding the H buffer candidate motion information to the candidate list, the H buffer may be added in the order of the most recently updated motion information, and vice versa. When motion information stored in the H buffer is added to the candidate list, the number of motion information that can be added may be limited. For example, the maximum number of candidate lists may be filled using motion information in the H buffer, but only up to (maximum number of candidate lists-1) may be filled. The number of candidate motion information stored in the H buffer may be determined under the same condition in the image encoding apparatus and the image decoding apparatus, or may be transmitted from the upper header to the image decoding apparatus.

S708 단계에서는 평균 양방향 후보를 선택할 수 있다. S705~S907 단계를 거쳐서 후보 리스트에 채워진 움직임 정보가 1개 이하인 경우에는 본 단계를 생략한다. 후보 리스트에 채워진 움직임 정보가 2개 이상인 경우에는 각 후보들 간 평균 후보 움직임정보를 생성하여 후보 리스트를 채울 수 있다. 평균 후보 움직임 정보의 움직임 벡터는 움직임 정보의 각 예측 방향 별로(List0 혹은 List1) 유도되는데, 후보 리스트에 저장된 동일한 방향의 움직임 벡터를 평균하여 생성한 움직임 벡터를 의미한다. 평균 후보 움직임 정보를 유도할 때, 평균할 때 이용된 움직임정보의 참조 픽쳐 색인 정보가 다르다면 우선 순위가 높았던 움직임 정보의 참조 픽쳐 정보를 평균 후보 움직임 정보의 참조 픽쳐 색인 정보로 결정할 수 있다. 혹은 우선 순위가 낮았던 움직임 정보의 참조 픽쳐 정보를 평균 후보 움직임 정보의 참조 픽쳐 색인 정보로 결정할 수도 있다. 704 도면은 본 단계의 설명에 대한 예시를 나타낸 것이다.In step S708, an average bidirectional candidate may be selected. When there is less than one motion information filled in the candidate list through steps S705 to S907, this step is omitted. When there are two or more motion information filled in the candidate list, the candidate list may be filled by generating average candidate motion information between each candidate. The motion vector of the average candidate motion information is derived for each prediction direction of the motion information (List0 or List1), and refers to 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 reference picture index information of the motion information used for averaging is different, reference picture information of the motion information having a higher priority may be determined as the reference picture index information of the average candidate motion information. Alternatively, reference picture information of motion information having a low priority may be determined as reference picture index information of average candidate motion information. Figure 704 shows an example of the description of this step.

평균 양방향 움직임 정보 후보를 이용하여도 움직임 정보 후보의 최대 개수를 채우지 못하는 경우, S709 단계를 수행한다. S709 단계에서는 움직임 정보 후보의 움직임 벡터를 제로 움직임 벡터로 고정하고, 예측 방향에 따른 참조 픽쳐를 달리하여 움직임 정보 후보의 최대 개수를 채울 수 있다.If the maximum number of motion information candidates is not satisfied even when the average bidirectional motion information candidate is used, step S709 is performed. In step S709, the motion vector of the motion information candidate is fixed as a zero motion vector, and the maximum number of motion information candidates may be filled by different reference pictures according to the prediction direction.

변환부(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 prediction block. The transform block is the smallest unit used for transform and quantization processes. The transform unit transforms the residual signal into the frequency domain to generate a transform block having transform coefficients. Here, various transformation techniques such as Discrete Cosine Transform (DCT) based transformation, Discrete Sine Transform (DST), and Karhunen Loeve Transform (KLT) can be used to transform the residual signal into the frequency domain. , Using this, the residual signal is transformed into the frequency domain to generate a transform coefficient. In order to conveniently use the transformation method, matrix operations are performed using a basis vector. Depending on which prediction mode the prediction block is coded in, various transformation methods can be mixed and used during matrix operation. For example, during 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 according to the prediction mode.

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

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

엔트로피 부호화부(105)는 양자화된 변환 블록을 부호화하여 비트스트림을 출력한다. 즉, 엔트로피 부호화부는 양자화부로부터 출력되는 양자화된 변환 블록의 계수들을 엔트로피 부호화(Entropy Encoding) 등 다양한 부호화 기법을 이용하여 부호화하고, 후술하는 영상 복호화 장치에서 해당 블록을 복호화 하는데 필요한 부가적인 정보들(예를 들면, 예측 모드에 대한 정보(예측 모드에 대한 정보란 예측부에서 결정된 움직임정보 혹은 화면 내 예측 모드 정보 등이 포함될 수 있음), 양자화 계수 등)을 포함하는 비트스트림을 생성하고 출력한다. The entropy encoding unit 105 outputs a bitstream by encoding the quantized transform block. That is, the entropy encoding unit encodes the 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 on a prediction mode (information on a prediction mode may include motion information or intra prediction mode information determined by a prediction unit), a quantization coefficient, etc.) is generated and output.

도 4는 엔트로피 부호화부에서 화면 간 예측 정보를 부호화하는 방법을 설명하기 위한 흐름도이다. S401 단계에서는 Skip 모드 동작 정보를 부호화한다. S402 단계에서 Skip 모드 동작 정보가 참인지 아닌지를 판단하고, 참이 아닌 경우에는 S407 단계에서 Merge 정보를 부호화하고 본 흐름도를 종료한다. Merge 정보에 대한 상세한 설명한 후술하기로 한다. Skip 모드 동작 정보가 거짓인 경우에는 S403 단계에서 예측 모드 정보를 부호화한다. S404 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측인지를 판단한다. 예측 모드가 화면 내 예측 모드인 경우에는 S425 단계에서 화면 내 예측 모드 정보를 부호화하고, 본 흐름도를 종료한다. 예측 모드가 화면 간 예측 모드인 경우에는 S405 단계에서 Merge 모드 동작 정보를 부호화한다. Merge 모드 동작 정보가 참인지 아닌지를 S406 단계에서 판단하고, 참이라면 S407 단계에서 Merge 정보를 부호화하고 본 흐름도를 종료한다. Merge 모드 동작 정보가 거짓이라면 S408 단계에서 Affine AMVP 모드 동작 정보를 부호화한다. 이후, S409 단계에서는 예측 방향 정보를 부호화한다. S410 단계에서는 Affine AMVP 모드가 참인지 아닌지를 판단한다. 거짓이라면 현재 AMVP 모드는 Normal AMVP 모드이다. 현재 AMVP 모드가 Affine AMVP 모드라면, S411 단계에서 Affine AMVP 모드의 모델 정보를 부호화한다. 모델 정보는 현재 Affine 모델이 4-parameter 모델인지 6-parameter 모델인지를 나타낸다. 현재 Affine 모델이 4-parameter 모델이라면 S413 단계에서 MVD 정보의 개수를 2로 설정하고, 6-parameter 모델이라면 S414 단계에서 MVD 정보의 개수를 3으로 설정한다. 이후, S415 단계에서는 예측 방향이 List1 방향인지 아닌지를 판단한다. S415 단계에서 예측 방향이 List1 방향이 아니었다면 S416 단계에서 List0 방향의 참조 픽쳐 색인 정보를 부호화한다. S417 단계에서는 List 0방향의 MVD(Motion Vector Difference) 정보를 부호화한다. 이때, 현재 AMVP 모드가 Affine AMVP 모드라면, S413, S414 단계를 통해 결정된 MVD 개수만큼 부호화한다. S418 단계에서는 List0 방향의 MVP(Motion Vector Predictor) 정보를 부호화한다. S415 단계에서 예측 방향이 List1 방향 혹은 양방향이거나 S418 단계가 끝나면 S419 단계에서 예측 방향이 List0 방향인지 아닌지를 판단한다. S419 단계에서 예측 방향이 List0 방향이 아니었다면 S420 단계에서 List1 방향 참조 픽쳐 색인 정보를 부호화한다. S421 단계에서는 List1 방향의 MVD 정보를 부호화한다. 이때, 현재 AMVP 모드가 Affine AMVP 모드라면, S413, S414 단계를 통해 결정된 MVD 개수만큼 부호화한다. S422 단계에서는 List1 방향의 MVP 정보를 부호화한다. S419 단계에서 예측 방향이 List0 방향 이었다면 본 흐름도를 종료한다. S423 단계에서는 예측 방향이 양방향인지를 판단하고, 양방향이 아니라면 본 흐름도를 종료하고 양방향이라면 S424 단계에서 양방향 예측을 위한 가중치 정보를 부호화한다. List0 방향의 예측 블록과 List1 방향의 예측 블록에 적용되는 가중치 정보는 (-1/8 : 9/8) , (1/8 : 7/8), (3/8 : 5/8), (4/8 : 4/8), (5/8 : 3/8), (7/8 : 1/8), (9/8 : -1/8) 등 다양한 가중치 정보가 존재할 수 있다. 이후, 본 흐름도를 종료한다.4 is a flowchart illustrating a method of encoding inter prediction information in an entropy encoder. In step S401, skip mode operation information is encoded. In step S402, it is determined whether or not the skip mode operation information is true, and if not, the merge information is encoded in step S407, and the flow chart ends. Detailed description of merge information will be described later. If the skip mode operation information is false, prediction mode information is encoded in step S403. In step S404, it is determined whether the prediction mode is inter prediction or intra prediction. If the prediction mode is the intra prediction mode, the intra prediction mode information is encoded in step S425, and this flowchart ends. If the prediction mode is the inter prediction mode, the merge mode operation information is encoded in step S405. Whether or not the merge mode operation information is true is determined in step S406, and if true, the merge information is encoded in step S407 and the flow chart ends. If the merge mode operation information is false, Affine AMVP mode operation information is encoded in step S408. Thereafter, in step S409, prediction direction information is encoded. In step S410, it is determined whether the Affine AMVP mode is true. If false, the current AMVP mode is Normal AMVP mode. If the current AMVP mode is the Affine AMVP mode, model information of the Affine AMVP mode is encoded in step S411. The model information indicates whether the current Affine model is a 4-parameter model or a 6-parameter model. If the current Affine model is a 4-parameter model, the number of MVD information is set to 2 in step S413, and if it is a 6-parameter model, the number of MVD information is set to 3 in step S414. Thereafter, in step S415, it is determined whether the prediction direction is the List1 direction. If the prediction direction is not the List1 direction in step S415, the index information of the reference picture in the List0 direction is encoded in step S416. In step S417, MVD (Motion Vector Difference) information in the direction of List 0 is encoded. At this time, if the current AMVP mode is the Affine AMVP mode, the number of MVDs determined through steps S413 and S414 is encoded. In step S418, motion vector predictor (MVP) information in the direction of List0 is encoded. In step S415, it is determined whether the prediction direction is the List1 direction or both directions, or when the S418 step is finished, whether the prediction direction is the List0 direction in step S419. If the prediction direction is not the List0 direction in step S419, the index information of the List1 direction reference picture is encoded in step S420. In step S421, MVD information in the List1 direction is encoded. At this time, if the current AMVP mode is the Affine AMVP mode, the number of MVDs determined through steps S413 and S414 is encoded. In step S422, MVP information in the direction of List1 is encoded. If the prediction direction was the List0 direction in step S419, this flowchart ends. In step S423, it is determined whether the prediction direction is bidirectional. If the prediction direction is not bidirectional, the flow chart is terminated. The weight information applied to the prediction block in the List0 direction and the prediction block in the List1 direction is (-1/8: 9/8), (1/8: 7/8), (3/8: 5/8), (4 Various weight information such as /8: 4/8), (5/8: 3/8), (7/8: 1/8), and (9/8: -1/8) can exist. Thereafter, this flowchart ends.

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

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

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

가산부(108)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.The addition unit 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) 등이 있다. 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, SAO(Sample Adaptive Offset)란 복원 화소에 특정 값을 감산하거나 가산함으로써, 복원 영상과 원본 영상간 차이를 최소화시키는 작업을 말한다. After all blocks in the current picture are reconstructed, the filter unit 109 additionally filters the entire picture, such as deblocking filtering and sample adaptive offset (SAO). Deblocking filtering refers to the operation of reducing block distortion that occurs while encoding an image in block units, and SAO (Sample Adaptive Offset) is a method that minimizes the difference between the reconstructed image and the original image by subtracting or adding a specific value to the reconstructed pixel. Says work.

메모리(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, which has undergone additional filtering by the in-loop filter unit, and stores the next block or the next picture. Can be used to predict

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

도 2은 영상 복호화 장치의 구성을 간략하게 나타낸 블록 흐름도이다. 영상 복호화 장치는 영상을 복호화하는 장치로써, 크게 블록 엔트로피 복호화부, 역 양자화부, 역 변환부, 예측부, 가산부, 인루프 필터부, 메모리부를 포함할 수 있다. 영상 부호화 장치에서 부호화 블록은 영상 복호화 장치에서 복호화 블록이라 칭한다.2 is a block flow diagram schematically showing the configuration of an image decoding apparatus. The image decoding apparatus is an apparatus for decoding an image, and may largely include a block entropy decoding unit, an inverse quantization unit, an inverse transform unit, a prediction unit, an addition unit, an in-loop filter unit, and a memory unit. In an image encoding apparatus, a coded block is referred to as a decoding block in an image decoding apparatus.

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

도 6은 엔트로피 복호화부에서 화면 간 예측 정보를 복호화하는 방법을 설명하기 위한 흐름도이다. S601 단계에서는 Skip 모드 동작 정보를 복호화한다. S602 단계에서 Skip 모드 동작 정보가 참인지 아닌지를 판단하고, 참이 아닌 경우에는 S607 단계에서 Merge 정보를 복호화하고 본 흐름도를 종료한다. Merge 정보에 대한 상세한 설명한 후술하기로 한다. Skip 모드 동작 정보가 거짓인 경우에는 S603 단계에서 예측 모드 정보를 복호화한다. S604 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측인지를 판단한다. 예측 모드가 화면 내 예측 모드인 경우에는 S625 단계에서 화면 내 예측 모드 정보를 복호화하고, 본 흐름도를 종료한다. 예측 모드가 화면 간 예측 모드인 경우에는 S605 단계에서 Merge 모드 동작 정보를 복호화한다. Merge 모드 동작 정보가 참인지 아닌지를 S606 단계에서 판단하고, 참이라면 S607 단계에서 Merge 정보를 복호화하고 본 흐름도를 종료한다. Merge 모드 동작 정보가 거짓이라면 S608 단계에서 Affine AMVP 모드 동작 정보를 복호화한다. 이후, S609 단계에서는 예측 방향 정보를 복호화한다. S610 단계에서는 Affine AMVP 모드가 참인지 아닌지를 판단한다. 거짓이라면 현재 AMVP 모드는 Normal AMVP 모드이다. 현재 AMVP 모드가 Affine AMVP 모드라면, S611 단계에서 Affine AMVP 모드의 모델 정보를 복호화한다. 현재 Affine 모델이 4-parameter 모델이라면 S613 단계에서 MVD 정보의 개수를 2로 설정하고, 6-parameter 모델이라면 S614 단계에서 MVD 정보의 개수를 3으로 설정한다. 이후, S615 단계에서는 예측 방향이 List1 방향인지 아닌지를 판단한다. S615 단계에서 예측 방향이 List1 방향이 아니었다면 S616 단계에서 List0 방향의 참조 픽쳐 색인 정보를 복호화한다. S617 단계에서는 List 0방향의 MVD(Motion Vector Difference) 정보를 복호화한다. 이때, 현재 AMVP 모드가 Affine AMVP 모드라면, S613, S614 단계를 통해 결정된 MVD 개수만큼 복호화한다. S618 단계에서는 List0 방향의 MVP(Motion Vector Predictor) 정보를 복호화한다. S615 단계에서 예측 방향이 List1 방향 혹은 양방향이거나 S618 단계가 끝나면 S619 단계에서 예측 방향이 List0 방향인지 아닌지를 판단한다. S619 단계에서 예측 방향이 List0 방향이 아니었다면 S620 단계에서 List1 방향 참조 픽쳐 색인 정보를 복호화한다. S621 단계에서는 List1 방향의 MVD 정보를 복호화한다. 이때, 현재 AMVP 모드가 Affine AMVP 모드라면, S613, S614 단계를 통해 결정된 MVD 개수만큼 복호화한다. S622 단계에서는 List1 방향의 MVP 정보를 복호화한다. S619 단계에서 예측 방향이 List0 방향 이었다면 본 흐름도를 종료한다. S623 단계에서는 예측 방향이 양방향인지를 판단하고, 양방향이 아니라면 본 흐름도를 종료하고 양방향이라면 S624 단계에서 양방향 예측을 위한 가중치 정보를 복호화한다. 이후, 본 흐름도를 종료한다.6 is a flowchart illustrating a method of decoding inter prediction information in an entropy decoder. In step S601, the skip mode operation information is decoded. In step S602, it is determined whether or not the skip mode operation information is true, and if not, the merge information is decoded in step S607, and the flowchart ends. Detailed description of merge information will be described later. If the skip mode operation information is false, prediction mode information is decoded in step S603. In step S604, it is determined whether the prediction mode is inter prediction or intra prediction. If the prediction mode is the intra prediction mode, the intra prediction mode information is decoded in step S625, and this flowchart is terminated. When the prediction mode is an inter prediction mode, merge mode operation information is decoded in step S605. Whether or not the merge mode operation information is true is determined in step S606, and if true, the merge information is decoded in step S607, and the flowchart ends. If the merge mode operation information is false, Affine AMVP mode operation information is decoded in step S608. Thereafter, in step S609, the prediction direction information is decoded. In step S610, it is determined whether the Affine AMVP mode is true. If false, the current AMVP mode is Normal AMVP mode. If the current AMVP mode is the Affine AMVP mode, model information of the Affine AMVP mode is decoded in step S611. If the current Affine model is a 4-parameter model, the number of MVD information is set to 2 in step S613, and if the current Affine model is a 6-parameter model, the number of MVD information is set to 3 in step S614. Thereafter, in step S615, it is determined whether the prediction direction is the List1 direction. If the prediction direction is not the List1 direction in step S615, the reference picture index information in the List0 direction is decoded in step S616. In step S617, MVD (Motion Vector Difference) information in the direction of List 0 is decoded. At this time, if the current AMVP mode is the Affine AMVP mode, decoding is performed by the number of MVDs determined through steps S613 and S614. In step S618, motion vector predictor (MVP) information in the direction of List0 is decoded. In step S615, it is determined whether the prediction direction is the List1 direction or both directions, or if the step S618 is over, whether the prediction direction is the List0 direction in step S619. If the prediction direction is not the List0 direction in step S619, the index information of the List1 direction reference picture is decoded in step S620. In step S621, MVD information in the direction of List1 is decoded. At this time, if the current AMVP mode is the Affine AMVP mode, decoding is performed by the number of MVDs determined through steps S613 and S614. In step S622, MVP information in the direction of List1 is decoded. If the prediction direction was the List0 direction in step S619, this flowchart ends. In step S623, it is determined whether the prediction direction is in both directions, and if the prediction direction is not in both directions, the flowchart is terminated. Thereafter, this flowchart ends.

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

역 변환부(203)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 차분 신호를 가지는 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.The inverse transform unit 203 restores a residual block having a difference signal by inverse transforming the inverse quantization transform block using the same method as the method used in the transform, and performs inverse transform by performing the transform method used in the transform unit inversely. .

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

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

필터부(206)는 현재 픽쳐 내 모든 블록을 복원한 이후, 픽쳐 전체에 걸쳐서 추가적인 필터링은 하는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset) 등이 있으며, 상세한 내용은 기 전술한 영상 부호화 장치의 인루프 필터부에서 설명한 바와 동일하다. After restoring all blocks in the current picture, the filter unit 206 performs additional filtering over the entire picture, including deblocking filtering, sample adaptive offset (SAO), and the like. For details, refer to the above-described video encoding apparatus. It is the same as described in the in-loop filter unit.

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

도 8은 S407, S607 단계의 설명을 수도 코드로 표현한 것이다. 도 4의 S407 단계에서는 도 8의 기울임 꼴의 코딩 정보들을 부호화하는 것이고, 도 6의 S607 단계에서는 도 8의 기울임 꼴의 코딩 정보들을 복호화하는 것이다. Merge_data 함수에 입력값인 cbWidth, cbHeight는 현재 블록의 가로, 세로 길이를 의미한다. 먼저 상위 헤더에서 부호화/복호화된 MMVD 머지 모드 동작 정보인 sps_mmvd_enabled_flag 정보가 참이라면 regular_merge_flag가 부호화/복호화된다. 이는 전술한 Regular 머지 모드의 동작 정보를 의미하는 것으로, 해당 정보가 참일 경우, merge_idx 정보를 부호화/복호화함으로써 후보 움직임 정보 리스트 내에서 어떤 후보 움직임 정보가 현재 블록의 움직임 정보로 결정될 것인지를 알려준다. regular_merge_flag가 거짓이이라면 먼저, sps_mmvd_enabled_flag 정보가 참일 경우 mmvd_merge_flag 정보를 부호화/복호화한다. 이는 전술한 MMVD 머지 모드의 동작 정보를 의미한다. MMVd 머지 모드의 동작 정보가 참이고, 머지 후보 리스트의 최대 개수가 1개 초과일 경우에는, mmvd_cand_flag를 부호화/복호화하여 머지 후보 리스트에서 어떤 후보 움직임 벡터를 기준으로 MVD를 전송할 것인지를 알려주고, mmvd_distance_idx, mmvd_direction_idx 정보를 통해 MVD 정보를 부호화/복호화한다. mmvd_merge_flag 정보가 거짓이고, affine 후보 움직임 정보 리스트의 최대 개수가 0개 초과일 경우에는 affine_merge_flag 정보를 부호화/복호화함으로써 전술한 Affine 머지 모드의 동작 정보를 알려준다. Affine_merge_flag 정보가 참이고, affine 후보 움직임 정보 리스트의 최대 개수가 1개 초과일 경우에는 affine_merge_idx 정보를 부호화/복호화함으로써 Affine 후보 움직임 정보 리스트 중, 어떤 후보 움직임 정보가 머지 될 것인지를 알려준다. affine_merge_flag 정보가 거짓인 경우, 상위 헤더에서 부호화/복호화된 CIIP 머지 모드 동작 정보인 sps_ciip_enabled_flag 정보가 참이고, Skip 모드가 아닐 경우에는, CIIP 머지 모드 동작 정보인 ciip_flag가 부호화/복호화된다. ciip_flag 정보가 참이고, 머지 후보 리스트의 최대 개수가 1개 초과일 때에는, 어떤 후보 움직임 정보가 화면 내 예측으로 생성된 예측 블록과 가중합 될 것인지를 알려주는 merge_idx 정보를 부호화/복호화한다. MergeTriangleFlag 정보는 하기 전술하는 조건들이 모두 참인 경우 영상 부호화 장치와 영상 복호화 장치에서 동일하게 참으로 암시된다.8 is a diagram illustrating the description of steps S407 and S607 as a number code. In step S407 of FIG. 4, coding information in italic type of FIG. 8 is encoded, and in step S607 of FIG. 6, coding information in italic type of FIG. 8 is decoded. The input values cbWidth and cbHeight to the Merge_data function mean the width and height of the current block. First, if sps_mmvd_enabled_flag information, which is MMVD merge mode operation information encoded/decoded in the upper header, is true, regular_merge_flag is encoded/decoded. This means motion information of the above-described regular merge mode, and when the corresponding information is true, it indicates which candidate motion information in the candidate motion information list is to be determined as motion information of the current block by encoding/decoding merge_idx information. If regular_merge_flag is false, first, when sps_mmvd_enabled_flag information is true, mmvd_merge_flag information is encoded/decoded. This means operation information of the aforementioned MMVD merge mode. When the operation information of the MMVd merge mode is true and the maximum number of merge candidate lists is more than one, mmvd_cand_flag is encoded/decoded to indicate which candidate motion vector in the merge candidate list to transmit MVD based on, mmvd_distance_idx, MVD information is encoded/decoded through mmvd_direction_idx information. When mmvd_merge_flag information is false and the maximum number of affine candidate motion information lists exceeds 0, the affine_merge_flag information is encoded/decoded to inform the operation information of the Affine merge mode described above. If Affine_merge_flag information is true and the maximum number of affine candidate motion information lists is more than one, affine_merge_idx information is encoded/decoded to indicate which candidate motion information is to be merged from the Affine candidate motion information list. When the affine_merge_flag information is false, sps_ciip_enabled_flag information, which is CIIP merge mode operation information encoded/decoded in the upper header, is true, and when it is not in Skip mode, ciip_flag, which is CIIP merge mode operation information, is encoded/decoded. When ciip_flag information is true and the maximum number of merge candidate lists is more than one, merge_idx information indicating which candidate motion information is to be weighted with a prediction block generated by intra prediction is encoded/decoded. The MergeTriangleFlag information is implied to be true in the video encoding apparatus and the video decoding apparatus when all the conditions described below are true.

- 상위 헤더에서 부호화/복호화되는 Triangle 머지 모드의 동작 정보인 sps_triangle_enabled_flag 정보가 참인 경우-When sps_triangle_enabled_flag information, which is the operation information of Triangle merge mode encoded/decoded in the upper header, is true

- 현재 코딩중인 슬라이드 타입이 B 슬라이스인 경우-If the slide type currently being coded is B slice

- Skip 혹은 Merge 모드가 참인 경우-If Skip or Merge mode is true

- Triangle 머지 모드의 후보 움직임 정보 리스트 내 최대 후보 움직임 정보의 개수가 2 이상인 경우-When the number of maximum candidate motion information in the candidate motion information list in Triangle merge mode is 2 or more

- 현재 블록의 가로x세로의 길이가 64 이상인 경우-When the length of the current block is 64 or more

- ciip_flag 정보가 거짓인 경우-If ciip_flag information is false

MergeTriangleFlag 정보가 참인 경우에는, triangle_split_dir 정보를 부호화/복호화함으로써 현재 블록을 어떤 방향의 삼각 블록으로 분할할 것인지를 알려주고, triangle_idx0, triangle_idx1 정보를 부호화/복호화함으로써 분할된 2개의 삼각 블록 별로 동일한 후보 움직임 정보 리스트에서 어떤 후보 움직임 정보를 선택할 것인지를 알려준다. 단 2개의 삼각 블록에 각각 적용되는 움직임 정보는 서로 반드시 달라야 한다.When MergeTriangleFlag information is true, the triangle_split_dir information is encoded/decoded to indicate which direction the current block is to be divided into triangle blocks, and the same candidate motion information list for each of the two triangle blocks divided by encoding/decoding triangle_idx0 and triangle_idx1 information Informs which candidate motion information to select. However, motion information applied to each of the two triangular blocks must be different from each other.

(실시예 1-1)(Example 1-1)

본 실시예에서는 Triangle 머지 모드에서 현재 블록을 2개의 삼각 블록으로 분할한 후, 분할된 각 삼각 블록마다 움직임 정보를 유도하는 방법에 대해서 상세히 설명할 것이다. In this embodiment, after dividing the current block into two triangular blocks in the triangle merge mode, a method of inducing motion information for each divided triangular block will be described in detail.

도 9는 현재 예측 블록을 2개의 삼각 블록 (본 도면에서는 서브 예측 블록이라 칭함)으로 분할한 2개의 예시를 보여준다. 분할 예시 A는 예측 블록의 좌상단 모서리 지점에서 우하단 모서리 지점으로 예측 분할선을 가상하여 분할한 예시이고, 분할 예시 B는 예측 블록의 우상단 모서리 지점에서 좌하단 모서리 지점으로 예측 분할선을 가상하여 분할한 예시이다. 분할 형태에 따라서 서브 예측 블록 A와 서브 예측 블록 B가 도면에 도시된 바와 같이 설정될 수도 있다. 서브 예측 블록의 위치는 바뀔 수 있다.9 shows two examples in which the current prediction block is divided into two triangular blocks (referred to as sub-prediction blocks in this figure). Segmentation example A is an example in which the prediction dividing line is virtually divided from the upper left corner of the prediction block to the lower right corner, and the segmentation example B is divided by imagining the prediction dividing line from the upper right corner of the prediction block to the lower left corner. This is an example. The sub prediction block A and the sub prediction block B may be set as shown in the figure according to the division type. The position of the sub prediction block may be changed.

도 10은 서브 예측 블록 A와 B의 움직임 정보를 후보 움직임 정보 리스트에서 결정하는 방법을 설명하기 위한 도면이다. 서브 예측 블록 A, B의 움직임 정보는 단방향 움직임 정보만을 고려하는 것을 가정하고 본 실시예를 설명할 것이다. 물론, 양방향 움직임 정보를 서브 예측 블록의 움직임 정보로 결정할 수도 있다. 또한, 본 예시에서는 서브 예측 블록 A의 움직임 정보는 도 8에서 부호화/복호화된 triangle_idx0 정보와 동일하고, 서브 예측 블록 B의 움직임 정보는 도 8에서 부호화/복호화된 triangle_idx1 정보와 동일하다고 가정한다. 또한, 도 10에서 도시된 선택 방법 예시들에서 좌측 테이블은 서브 예측 블록 A의 움직임 정보 선택 방법, 우측 테이블은 서브 예측 블록 B의 움직임 정보 선택 방법을 의미한다. 서브 예측 블록 A의 움직임 정보는 후보 움직임 정보 리스트에서 짝수 색인 정보에 해당하는 triangle_idx0이 전송된 경우에는 List0 방향의 후보 움직임 정보를 우선적으로 고려하고, 홀수 색인 정보에 해당하는 triangle_idx0이 전송된 경우에는 List1 방향의 후보 움직임 정보를 우선적으로 고려할 수 있다. 만약 우선적으로 고려된 방향의 후보 움직임 정보가 후보 움직임 정보 리스트 내 존재하지 않을 경우에는 반대 방향의 후보 움직임 정보를 차순위로 고려한다. 도 10의 선택 방법 A-1, A-2, B-1, B-2 방법에서 좌측 테이블에 진한 명암이 있는 후보 움직임 정보가 우선적으로 고려되는 후보 움직임 정보이다. 이 때, 명암이 있는 후보 움직임 정보가 유효하지 않다면, 반대 예측 방향의 후보 움직임 정보를 선택하게 된다. 하기 각 선택 방법 별로 서브 예측 블록 B의 움직임 정보를 선택하는 방법에 대해서 설명할 것이다. 이때, 서브 예측 블록 A의 움직임 정보는 각 방법 별로 밑줄 친 후보 움직임 정보가 선택된 것으로 가정한다.10 is a diagram illustrating a method of determining motion information of sub-prediction blocks A and B from a candidate motion information list. The present embodiment will be described on the assumption that motion information of sub-prediction blocks A and B considers only unidirectional motion information. Of course, the bidirectional motion information may be determined as motion information of the sub prediction block. In addition, in this example, it is assumed that the motion information of the sub-prediction block A is the same as the coded/decoded triangle_idx0 information in FIG. 8, and the motion information of the sub-prediction block B is the same as the coded/decoded triangle_idx1 information in FIG. 8. In addition, in the selection method examples illustrated in FIG. 10, the left table denotes a method of selecting motion information of sub-prediction block A, and the right table denotes a method of selecting motion information of sub-prediction block B. The motion information of the sub-prediction block A preferentially considers the candidate motion information in the List0 direction when triangle_idx0 corresponding to the even index information is transmitted in the candidate motion information list, and List1 when triangle_idx0 corresponding to the odd index information is transmitted. Candidate motion information of a direction can be considered preferentially. If the candidate motion information in the direction considered preferentially does not exist in the candidate motion information list, the candidate motion information in the opposite direction is considered as the next priority. In the selection methods A-1, A-2, B-1, and B-2 of FIG. 10, candidate motion information having a dark contrast in the left table is candidate motion information that is preferentially considered. At this time, if the candidate motion information with the contrast is not valid, the candidate motion information in the opposite prediction direction is selected. A method of selecting motion information of the sub prediction block B for each selection method will be described below. At this time, it is assumed that the motion information of the sub prediction block A is underlined candidate motion information for each method.

선택 방법 A-1은 서브 예측 블록 A가 색인 정보 0에 해당하는 움직임 정보로 결정됐다고 가정한다. 색인 정보가 0에 해당할 경우, 서브 예측 블록 A는 List0 방향의 후보 움직임 정보를 움직임 정보로 선택한다. 이럴 경우, 서브 예측 블록 B는 후보 움직임 정보 리스트 내에서 triangle_idx1 정보가 짝수 색인 정보에 해당하면 List1 방향의 후보 움직임 정보를 우선적으로 고려하고, 홀수 색인 정보에 해당하면 List0 방향의 후보 움직임 정보를 우선적으로 고려할 수 있다. 해당 방향의 움직임 정보가 존재하지 않는 경우에는 반대 방향의 후보 움직임 정보를 차순위로 고려할 수 있다.The selection method A-1 assumes that the sub-prediction block A is determined as motion information corresponding to index information 0. When the index information corresponds to 0, the sub prediction block A selects candidate motion information in the List0 direction as motion information. In this case, the sub-prediction block B preferentially considers the candidate motion information in the List1 direction if triangle_idx1 information corresponds to even index information in the candidate motion information list, and prioritizes the candidate motion information in the List0 direction if it corresponds to odd index information. Can be considered. When motion information in the corresponding direction does not exist, candidate motion information in the opposite direction may be considered as a next priority.

선택 방법 A-2는 서브 예측 블록 A가 색인 정보 4에 해당하는 움직임 정보로 결정됐다고 가정한다. 색인 정보가 4에 해당할 경우, 서브 예측 블록 A는 List1 방향의 후보 움직임 정보를 움직임 정보로 선택한다. 이럴 경우에는 원래 방법과 마찬가지로 서브 예측 블록 B는 후보 움직임 정보 리스트 내에서 triangle_idx1 정보가 짝수 색인 정보에 해당하면 List0 방향의 후보 움직임 정보를 우선적으로 고려하고, 홀수 색인 정보에 해당하면 List1 방향의 후보 움직임 정보를 우선적으로 고려할 수 있다. 해당 방향의 움직임 정보가 존재하지 않는 경우에는 반대 방향의 후보 움직임 정보를 차순위로 고려할 수 있다.In the selection method A-2, it is assumed that the sub prediction block A is determined as motion information corresponding to index information 4. When the index information corresponds to 4, the sub prediction block A selects the candidate motion information in the List1 direction as motion information. In this case, as in the original method, sub-prediction block B preferentially considers the candidate motion information in the List0 direction if triangle_idx1 information corresponds to even index information in the candidate motion information list, and if it corresponds to odd index information, the candidate motion in the List1 direction. Information can be prioritized. When motion information in the corresponding direction does not exist, candidate motion information in the opposite direction may be considered as a next priority.

선택 방법 B-1은 서브 예측 블록 A가 색인 정보 3에 해당하는 움직임 정보로 결정됐다고 가정한다. 색인 정보가 3에 해당할 경우, 서브 예측 블록 A는 List0 방향의 후보 움직임 정보를 움직임 정보로 선택한다. 이럴 경우, 서브 예측 블록 B는 후보 움직임 정보 리스트 내에서 triangle_idx1 정보의 짝수/홀수에 상관 없이 전송된 triangle_idx1 정보의 List1 방향 후보 움직임 정보만을 고려한다. The selection method B-1 assumes that the sub-prediction block A is determined as motion information corresponding to index information 3. When the index information corresponds to 3, the sub prediction block A selects candidate motion information in the List0 direction as motion information. In this case, the sub-prediction block B considers only the list1 direction candidate motion information of the transmitted triangle_idx1 information regardless of the even/odd number of triangle_idx1 information in the candidate motion information list.

선택 방법 B-2는 서브 예측 블록 A가 색인 정보 4에 해당하는 움직임 정보로 결정됐다고 가정한다. 색인 정보가 4에 해당할 경우, 서브 예측 블록 A는 List1 방향의 후보 움직임 정보를 움직임 정보로 선택한다. 이럴 경우, 서브 예측 블록 B는 후보 움직임 정보 리스트 내에서 triangle_idx1 정보의 짝수/홀수에 상관 없이 triangle_idx1 정보의 List1 방향 후보 움직임 정보만을 고려한다.The selection method B-2 assumes that the sub-prediction block A is determined as motion information corresponding to index information 4. When the index information corresponds to 4, the sub prediction block A selects the candidate motion information in the List1 direction as motion information. In this case, the sub prediction block B considers only the list1 direction candidate motion information of the triangle_idx1 information regardless of the even/odd number of triangle_idx1 information in the candidate motion information list.

(실시예 1-2)(Example 1-2)

본 실시예에서는 triangle_idx1 정보의 제한적 부호화/복호화 방법에 대해서 설명한다. 상위 헤더에서는 Triangle 머지 모드의 후보 움직임 정보 리스트 내에서 최대 후보 움직임 정보의 개수를 전송할 수 있다. 해당 정보가 전송된 경우 도 1100에서 triangle_idx1 정보를 부호화/복호화함할 때, 해당 정보를 이용한 제한적 부호화/복호화가 이루어져야 한다.In this embodiment, a method of restrictive encoding/decoding of triangle_idx1 information will be described. The upper header may transmit the maximum number of candidate motion information in the candidate motion information list of the triangle merge mode. When the corresponding information is transmitted, when the triangle_idx1 information is encoded/decoded in FIG. 1100, limited encoding/decoding using the corresponding information must be performed.

도 1100을 보면, triangle_idx1을 전송할 때 최대 후보 움직임 정보의 개수가 2 초과인 경우에 한하여 부호화/복호화를 한다. 이는 서브 예측 블록 A, B의 움직임 정보가 달라야 하는데, 후보 움직임 정보의 개수가 2개뿐일 경우에는, triangle_idx0으로 선택된 서브 예측 블록 A의 움직임 정보 이외에 남은 1개의 움직임 정보가 자연스럽게 서브 예측 블록 B의 움직임 정보 이므로 triangle_idx1 정보를 부호화/복호화하는 것은 불필요하다. 이런 경우를 막기 위해서 도 11과 같은 제한적 부호화/복호화 방법이 구현될 수 있다.Referring to FIG. 1100, when triangle_idx1 is transmitted, encoding/decoding is performed only when the number of maximum candidate motion information exceeds 2. This means that the motion information of the sub-prediction blocks A and B should be different. If the number of candidate motion information is only two, the remaining motion information in addition to the motion information of the sub-prediction block A selected by triangle_idx0 is naturally the motion of the sub-prediction block B. Since it is information, it is unnecessary to encode/decode triangle_idx1 information. In order to prevent this case, a restrictive encoding/decoding method as shown in FIG. 11 may be implemented.

(실시예 2)(Example 2)

본 실시예에서는 Affine 머지 모드 혹은 Affine AMVP 모드에서 현재 블록 모서리의 2개의 CPMV 혹은 3개의 CPMV를 이용하여 현재 블록 내 각 서브 블록 단위로 움직임 벡터를 유도하고 움직임 보상을 수행함에 있어서, 서브 블록의 크기 및 모양을 적응적으로 결정하는 방법을 도 12에서 서브 블록 생성 예시 A, B를 참조하여 상세히 설명할 것이다. In this embodiment, in the Affine merge mode or Affine AMVP mode, the size of the sub-block is used to induce a motion vector in each sub-block unit in the current block using two CPMVs or three CPMVs at the edge of the current block and perform motion compensation. And a method of adaptively determining the shape will be described in detail with reference to sub-block generation examples A and B in FIG. 12.

도 12의 생성 예시 A는 현재 예측 블록이 정사각형일 경우에 대한 설명이다. 예측 블록이 정사각형일 경우, Affine 모델 적용을 위한 서브 블록의 모양은 정사각형으로 결정할 수 있다. 서브 블록의 크기는 예측 블록의 크기에 비례 혹은 반비례하여 결정할 수도 있다. Generation example A of FIG. 12 is a description of a case in which the current prediction block is a square. When the prediction block is a square, the shape of the sub-block for applying the Affine model may be determined as a square. The size of the sub-block may be determined in proportion to or inversely proportional to the size of the prediction block.

도 12의 생성 예시 B는 현재 예측 블록이 가로로 긴 직사각형일 경우에 대한 설명이다. 예측 블록이 가로로 긴 직사각형일 경우, Affine 모델 적용을 위한 서브 블록의 모양은 가로로 긴 직사각형으로 결정할 수 있다. 혹은 세로로 긴 직사각형으로 결정할 수도 있다. 서브 블록의 크기는 마찬가지로 예측 블록의 크기에 비례 혹은 반비례하여 결정할 수도 있다. 물론 현재 예측 블록이 세로로 긴 직사각형일 경우에 대해서도 생성 예시 B의 설명과 반대에 해당하는 예시로 설명 가능하다.Generation example B of FIG. 12 is a description of a case where the current prediction block is a horizontally long rectangle. When the prediction block is a horizontally long rectangle, the shape of a subblock for applying the Affine model may be determined as a horizontally long rectangle. Alternatively, you can decide to use a vertically long rectangle. Likewise, the size of the sub-block may be determined in proportion to or inversely proportional to the size of the prediction block. Of course, a case in which the current prediction block is a vertically long rectangle can be described as an example opposite to that of the generation example B.

서브 블록의 크기 정보는 상위 헤더 혹은 블록 단위에서 전송할 수도 있으며, 영상 부호화 장치와 영상 복호화 장치에서 동일하게 기 설정할 수도 있다.The size information of the sub-block may be transmitted in units of an upper header or block, and may be set in advance in the same manner in the image encoding apparatus and the image decoding apparatus.

Claims (1)

복합 움직임 정보 모형을 이용한 동영상 부호화 및 복호화 방법.Video encoding and decoding method using complex motion information model.
KR1020190078325A 2019-06-28 2019-06-28 Video encoding and decoding method and apparatus using complex motion information model KR20210001768A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190078325A KR20210001768A (en) 2019-06-28 2019-06-28 Video encoding and decoding method and apparatus using complex motion information model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190078325A KR20210001768A (en) 2019-06-28 2019-06-28 Video encoding and decoding method and apparatus using complex motion information model

Publications (1)

Publication Number Publication Date
KR20210001768A true KR20210001768A (en) 2021-01-06

Family

ID=74128768

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190078325A KR20210001768A (en) 2019-06-28 2019-06-28 Video encoding and decoding method and apparatus using complex motion information model

Country Status (1)

Country Link
KR (1) KR20210001768A (en)

Similar Documents

Publication Publication Date Title
JP7263529B2 (en) Size selection application for decoder-side refinement tools
KR102605638B1 (en) Partial Cost Calculation
KR101943787B1 (en) Video encoding and decoding with improved error resilience
CN113330739A (en) Insertion order of motion candidates in LUT
CN113016183A (en) Construction method for spatial domain motion candidate list
CN113545076A (en) Enabling BIO based on information in picture header
CN114762330A (en) Sub-picture encoding and decoding of video
CN114128258A (en) Restriction of transform block size in video coding and decoding
US20220116588A1 (en) Method and apparatus for image encoding/decoding
CN113302917A (en) Improved method for local illumination compensation
CN113966616A (en) Motion candidate list construction using neighboring block information
KR20210001768A (en) Video encoding and decoding method and apparatus using complex motion information model
CN113273208A (en) Improvement of affine prediction mode
KR20210003006A (en) Video encoding and decoding method and apparatus using motion correlation between cross components
CN113366839B (en) Refinement quantization step in video codec
KR20210037204A (en) Image coding and decoding method and apparatus using integrated reference candidate and differential motion vector

Legal Events

Date Code Title Description
A201 Request for examination