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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것으로, 보다 상세하게는 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
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
예측부(102)는 현재 원본 블록에서 현재 예측 하고자 하는 블록(이하, 예측 블록이라 칭함)의 주변 화소나 이전에 이미 부호화/복호화가 끝난 참조 픽쳐 내 화소들을 이용하여 예측 블록을 생성한다. 예측 블록은 부호화 블록 내에서 1개 혹은 그 이상의 예측 블록들이 생성될 수 있다. 부호화 블록 내 예측 블록이 1개일 경우, 예측 블록은 부호화 블록과 동일한 형태이다. 동영상 신호의 예측 기술에는 크게 화면 내 예측과 화면 간 예측으로 구성 되어 있는데, 화면 내 예측은 현재 블록의 주변 화소들을 이용하여 예측 블록을 생성하는 방식이고, 화면 간 예측은 이전에 이미 부호화/복호화가 끝난 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 찾아서 예측 블록을 생성하는 방식이다. 그 후, 원본 블록과 예측 블록을 뺀 잔차 블록을 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 등 다양한 기법을 이용하여 예측 블록의 최적 예측 모드를 결정한다. RDO 비용 계산식은 수학식 1과 같다.The
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
화면 간 예측부(303)는 원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행할 수 있다. 화면 간 예측부(303)는, Skip 모드, Merge 모드, AMVP (Advanced Motion Vector Prediction) 모드 등을 포함하는 복수의 화면 간 예측 모드들의 각각에 대해 RD-비용값을 계산할 수 있다.The
머지(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
수학식 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
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
- 예측 블록을 생성하기 위한 양방향의 예측 블록을 가중합 할 때, 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
- 예측 모드가 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
전술한 화면 간 예측 모드는 크게 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
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
양자화부(104)는 변환 블록을 양자화 하여 양자화된 변환 블록을 생성한다. 즉, 양자화부는 변환부(103)로부터 생성되는 변환 블록의 변환 계수들을 양자화 하여 양자화된 변환 계수를 가지는 양자화된 변환 블록(Quantized Transform Coefficient)을 생성한다. 양자화 방법으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 행렬 (Quantization Weighted Matrix) 등이 이용될 수 있지만, 이를 개량한 양자화 등 다양한 양자화 방법이 이용될 수 있다.The
한편, 이상에서는 영상 부호화 장치가 변환부 및 양자화부를 포함하는 것을 도시하고 설명 했지만, 변환부 및 양자화부는 선택적으로 포함될 수 있다. 즉, 영상 부호화 장치는 잔차 블록을 변환하여 변환 블록을 생성하고 양자화 과정은 수행하지 않을 수 있으며, 잔차 블록을 주파수 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 심지어는 변환과 양자화 과정을 모두 수행하지 않을 수 있다. 영상 부호화 장치에서 변환부와 양자화부 중 일부 과정이 수행되지 않거나, 모든 과정이 수행 되지 않더라도 엔트로피 부호화부의 입력으로 들어가는 블록을 통상적으로 '양자화된 변환 블록'이라 일컫는다. 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
도 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
역 양자화부(106)는 양자화된 변환 블록에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화 변환 블록을 복원한다.The
역 변환부(107)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.The
한편, 이상에서는 역 양자화부와 역 변환부는 양자화부와 변환부에서 사용한 양자화 방식과 변환 방식을 역으로 사용하여 역 양자화 및 역 변환 할 수 있다. 또한 변환부와 양자화부에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 변환 및 양자화를 모두 수행하지 않은 경우, 역 양자화부와 역 변환부도 역 변환 및 역 양자화를 모두 수행하지 않거나 영상 부호화 장치에 포함되지 않고 생략 될 수 있다.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
필터부(109)는 현재 픽쳐 내 모든 블록들이 복원된 이후, 픽쳐 전체에 걸쳐서 추가적으로 필터링 해주는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset) 등이 있다. 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, SAO(Sample Adaptive Offset)란 복원 화소에 특정 값을 감산하거나 가산함으로써, 복원 영상과 원본 영상간 차이를 최소화시키는 작업을 말한다. After all blocks in the current picture are reconstructed, the
메모리(110)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용 될 수 있다.The
감산부(111)는 현재 원본 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다.The
도 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
도 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
역 양자화부(202)는 엔트로피 복호화부에서 복호화한 양자화 계수에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화된 계수를 가지는 역 양자화되 블록을 복원한다. The
역 변환부(203)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 차분 신호를 가지는 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.The
예측부(204)는 엔트로피 복호화부에서 복호화한 예측 모드 정보를 이용하여 예측 블록을 생성하는데, 이는 영상 부호화 장치의 예측부에서 수행했던 예측 방식과 동일한 방식을 이용한다. The
가산부(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
메모리(207)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용 될 수 있다.The
도 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
선택 방법 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
선택 방법 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
선택 방법 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
(실시예 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)
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) |
-
2019
- 2019-06-28 KR KR1020190078325A patent/KR20210001768A/en active Search and Examination
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 |