KR20200123244A - 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 - Google Patents
모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 Download PDFInfo
- Publication number
- KR20200123244A KR20200123244A KR1020207028082A KR20207028082A KR20200123244A KR 20200123244 A KR20200123244 A KR 20200123244A KR 1020207028082 A KR1020207028082 A KR 1020207028082A KR 20207028082 A KR20207028082 A KR 20207028082A KR 20200123244 A KR20200123244 A KR 20200123244A
- Authority
- KR
- South Korea
- Prior art keywords
- motion vector
- current block
- decoder
- block
- motion
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 239000013598 vector Substances 0.000 claims abstract description 537
- 238000000034 method Methods 0.000 claims abstract description 181
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000012937 correction Methods 0.000 claims description 38
- 239000000523 sample Substances 0.000 description 72
- 238000010586 diagram Methods 0.000 description 44
- 230000009466 transformation Effects 0.000 description 29
- 230000002123 temporal effect Effects 0.000 description 27
- 239000013074 reference sample Substances 0.000 description 16
- 230000011664 signaling Effects 0.000 description 13
- 238000011426 transformation method Methods 0.000 description 12
- 238000001914 filtration Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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
-
- 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/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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- 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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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
-
- 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/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- 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/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 신호를 인코딩하거나 디코딩하는 비디오 신호 처리 방법 및 장치가 개시된다. 더욱 구체적으로, 비디오 신호의 처리 방법에 있어서, 현재 블록의 예측을 위한 머지(merge) 후보 리스트에 포함된 복수의 후보들 중 상기 현재 블록의 예측을 위한 후보를 지시하는 머지 인덱스를 획득하는 단계, 상기 머지 인덱스가 지시하는 후보에 대응하는 모션 정보에 기초하여 상기 현재 블록의 모션 정보를 획득하는 단계, 상기 현재 블록의 모션 정보가 서로 다른 참조 픽쳐 리스트에 대응하는 복수의 모션 벡터들을 포함하는 경우, 상기 복수의 모션 벡터들 각각에 대응하는 참조 픽쳐들 각각과 상기 현재 블록을 포함하는 현재 픽쳐 사이의 픽쳐 순서 카운트(picture order count, POC) 차이를 비교하는 단계, 상기 비교 결과에 기초하여, 상기 복수의 모션 벡터들을 보정하는 단계 및 상기 보정된 복수의 모션 벡터에 기초하여, 상기 현재 블록을 복원하는 단계를 포함하는 비디오 신호 처리 방법이 개시된다.
Description
본 발명은 비디오 신호의 처리 방법 및 장치에 관한 것으로, 보다 상세하게는 비디오 신호를 인코딩하거나 디코딩하는 비디오 신호 처리 방법 및 장치에 관한 것이다.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하기 위한 일련의 신호 처리 기술을 의미한다. 압축 부호화의 대상에는 음성, 영상, 문자 등의 대상이 존재하며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 영상 압축이라고 일컫는다. 비디오 신호에 대한 압축 부호화는 공간적인 상관관계, 시간적인 상관관계, 확률적인 상관관계 등을 고려하여 잉여 정보를 제거함으로써 이루어진다. 그러나 최근의 다양한 미디어 및 데이터 전송 매체의 발전으로 인해, 더욱 고효율의 비디오 신호 처리 방법 및 장치가 요구되고 있다.
본 발명은 비디오 신호의 코딩 효율을 높이기 위한 목적을 가지고 있다. 또한, 본 발명은 현재 블록의 참조 샘플들을 이용하여 현재 블록의 예측과 관련된 시그널링 효율을 높이기 위한 목적을 가지고 있다.
상기와 같은 과제를 해결하기 위해, 본 발명은 다음과 같은 비디오 신호 처리 장치 및 비디오 신호 처리 방법을 제공한다.
먼저 본 발명의 실시예에 따르면, 비디오 신호 처리 방법에 있어서, 현재 블록의 예측을 위한 머지(merge) 후보 리스트에 포함된 복수의 후보 들 중 상기 현재 블록의 예측을 위한 후보를 지시하는 머지 인덱스를 획득하는 단계; 상기 머지 인덱스가 지시하는 후보에 대응하는 모션 정보에 기초하여 상기 현재 블록의 모션 정보를 획득하는 단계; 상기 현재 블록의 모션 정보가 서로 다른 참조 픽쳐 리스트에 대응하는 복수의 모션 벡터들을 포함하는 경우, 상기 복수의 모션 벡터들 각각에 대응하는 참조 픽쳐들 각각과 상기 현재 블록을 포함하는 현재 픽쳐 사이의 픽쳐 순서 카운트(picture order count, POC) 차이를 비교하는 단계; 상기 비교 결과에 기초하여, 상기 복수의 모션 벡터들을 보정하는 단계; 및 상기 보정된 복수의 모션 벡터들에 기초하여, 상기 현재 블록을 복원하는 단계를 포함하는 방법이 제공된다.
또한, 본 발명의 실시예에 따르면, 비디오 신호 처리 장치에 있어서, 프로세서를 포함하며, 상기 프로세서는, 현재 블록의 예측을 위한 머지(merge) 후보 리스트에 포함된 복수의 후보 들 중 상기 현재 블록의 예측을 위한 후보를 지시하는 머지 인덱스를 획득하고, 상기 머지 인덱스가 지시하는 후보에 대응하는 모션 정보에 기초하여 상기 현재 블록의 모션 정보를 획득하고, 상기 현재 블록의 모션 정보가 서로 다른 참조 픽쳐 리스트에 대응하는 복수의 모션 벡터들을 포함하는 경우, 상기 복수의 모션 벡터들 각각에 대응하는 참조 픽쳐들 각각과 상기 현재 블록을 포함하는 현재 픽쳐 사이의 픽쳐 순서 카운트(picture order count, POC) 차이를 비교하고, 상기 비교 결과에 기초하여, 상기 복수의 모션 벡터들을 보정하고, 상기 보정된 복수의 모션 벡터들에 기초하여, 상기 현재 블록을 복원하는 비디오 신호 처리 장치가 제공된다.
상기 복수의 모션 벡터들은 제1 모션 벡터 및 제2 모션 벡터를 포함할 수 있다. 이때, 상기 프로세서는, 제1 POC 차이와 제2 POC 차이를 획득하고, 상기 제1 POC 차이와 상기 제2 POC 차이를 비교하여, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 어느 하나의 보정 값인 특정 오프셋을 획득하고, 상기 특정 오프셋에 기초하여 상기 제1 모션 벡터 및 상기 제2 모션 벡터를 보정할 수 있다. 상기 제1 POC 차이는 상기 제1 모션 벡터에 대응하는 제1 참조 픽쳐와 상기 현재 픽쳐 간의 POC 차이를 나타내고, 상기 제2 POC 차이는 상기 제2 모션 벡터에 대응하는 제2 참조 픽쳐와 상기 현재 픽쳐 간의 POC 차이를 나타낼 수 있다.
상기 프로세서는, 상기 제1 POC 차이와 상기 제2 POC 차이를 비교한 결과에 기초하여, 상기 특정 오프셋을 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 나머지 하나의 보정 값 보다 먼저 획득할 수 있다.
상기 제1 POC 차이가 상기 제2 POC 차이보다 큰 경우, 상기 특정 오프셋은 상기 제1 모션 벡터의 보정 값이고, 상기 제1 POC 차이가 상기 제2 POC 차이보다 작은 경우, 상기 특정 오프셋은 상기 제2 모션 벡터의 보정 값일 수 있다.
상기 제1 POC 차이가 상기 제2 POC 차이보다 큰 경우, 상기 특정 오프셋은 상기 제1 모션 벡터의 보정 값인 제1 오프셋일 수 있다. 이때, 상기 프로세서는, 상기 제1 오프셋을 더하여 상기 제1 모션 벡터를 보정하고, 상기 특정 오프셋에 기초하여 상기 제2 모션 벡터의 보정 값인 제2 오프셋을 획득하고, 상기 제2 오프셋을 더하여 상기 제2 모션 벡터를 보정할 수 있다.
상기 프로세서는, 상기 제1 모션 벡터에 상기 제1 오프셋을 더하여 제1 보정된 모션 벡터를 생성하고, 상기 제2 모션 벡터에 상기 제2 오프셋을 더하여 제2 보정된 모션 벡터를 생성하고, 상기 제1 보정된 모션 벡터 및 상기 제2 보정된 모션 벡터에 기초하여 상기 현재 블록을 복원할 수 있다.
상기 프로세서는, 상기 제1 POC 차이와 상기 제2 POC 차이가 동일한 경우, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 각각에 대응하는 참조 픽쳐 리스트를 나타내는 값에 기초하여, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 어느 하나에 대한 보정 값인 특정 오프셋을 획득할 수 있다.
상기 프로세서는, 상기 제1 모션 벡터에 대응하는 제1 참조 픽쳐 리스트를 나타내는 값이 0이고, 상기 제2 모션 벡터의 제2 참조 픽쳐 리스트를 나타내는 값이 1인 경우, 상기 제1 모션 벡터의 보정 값인 특정 오프셋을 획득할 수 있다.
상기 제1 참조 픽쳐 리스트는 특정 샘플에 대해 최대 하나의 모션 벡터가 사용되는 제1 상위 레벨 영역 및 특정 샘플에 대해 최대 두 개의 모션 벡터가 사용되는 제2 상위 레벨 영역에서 사용되며, 상기 제2 참조 픽쳐 리스트는 상기 제1 상위 레벨 영역에서는 사용되지 않을 수 있다.
본 발명의 실시예에 따르면 비디오 신호의 코딩 효율이 높아질 수 있다. 또한, 본 발명의 실시예에 따르면 현재 블록의 인터 예측의 예측 성능을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 비디오 신호 인코딩 장치의 개략적인 블록도이다.
도 2는 본 발명의 실시예에 따른 비디오 신호 디코딩 장치의 개략적인 블록도이다.
도 3은 픽쳐 내에서 코딩 트리 유닛이 코딩 유닛들로 분할되는 실시예를 도시한다.
도 4는 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하는 방법의 일 실시예를 도시한다.
도 5 및 도 6은 본 발명의 실시예에 따른 인트라 예측 방법을 도시한다.
도 7은 본 발명의 일 실시예에 따른 인터 예측 방법을 도시한다.
도 8은 본 발명의 일 실시예에 따른 쌍예측 방법을 도시한다.
도 9는 본 발명의 일 실시예에 따른 머지 후보 리스트의 구성 방법을 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다.
도 11은 본 발명의 다른 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다.
도 12는 본 발명의 일 실시예에 따라 현재 블록의 MVP 후보 리스트에 포함된 후보의 모션 벡터 스케일링을 나타내는 도면이다.
도 13은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다.
도 14는 본 발명의 일 실시예에 따라 초기 모션 벡터를 기준으로 모션 벡터를 보정하기 위한 탐색 위치를 나타내는 도면이다.
도 15는 본 발명의 일 실시예에 따라 모션 벡터 보정을 위한 템플릿 구성 방법을 나타내는 도면이다.
도 16은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 흐름도이다.
도 17은 본 발명의 다른 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 흐름도이다.
도 18은 본 발명의 일 실시예에 따라 하나의 모션 정보 세트를 사용하는 가중 예측 방법을 나타내는 도면이다.
도 19는 본 발명의 일 실시예에 따라 쌍예측된 블록의 가중 예측 방법을 나타내는 도면이다.
도 20은 본 발명의 일 실시예에 따른 디코더가 가중 예측을 사용하여 현재 블록을 예측하는 방법을 설명하는 흐름도이다.
도 21은 본 발명의 일 실시예에 따라 현재 블록이 단방향 예측되는 경우, 참조 블록에 적용되는 가중 파라미터 세트가 갱신되는 방법을 나타내는 도면이다.
도 22는 본 발명의 일 실시예에 따라 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다.
도 23은 본 발명의 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 참조 블록에 적용되는 가중 파라미터 세트가 갱신되는 방법을 나타내는 도면이다.
도 24는 본 발명의 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다.
도 25는 본 발명의 다른 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다.
도 26은 본 발명의 일 실시예에 따른 템플릿 매칭 방법을 나타내는 도면이다.
도 27은 본 발명의 일 실시예에 따른 부호 매칭 여부 및 결정을 나타내는 도면이다.
도 28 및 도 29는 본 발명의 일 실시예에 따라 컨텍스트를 고려한 부호 정보의 부호화 방법을 나타내는 도면이다.
도 30은 본 발명의 일 실시예에 따라 현재 블록으로부터 분할된 각각의 영역에 대해 서로 다른 모션 정보 세트에 기초하여 예측하는 방법을 나타내는 도면이다.
도 31은 본 발명의 일 실시예에 따라 현재 블록으로부터 분할된 각각의 영역에 대해 인트라 예측 또는 인터 예측을 수행하는 방법을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 비디오 신호 디코딩 장치의 개략적인 블록도이다.
도 3은 픽쳐 내에서 코딩 트리 유닛이 코딩 유닛들로 분할되는 실시예를 도시한다.
도 4는 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하는 방법의 일 실시예를 도시한다.
도 5 및 도 6은 본 발명의 실시예에 따른 인트라 예측 방법을 도시한다.
도 7은 본 발명의 일 실시예에 따른 인터 예측 방법을 도시한다.
도 8은 본 발명의 일 실시예에 따른 쌍예측 방법을 도시한다.
도 9는 본 발명의 일 실시예에 따른 머지 후보 리스트의 구성 방법을 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다.
도 11은 본 발명의 다른 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다.
도 12는 본 발명의 일 실시예에 따라 현재 블록의 MVP 후보 리스트에 포함된 후보의 모션 벡터 스케일링을 나타내는 도면이다.
도 13은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다.
도 14는 본 발명의 일 실시예에 따라 초기 모션 벡터를 기준으로 모션 벡터를 보정하기 위한 탐색 위치를 나타내는 도면이다.
도 15는 본 발명의 일 실시예에 따라 모션 벡터 보정을 위한 템플릿 구성 방법을 나타내는 도면이다.
도 16은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 흐름도이다.
도 17은 본 발명의 다른 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 흐름도이다.
도 18은 본 발명의 일 실시예에 따라 하나의 모션 정보 세트를 사용하는 가중 예측 방법을 나타내는 도면이다.
도 19는 본 발명의 일 실시예에 따라 쌍예측된 블록의 가중 예측 방법을 나타내는 도면이다.
도 20은 본 발명의 일 실시예에 따른 디코더가 가중 예측을 사용하여 현재 블록을 예측하는 방법을 설명하는 흐름도이다.
도 21은 본 발명의 일 실시예에 따라 현재 블록이 단방향 예측되는 경우, 참조 블록에 적용되는 가중 파라미터 세트가 갱신되는 방법을 나타내는 도면이다.
도 22는 본 발명의 일 실시예에 따라 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다.
도 23은 본 발명의 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 참조 블록에 적용되는 가중 파라미터 세트가 갱신되는 방법을 나타내는 도면이다.
도 24는 본 발명의 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다.
도 25는 본 발명의 다른 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다.
도 26은 본 발명의 일 실시예에 따른 템플릿 매칭 방법을 나타내는 도면이다.
도 27은 본 발명의 일 실시예에 따른 부호 매칭 여부 및 결정을 나타내는 도면이다.
도 28 및 도 29는 본 발명의 일 실시예에 따라 컨텍스트를 고려한 부호 정보의 부호화 방법을 나타내는 도면이다.
도 30은 본 발명의 일 실시예에 따라 현재 블록으로부터 분할된 각각의 영역에 대해 서로 다른 모션 정보 세트에 기초하여 예측하는 방법을 나타내는 도면이다.
도 31은 본 발명의 일 실시예에 따라 현재 블록으로부터 분할된 각각의 영역에 대해 인트라 예측 또는 인터 예측을 수행하는 방법을 나타내는 도면이다.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도, 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한 특정 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 그 용어가 가진 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 함을 밝혀두고자 한다.
본 명세서에서 일부 용어들은 다음과 같이 해석될 수 있다. 코딩은 경우에 따라 인코딩 또는 디코딩으로 해석될 수 있다. 본 명세서에서 비디오 신호의 인코딩(부호화)을 수행하여 비디오 신호 비트스트림을 생성하는 장치는 인코딩 장치 혹은 인코더로 지칭되며, 비디오 신호 비트스트림의 디코딩(복호화)을 수행하여 비디오 신호를 복원하는 장치는 디코딩 장치 혹은 디코더로 지칭된다. 또한, 본 명세서에서 비디오 신호 처리 장치는 인코더 및 디코더를 모두 포함하는 개념의 용어로 사용된다. 정보(information)는 값(values), 파라미터(parameter), 계수(coefficients), 성분(elements) 등을 모두 포함하는 용어로서, 경우에 따라 의미는 달리 해석될 수 있으므로 본 발명은 이에 한정되지 아니한다. '유닛'은 영상 처리의 기본 단위 또는 픽쳐의 특정 위치를 지칭하는 의미로 사용되며, 루마(luma) 성분과 크로마(chroma) 성분을 모두 포함하는 이미지 영역을 가리킨다. 또한, ‘블록’은 루마 성분 및 크로마 성분들(즉, Cb 및 Cr) 중 특정 성분을 포함하는 이미지 영역을 가리킨다. 다만, 실시예에 따라서 ‘유닛’, '블록', '파티션' 및 '영역' 등의 용어는 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 유닛은 코딩 유닛, 예측 유닛, 변환 유닛을 모두 포함하는 개념으로 사용될 수 있다. 픽쳐는 필드 혹은 프레임을 가리키며, 실시예에 따라 상기 용어들은 서로 혼용하여 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 비디오 신호 인코딩 장치의 개략적인 블록도이다. 도 1을 참조하면, 본 발명의 인코딩 장치(100)는 변환부(110), 양자화부(115), 역양자화부(120), 역변환부(125), 필터링부(130), 예측부(150) 및 엔트로피 코딩부(160)를 포함한다.
변환부(110)는 입력 받은 비디오 신호와 예측부(150)에서 생성된 예측 신호의 차이인 레지듀얼 신호를 변환하여 변환 계수 값을 획득한다. 예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT), 이산 사인 변환(Discrete Sine Transform, DST) 또는 웨이블릿 변환(Wavelet Transform) 등이 사용될 수 있다. 이산 코사인 변환 및 이산 사인 변환은 입력된 픽쳐 신호를 블록 형태로 나누어 변환을 수행하게 된다. 변환에 있어서 변환 영역 내의 값들의 분포와 특성에 따라서 코딩 효율이 달라질 수 있다. 양자화부(115)는 변환부(110)에서 출력된 변환 계수 값을 양자화한다.
코딩 효율을 높이기 위하여 픽쳐 신호를 그대로 코딩하는 것이 아니라, 예측부(150)를 통해 이미 코딩된 영역을 이용하여 픽쳐를 예측하고, 예측된 픽쳐에 원본 픽쳐와 예측 픽쳐 간의 레지듀얼 값을 더하여 복원 픽쳐를 획득하는 방법이 사용된다. 인코더와 디코더에서 미스매치가 발생되지 않도록 하기 위해, 인코더에서 예측을 수행할 때에는 디코더에서도 사용 가능한 정보를 사용해야 한다. 이를 위해, 인코더에서는 부호화한 현재 블록을 다시 복원하는 과정을 수행한다. 역양자화부(120)에서는 변환 계수 값을 역양자화하고, 역변환부(125)에서는 역양자화된 변환 계수값을 이용하여 레지듀얼 값을 복원한다. 한편, 필터링부(130)는 복원된 픽쳐의 품질 개선 및 부호화 효율 향상을 위한 필터링 연산을 수행한다. 예를 들어, 디블록킹 필터, 샘플 적응적 오프셋(Sample Adaptive Offset, SAO) 및 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 픽쳐는 출력되거나 참조 픽쳐로 이용하기 위하여 복호 픽쳐 버퍼(Decoded Picture Buffer, DPB, 156)에 저장된다.
예측부(150)는 인트라 예측부(152)와 인터 예측부(154)를 포함한다. 인트라 예측부(152)는 현재 픽쳐 내에서 인트라(intra) 예측을 수행하며, 인터 예측부(154)는 복호 픽쳐 버퍼(156)에 저장된 참조 픽쳐를 이용하여 현재 픽쳐를 예측하는 인터(inter) 예측을 수행한다. 인트라 예측부(152)는 현재 픽쳐 내의 복원된 샘플들로부터 인트라 예측을 수행하여, 인트라 부호화 정보를 엔트로피 코딩부(160)에 전달한다. 인트라 부호화 정보는 인트라 예측 모드, MPM(Most Probable Mode) 플래그, MPM 인덱스 중 적어도 하나를 포함할 수 있다. 인터 예측부(154)는 모션 추정부(154a) 및 모션 보상부(154b)를 포함하여 구성될 수 있다. 모션 추정부(154a)는 복원된 참조 픽쳐의 특정 영역을 참조하여 현재 영역의 모션 벡터값을 획득한다. 모션 추정부(154a)는 참조 영역에 대한 모션 정보 세트(참조 픽쳐 인덱스, 모션 벡터 정보 등)를 엔트로피 코딩부(160)로 전달한다. 모션 보상부(154b)는 모션 추정부(154a)에서 전달된 모션 벡터값을 이용하여 모션 보상을 수행한다. 인터 예측부(154)는 참조 영역에 대한 모션 정보 세트를 포함하는 인터 부호화 정보를 엔트로피 코딩부(160)에 전달한다.
위와 같은 픽쳐 예측이 수행될 경우, 변환부(110)는 원본 픽쳐와 예측 픽쳐 간의 레지듀얼 값을 변환하여 변환 계수 값을 획득한다. 이때, 변환은 픽쳐 내에서 특정 블록 단위로 수행될 수 있으며, 특정 블록의 크기는 기 설정된 범위 내에서 가변할 수 있다. 양자화부(115)는 변환부(110)에서 생성된 변환 계수 값을 양자화하여 엔트로피 코딩부(160)로 전달한다.
엔트로피 코딩부(160)는 양자화된 변환 계수, 인트라 부호화 정보, 및 인터 부호화 정보 등을 엔트로피 코딩하여 비디오 신호 비트스트림을 생성한다. 엔트로피 코딩부(160)에서는 가변 길이 코딩(Variable Length Coding, VLC) 방식과 산술 코딩(arithmetic coding) 방식 등이 사용될 수 있다. 가변 길이 코딩(VLC) 방식은 입력되는 심볼들을 연속적인 코드워드로 변환하는데, 코드워드의 길이는 가변적일 수 있다. 예를 들어, 자주 발생하는 심볼들을 짧은 코드워드로, 자주 발생하지 않은 심볼들은 긴 코드워드로 표현하는 것이다. 가변 길이 코딩 방식으로서 컨텍스트 기반 적응형 가변 길이 코딩(Context-based Adaptive Variable Length Coding, CAVLC) 방식이 사용될 수 있다. 산술 코딩은 연속적인 데이터 심볼들을 하나의 소수로 변환하는데, 산술 코딩은 각 심볼을 표현하기 위하여 필요한 최적의 소수 비트를 얻을 수 있다. 산술 코딩으로서 컨텍스트 기반 적응형 산술 부호화(Context-based Adaptive Binary Arithmetic Code, CABAC)가 이용될 수 있다.
상기 생성된 비트스트림은 NAL(Network Abstraction Layer) 유닛을 기본 단위로 캡슐화 된다. NAL 유닛은 부호화된 정수 개의 코딩 트리 유닛(coding tree unit)을 포함한다. 비디오 디코더에서 비트스트림을 복호화하기 위해서는 먼저 비트스트림을 NAL 유닛 단위로 분리한 후, 분리된 각각의 NAL 유닛을 복호화해야 한다. 한편, 비디오 신호 비트스트림의 복호화를 위해 필요한 정보들은 픽쳐 파라미터 세트(Picture Parameter Set, PPS), 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 비디오 파라미터 세트(Video Parameter Set, VPS) 등과 같은 상위 레벨 세트의 RBSP(Raw Byte Sequence Payload)를 통해 전송될 수 있다.
한편, 도 1의 블록도는 본 발명의 일 실시예에 따른 인코딩 장치(100)를 나타낸 것으로서, 분리하여 표시된 블록들은 인코딩 장치(100)의 엘리먼트들을 논리적으로 구별하여 도시한 것이다. 따라서 전술한 인코딩 장치(100)의 엘리먼트들은 디바이스의 설계에 따라 하나의 칩으로 또는 복수의 칩으로 장착될 수 있다. 일 실시예에 따르면, 전술한 인코딩 장치(100)의 각 엘리먼트의 동작은 프로세서(미도시)에 의해 수행될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 신호 디코딩 장치(200)의 개략적인 블록도이다. 도 2를 참조하면 본 발명의 디코딩 장치(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(225), 필터링부(230) 및 예측부(250)를 포함한다.
엔트로피 디코딩부(210)는 비디오 신호 비트스트림을 엔트로피 디코딩하여, 각 영역에 대한 변환 계수, 인트라 부호화 정보, 인터 부호화 정보 등을 추출한다. 역양자화부(220)는 엔트로피 디코딩된 변환 계수를 역양자화하고, 역변환부(225)는 역양자화된 변환 계수를 이용하여 레지듀얼 값을 복원한다. 비디오 신호 처리 장치(200)는 역변환부(225)에서 획득된 레지듀얼 값을 예측부(250)에서 획득된 예측자(predictor)와 합산하여 원래의 화소값을 복원한다.
한편, 필터링부(230)는 픽쳐에 대한 필터링을 수행하여 화질을 향상시킨다. 여기에는 블록 왜곡 현상을 감소시키기 위한 디블록킹 필터 및/또는 픽쳐 전체의 왜곡 제거를 위한 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 픽쳐는 출력되거나 다음 픽쳐에 대한 참조 픽쳐로 이용하기 위하여 복호 픽쳐 버퍼(DPB, 256)에 저장된다.
예측부(250)는 인트라 예측부(252) 및 인터 예측부(254)를 포함한다. 예측부(250)는 전술한 엔트로피 디코딩부(210)를 통해 복호화된 부호화 타입, 각 영역에 대한 변환 계수, 인트라/인터 부호화 정보 등을 활용하여 예측 픽쳐를 생성한다. 복호화가 수행되는 현재 블록을 복원하기 위해서, 현재 블록이 포함된 현재 픽쳐 또는 다른 픽쳐들의 복호화된 영역이 이용될 수 있다. 복원에 현재 픽쳐만을 이용하는, 즉 인트라 예측만을 수행하는 픽쳐(또는, 타일/슬라이스)를 인트라 픽쳐 또는 I 픽쳐(또는, 타일/슬라이스), 인트라 예측과 인터 예측을 모두 수행할 수 있는 픽쳐(또는, 타일/슬라이스)를 인터 픽쳐(또는, 타일/슬라이스)라고 한다. 인터 픽쳐(또는, 타일/슬라이스) 중 각 블록의 샘플값들을 예측하기 위하여 최대 하나의 모션 벡터 및 참조 픽쳐 인덱스를 이용하는 픽쳐(또는, 타일/슬라이스)를 예측 픽쳐(predictive picture) 또는 P 픽쳐(또는, 타일/슬라이스)라고 하며, 최대 두 개의 모션 벡터 및 참조 픽쳐 인덱스를 이용하는 픽쳐(또는, 타일/슬라이스)를 쌍예측 픽쳐(Bi-predictive picture) 또는 B 픽쳐(또는, 타일/슬라이스) 라고 한다. 다시 말해서, P 픽쳐(또는, 타일/슬라이스)는 각 블록을 예측하기 위해 최대 하나의 모션 정보 세트를 이용하고, B 픽쳐(또는, 타일/슬라이스)는 각 블록을 예측하기 위해 최대 두 개의 모션 정보 세트를 이용한다. 여기서, 모션 정보 세트는 하나 이상의 모션 벡터와 하나의 참조 픽쳐 인덱스를 포함한다.
인트라 예측부(252)는 인트라 부호화 정보 및 현재 픽쳐 내의 복원된 샘플들을 이용하여 예측 블록을 생성한다. 전술한 바와 같이, 인트라 부호화 정보는 인트라 예측 모드, MPM(Most Probable Mode) 플래그, MPM 인덱스 중 적어도 하나를 포함할 수 있다. 인트라 예측부(252)는 현재 블록의 좌측 및/또는 상측에 위치한 복원된 샘플들을 참조 샘플들로 이용하여 현재 블록의 샘플 값들을 예측한다. 본 개시에서, 복원된 샘플들, 참조 샘플들 및 현재 블록의 샘플들은 픽셀들을 나타낼 수 있다. 또한, 샘플 값(sample value)들은 픽셀 값들을 나타낼 수 있다.
일 실시예에 따르면, 참조 샘플들은 현재 블록의 주변 블록에 포함된 샘플들일 수 있다. 예를 들어, 참조 샘플들은 현재 블록의 좌측 경계에 인접한 샘플들 및/또는 상측 경계에 인접한 샘플들일 수 있다. 또한, 참조 샘플들은 현재 블록의 주변 블록의 샘플들 중 현재 블록의 좌측 경계로부터 기 설정된 거리 이내의 라인 상에 위치하는 샘플들 및/또는 현재 블록의 상측 경계로부터 기 설정된 거리 이내의 라인 상에 위치하는 샘플들일 수 있다. 이때, 현재 블록의 주변 블록은 현재 블록에 인접한 좌측(L) 블록, 상측(A) 블록, 하좌측(Below Left, BL) 블록, 상우측(Above Right, AR) 블록 또는 상좌측(Above Left, AL) 블록 중 적어도 하나를 포함할 수 있다.
인터 예측부(254)는 복호 픽쳐 버퍼(256)에 저장된 참조 픽쳐 및 인터 부호화 정보를 이용하여 예측 블록을 생성한다. 인터 부호화 정보는 참조 블록에 대한 현재 블록의 모션 정보 세트(참조 픽쳐 인덱스, 모션 벡터 정보 등)를 포함할 수 있다. 인터 예측에는 L0 예측, L1 예측 및 쌍예측(Bi-prediction)이 있을 수 있다. L0 예측은 L0 픽쳐 리스트에 포함된 1개의 참조 픽쳐를 이용한 예측이고, L1 예측은 L1 픽쳐 리스트에 포함된 1개의 참조 픽쳐를 이용한 예측을 의미한다. 이를 위해서는 1세트의 모션 정보(예를 들어, 모션 벡터 및 참조 픽쳐 인덱스)가 필요할 수 있다. 쌍예측 방식에서는 최대 2개의 참조 영역을 이용할 수 있는데, 이 2개의 참조 영역은 동일한 참조 픽쳐에 존재할 수도 있고, 서로 다른 픽쳐에 각각 존재할 수도 있다. 즉, 쌍예측 방식에서는 최대 2세트의 모션 정보(예를 들어, 모션 벡터 및 참조 픽쳐 인덱스)가 이용될 수 있는데, 2개의 모션 벡터가 동일한 참조 픽쳐 인덱스에 대응될 수도 있고 서로 다른 참조 픽쳐 인덱스에 대응될 수도 있다. 이때, 참조 픽쳐들은 시간적으로 현재 픽쳐 이전이나 이후 모두에 표시(또는 출력)될 수 있다.
인터 예측부(254)는 모션 벡터 및 참조 픽쳐 인덱스를 이용하여 현재 블록의 참조 블록을 획득할 수 있다. 상기 참조 블록은 참조 픽쳐 인덱스에 대응하는 참조 픽쳐 내에 존재한다. 또한, 모션 벡터에 의해서 특정된 블록의 샘플 값 또는 이의 보간(interpolation)된 값이 현재 블록의 예측자(predictor)로 이용될 수 있다. 서브펠(sub-pel) 단위의 픽셀 정확도를 갖는 모션 예측을 위하여 이를 테면, 루마 신호에 대하여 8-탭 보간 필터가, 크로마 신호에 대하여 4-탭 보간 필터가 사용될 수 있다. 다만, 서브펠 단위의 모션 예측을 위한 보간 필터는 이에 한정되지 않는다. 이와 같이 인터 예측부(254)는 이전에 복원된 픽쳐로부터 현재 유닛의 텍스쳐를 예측하는 모션 보상(motion compensation)을 수행한다. 이때, 인터 예측부는 모션 정보 세트를 이용할 수 있다.
상기 인트라 예측부(252) 또는 인터 예측부(254)로부터 출력된 예측자, 및 역변환부(225)로부터 출력된 레지듀얼 값이 더해져서 복원된 비디오 픽쳐가 생성된다. 즉, 비디오 신호 디코딩 장치(200)는 예측부(250)에서 생성된 예측 블록과 역변환부(225)로부터 획득된 레지듀얼을 이용하여 현재 블록을 복원한다.
한편, 도 2의 블록도는 본 발명의 일 실시예에 따른 디코딩 장치(200)를 나타낸 것으로서, 분리하여 표시된 블록들은 디코딩 장치(200)의 엘리먼트들을 논리적으로 구별하여 도시한 것이다. 따라서 전술한 디코딩 장치(200)의 엘리먼트들은 디바이스의 설계에 따라 하나의 칩으로 또는 복수의 칩으로 장착될 수 있다. 일 실시예에 따르면, 전술한 디코딩 장치(200)의 각 엘리먼트의 동작은 프로세서(미도시)에 의해 수행될 수 있다.
도 3은 픽쳐 내에서 코딩 트리 유닛(Coding Tree Unit, CTU)이 코딩 유닛들(Coding Units, CUs)로 분할되는 실시예를 도시한다. 비디오 신호의 코딩 과정에서, 픽쳐는 코딩 트리 유닛(CTU)들의 시퀀스로 분할될 수 있다. 코딩 트리 유닛은 루마(luma) 샘플들의 NXN 블록과, 이에 대응하는 크로마(chroma) 샘플들의 2개의 블록들로 구성된다. 코딩 트리 유닛은 복수의 코딩 유닛들로 분할될 수 있다. 코딩 트리 유닛은 분할되지 않고 리프 노드가 될 수도 있다. 이 경우, 코딩 트리 유닛 자체가 코딩 유닛이 될 수 있다. 코딩 유닛은 상기에서 설명한 비디오 신호의 처리 과정, 즉 인트라/인터 예측, 변환, 양자화 및/또는 엔트로피 코딩 등의 과정에서 픽쳐를 처리하기 위한 기본 단위를 가리킨다. 하나의 픽쳐 내에서 코딩 유닛의 크기 및 모양은 일정하지 않을 수 있다. 코딩 유닛은 정사각형 혹은 직사각형의 모양을 가질 수 있다. 직사각형 코딩 유닛(혹은, 직사각형 블록)은 수직 코딩 유닛(혹은, 수직 블록)과 수평 코딩 유닛(혹은, 수평 블록)을 포함한다. 본 명세서에서, 수직 블록은 높이가 너비보다 큰 블록이며, 수평 블록은 너비가 높이보다 큰 블록이다. 또한, 본 명세서에서 정사각형이 아닌(non-square) 블록은 직사각형 블록을 가리킬 수 있지만, 본 발명은 이에 한정되지 않는다.
도 3을 참조하면, 코딩 트리 유닛은 먼저 쿼드 트리(Quad Tree, QT) 구조로 분할된다. 즉, 쿼드 트리 구조에서 2NX2N 크기를 가지는 하나의 노드는 NXN 크기를 가지는 네 개의 노드들로 분할될 수 있다. 본 명세서에서 쿼드 트리는 4진(quaternary) 트리로도 지칭될 수 있다. 쿼드 트리 분할은 재귀적으로 수행될 수 있으며, 모든 노드들이 동일한 깊이로 분할될 필요는 없다.
한편, 전술한 쿼드 트리의 리프 노드(leaf node)는 멀티-타입 트리(Multi-Type Tree, MTT) 구조로 더욱 분할될 수 있다. 본 발명의 실시예에 따르면, 멀티 타입 트리 구조에서는 하나의 노드가 수평 혹은 수직 분할의 2진(binary, 바이너리) 혹은 3진(ternary, 터너리) 트리 구조로 분할될 수 있다. 즉, 멀티-타입 트리 구조에는 수직 바이너리 분할, 수평 바이너리 분할, 수직 터너리 분할 및 수평 터너리 분할의 4가지 분할 구조가 존재한다. 본 발명의 실시예에 따르면, 상기 각 트리 구조에서 노드의 너비 및 높이는 모두 2의 거듭제곱 값을 가질 수 있다. 예를 들어, 바이너리 트리(Binary Tree, BT) 구조에서, 2NX2N 크기의 노드는 수직 바이너리 분할에 의해 2개의 NX2N 노드들로 분할되고, 수평 바이너리 분할에 의해 2개의 2NXN 노드들로 분할될 수 있다. 또한, 터너리 트리(Ternary Tree, TT) 구조에서, 2NX2N 크기의 노드는 수직 터너리 분할에 의해 (N/2)X2N, NX2N 및 (N/2)X2N의 노드들로 분할되고, 수평 터너리 분할에 의해 2NX(N/2), 2NXN 및 2NX(N/2)의 노드들로 분할될 수 있다. 이러한 멀티-타입 트리 분할은 재귀적으로 수행될 수 있다.
멀티-타입 트리의 리프 노드는 코딩 유닛이 될 수 있다. 코딩 유닛에 대한 분할이 지시되지 않거나 코딩 유닛이 최대 변환 길이에 비해 크지 않은 경우, 해당 코딩 유닛은 더 이상의 분할 없이 예측 및 변환의 단위로 사용된다. 한편, 전술한 쿼드 트리 및 멀티-타입 트리에서 다음의 파라메터들 중 적어도 하나가 사전에 정의되거나 PPS, SPS, VPS 등과 같은 상위 레벨 세트의 RBSP를 통해 전송될 수 있다. 1) CTU 크기: 쿼드 트리의 루트 노드(root node) 크기, 2) 최소 QT 크기(MinQtSize): 허용된 최소 QT 리프 노드 크기, 3) 최대 BT 크기(MaxBtSize): 허용된 최대 BT 루트 노드 크기, 4) 최대 TT 크기(MaxTtSize): 허용된 최대 TT 루트 노드 크기, 5) 최대 MTT 깊이(MaxMttDepth): QT의 리프 노드로부터의 MTT 분할의 최대 허용 깊이, 6) 최소 BT 크기(MinBtSize): 허용된 최소 BT 리프 노드 크기, 7) 최소 TT 크기(MinTtSize): 허용된 최소 TT 리프 노드 크기.
도 4는 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하는 방법의 일 실시예를 도시한다. 전술한 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하기 위해 기 설정된 플래그들이 사용될 수 있다. 도 4를 참조하면, 쿼드 트리 노드의 분할 여부를 지시하는 플래그 ‘qt_split_flag’, 멀티-타입 트리 노드의 분할 여부를 지시하는 플래그 ‘mtt_split_flag’, 멀티-타입 트리 노드의 분할 방향을 지시하는 플래그 ‘mtt_split_vertical_flag’ 또는 멀티-타입 트리 노드의 분할 모양을 지시하는 플래그 ‘mtt_split_binary_flag’ 중 적어도 하나가 사용될 수 있다.
본 발명의 실시예에 따르면, 코딩 트리 유닛은 쿼드 트리의 루트 노드이며, 쿼드 트리 구조로 우선 분할될 수 있다. 쿼드 트리 구조에서는 각각의 노드 ‘QT_node’ 별로 ‘qt_split_flag’가 시그널링된다. ‘qt_split_flag’의 값이 1일 경우 해당 노드는 4개의 정사각형 노드들로 분할되며, ‘qt_split_flag’의 값이 0일 경우 해당 노드는 쿼드 트리의 리프 노드 ‘QT_leaf_node’가 된다.
각각의 쿼드 트리 리프 노드 ‘QT_leaf_node’는 멀티-타입 트리 구조로 더 분할될 수 있다. 멀티-타입 트리 구조에서는 각각의 노드 ‘MTT_node’ 별로 ‘mtt_split_flag’가 시그널링된다. ‘mtt_split_flag’의 값이 1일 경우 해당 노드는 복수의 직사각형 노드들로 분할되며, ‘mtt_split_flag’의 값이 0일 경우 해당 노드는 멀티-타입 트리의 리프 노드 ‘MTT_leaf_node’가 된다. 멀티-타입 트리 노드 ‘MTT_node’가 복수의 직사각형 노드들로 분할될 경우(즉, ‘mtt_split_flag’의 값이 1일 경우), 노드 ‘MTT_node’를 위한 ‘mtt_split_vertical_flag’ 및 ‘mtt_split_binary_flag’가 추가로 시그널링될 수 있다. ‘mtt_split_vertical_flag’의 값이 1일 경우 노드 ‘MTT_node’의 수직 분할이 지시되며, ‘mtt_split_vertical_flag’의 값이 0일 경우 노드 ‘MTT_node’의 수평 분할이 지시된다. 또한, ‘mtt_split_binary_flag’의 값이 1일 경우 노드 ‘MTT_node’는 2개의 직사각형 노드들로 분할되며, ‘mtt_split_binary_flag’의 값이 0일 경우 노드 ‘MTT_node’는 3개의 직사각형 노드들로 분할된다.
도 5 및 도 6은 본 발명의 실시예에 따른 인트라 예측 방법을 도시한다. 전술한 바와 같이, 인트라 예측부는 현재 블록의 좌측 및/또는 상측에 위치한 복원된 샘플들을 참조 샘플들로 이용하여 현재 블록의 샘플 값들을 예측한다.
먼저, 도 5는 인트라 예측 모드에서 현재 블록의 예측을 위해 사용되는 참조 샘플들의 일 실시예를 도시한다. 일 실시예에 따르면, 참조 샘플들은 현재 블록의 좌측 경계에 인접한 샘플들 및/또는 상측 경계에 인접한 샘플들일 수 있다. 도 5에 도시된 바와 같이, 현재 블록의 크기가 WXH이고 현재 블록에 인접한 단일 참조 라인(line)의 샘플들이 인트라 예측에 사용될 경우, 현재 블록의 좌측 및/또는 상측에 위치한 최대 2W+2H+1개의 주변 샘플들을 사용하여 참조 샘플들이 설정될 수 있다.
본 발명의 추가적인 실시예에 따르면, 현재 블록의 인트라 예측을 위해 복수의 참조 라인들 상의 샘플들이 사용될 수 있다. 복수의 참조 라인들은 현재 블록의 경계로부터 기 설정된 거리 이내에 위치한 n개의 라인들로 구성될 수 있다. 이 경우, 현재 블록의 인트라 예측을 위해 사용되는 적어도 하나의 참조 라인을 지시하는 별도의 참조 라인 정보가 시그널링될 수 있다. 구체적으로, 참조 라인 정보는 복수의 참조 라인들 중 어느 하나를 지시하는 인덱스를 포함할 수 있다. 또한, 참조 샘플로 사용될 적어도 일부의 샘플이 아직 복원되지 않은 경우, 인트라 예측부는 참조 샘플 패딩 과정을 수행하여 참조 샘플을 획득할 수 있다. 또한, 인트라 예측부는 인트라 예측의 오차를 줄이기 위해 참조 샘플 필터링 과정을 수행할 수 있다. 즉, 주변 샘플들 및/또는 참조 샘플 패딩 과정에 의해 획득된 참조 샘플들에 필터링을 수행하여 필터링된 참조 샘플들을 획득할 수 있다. 인트라 예측부는 필터링되지 않은 참조 샘플들 또는 필터링된 참조 샘플들을 이용하여 현재 블록의 샘플들을 예측한다. 본 개시에서, 주변 샘플들은 적어도 하나의 참조 라인 상의 샘플들을 포함할 수 있다. 예를 들어, 주변 샘플들은 현재 블록의 경계에 인접한 라인 상의 인접 샘플들을 포함할 수 있다.
다음으로, 도 6은 인트라 예측에 사용되는 예측 모드들의 일 실시예를 도시한다. 인트라 예측을 위해, 인트라 예측 방향을 지시하는 인트라 예측 모드 정보가 시그널링될 수 있다. 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시한다. 현재 블록이 인트라 예측된 블록일 경우, 디코더는 비트스트림으로부터 현재 블록의 인트라 예측 모드 정보를 수신한다. 디코더의 인트라 예측부는 추출된 인트라 예측 모드 정보에 기초하여 현재 블록에 대한 인트라 예측을 수행한다.
본 발명의 실시예에 따르면, 인트라 예측 모드 세트는 인트라 예측에 사용되는 모든 인트라 예측 모드들(예, 총 67개의 인트라 예측 모드들)을 포함할 수 있다. 더욱 구체적으로, 인트라 예측 모드 세트는 평면 모드, DC 모드 및 복수의(예, 65개의) 각도 모드들(즉, 방향 모드들)을 포함할 수 있다. 일부 실시예에서, 인트라 예측 모드 세트는 모든 인트라 예측 모드들 중 일부로 구성될 수도 있다. 각각의 인트라 예측 모드는 기 설정된 인덱스(즉, 인트라 예측 모드 인덱스)를 통해 지시될 수 있다. 예를 들어, 도 6에 도시된 바와 같이 인트라 예측 모드 인덱스 0은 평면 모드를 지시하고, 인트라 예측 모드 인덱스 1은 DC 모드를 지시한다. 또한, 인트라 예측 모드 인덱스 2 내지 66은 서로 다른 각도 모드들을 각각 지시할 수 있다. 이때, 인트라 예측 모드 인덱스 2는 수평 대각(Horizontal Diagonal, HDIA) 모드를 지시하고, 인트라 예측 모드 인덱스 18은 수평(Horizontal, HOR) 모드를 지시하고, 인트라 예측 모드 인덱스 34는 대각(Diagonal, DIA) 모드를 지시하고, 인트라 예측 모드 인덱스 50은 수직(Vertical, VER) 모드를 지시하며, 인트라 예측 모드 인덱스 66은 수직 대각(Vertical Diagonal, VDIA) 모드를 지시한다.
도 7은 본 발명의 일 실시예에 따른 인터 예측 방법을 도시한다. 전술한 바와 같이, 디코더는 복호화된 다른 픽쳐의 복원된 샘플들을 참조하여 현재 블록을 예측할 수 있다. 도 7을 참조하면, 디코더는 현재 블록(701)의 모션 정보 세트에 기초하여 참조 픽쳐(720) 내의 참조 블록(702)을 획득한다. 이때, 모션 정보 세트는 참조 픽쳐 인덱스(ref_idx_lx) 및 모션 벡터(MV)를 포함할 수 있다. 참조 픽쳐 인덱스(ref_idx_lx)는 참조 픽쳐 리스트(lx)에서 현재 블록의 인터 예측을 위한 참조 블록이 포함된 참조 픽쳐(720)를 지시한다. 모션 벡터(MV)는 현재 픽쳐(710) 내에서 현재 블록(701)의 좌표 값과 참조 픽쳐(720) 내에서 참조 블록(702)의 좌표 값 간의 오프셋을 나타낸다. 디코더는 참조 블록(702)의 샘플 값들에 기초하여 현재 블록(701)의 예측자를 획득하고, 상기 예측자를 이용하여 현재 블록(701)을 복원한다.
구체적으로, 인코더는 복원 순서가 앞선 픽쳐들에서 현재 블록과 유사한 블록을 탐색하여 전술한 참조 블록을 획득할 수 있다. 예를 들어, 인코더는 기 설정된 탐색 영역 내에서 현재 블록과 샘플 값 차이의 합이 최소가 되는 참조 블록을 탐색할 수 있다. 이때, 현재 블록과 참조 블록의 샘플들 간의 유사도를 측정하기 위해, SAD (Sum Of Absolute Difference) 또는 SATD (Sum of Hadamard Transformed Difference) 중 적어도 하나가 사용될 수 있다. 여기에서, SAD는 두 블록에 포함된 샘플 값들의 차이 각각의 절대값을 모두 더한 값일 수 있다. 또한, SATD는 두 블록에 포함된 샘플 값들의 차이를 하다마드 변환(Hadamard Transform)하여 획득된 하다마드 변환 계수의 절대값을 모두 더한 값일 수 있다.
한편, 현재 블록은 하나 이상의 참조 영역을 이용하여 예측될 수도 있다. 전술한 바와 같이, 현재 블록은 최대 2개의 참조 영역을 이용하는 쌍예측 방식을 통해 인터 예측될 수 있다. 도 8은 본 발명의 일 실시예에 따른 쌍예측 방법을 도시한다. 도 8을 참조하면, 디코더는 현재 블록(801)의 2개의 모션 정보 세트에 기초하여 2개의 참조 블록(802, 803)을 획득할 수 있다. 또한, 디코더는 획득된 2개의 참조 블록의 샘플 값들 각각에 기초하여 현재 블록의 제1 예측자 및 제2 예측자를 획득할 수 있다. 또한, 디코더는 제1 예측자 및 제2 예측자를 이용하여 현재 블록(801)을 복원할 수 있다.
일 실시예에 따라, 디코더는 제1 예측자 및 제2 예측자의 샘플 별 평균에 기초하여 현재 블록(801)을 복원할 수 있다. 다른 일 실시예에 따라, 디코더는 제1 예측자 및 제2 예측자 각각에게 서로 다른 가중치 값을 적용하여 현재 블록(801)을 복원할 수 있다. 이 경우, 가중치 값의 사용 여부는 PPS 또는 SPS를 통해 시그널링 될 수 있다. 현재 블록(801)의 예측에 사용되는 가중치 값과 오프셋 값은 슬라이스/타일 헤더를 통해 슬라이스/타일 단위로 전송될 수 있다. 또는 현재 블록(801)의 예측에 사용되는 가중치 값과 오프셋 값은 코딩 유닛 별로 전송될 수도 있다. 가중치 값을 사용하여 현재 블록을 예측하는 방법에 대해서는 도 18 내지 도 25를 통해 후술하도록 한다.
전술한 바와 같이, 현재 블록의 모션 보상을 위해, 하나 또는 복수의 모션 정보 세트가 시그널링될 수 있다. 현재 블록의 모션 정보 세트를 시그널링하는 방법에 있어서, 복수의 블록 각각의 모션 보상에 사용되는 모션 정보 세트 간의 중복성이 이용될 수 있다. 현재 블록의 예측에 사용되는 모션 정보 세트는 기 복원된 다른 샘플들 중 어느 하나의 예측에 사용된 모션 정보 세트로부터 유도될 수 있기 때문이다.
예를 들어, 현재 블록의 모션 정보 세트와 동일 또는 유사한 모션 정보 세트에 기초하여 예측되었을 가능성이 있는 복수의 후보 블록들이 존재할 수 있다. 디코더는 해당 복수의 후보 블록들을 기초로 머지 후보 리스트(merge candidate list)를 생성할 수 있다. 여기에서, 머지 후보 리스트는 현재 블록보다 먼저 복원된 샘플들 중에서, 현재 블록의 모션 정보 세트와 관련된 모션 정보 세트에 기초하여 예측되었을 가능성이 있는 샘플에 대응하는 후보들을 포함할 수 있다. 인코더와 디코더는 미리 정의된 규칙에 따라 현재 블록의 머지 후보 리스트를 구성할 수 있다. 이때, 인코더와 디코더가 각각 구성한 머지 후보 리스트는 서로 동일할 수 있다. 예를 들어, 인코더 및 디코더는 현재 픽쳐 내에서 현재 블록의 위치에 기초하여 현재 블록의 머지 후보 리스트를 구성할 수 있다. 인코더 및 디코더가 현재 블록의 머지 후보 리스트를 구성하는 방법에 대해서는 도 9를 통해 후술하도록 한다. 본 개시에서, 특정 블록의 위치는 특정 블록을 포함하는 픽쳐 내에서 특정 블록의 좌상단(top-left) 샘플의 상대적인 위치를 나타낸다.
일 실시예에 따라, 현재 블록이 머지 후보 리스트를 사용하여 예측되는 경우, 현재 블록은 머지 후보 리스트가 포함하는 후보들 중에서 어느 하나에 대응하는 모션 정보 세트에 기초하여 복원될 수 있다. 예를 들어, 현재 블록의 모션 벡터는 머지 후보 리스트가 포함하는 후보들 중에서 어느 하나의 모션 벡터에 기초하여 획득될 수 있다. 또한, 현재 블록의 예측에 참조될 참조 픽쳐는 후보들 중에서 어느 하나에 대응하는 참조 픽쳐 리스트 및 참조 픽쳐 인덱스에 기초하여 획득될 수 있다.
구체적으로, 머지 후보 리스트가 포함하는 복수의 후보들 중에서 어느 하나를 나타내는 머지 인덱스가 시그널링될 수 있다. 디코더는 인코더로부터 시그널링된 머지 인덱스를 수신할 수 있다. 디코더는 머지 인덱스가 지시하는 후보에 대응하는 모션 정보 세트에 기초하여 현재 블록의 모션 보상을 수행할 수 있다. 머지 인덱스가 지시하는 후보는 머지 대상자로 지칭될 수 있다. 디코더는 머지 대상자에 대응하는 모션 정보 세트에 기초하여 현재 블록의 모션 정보 세트를 획득할 수 있다. 즉, 머지 대상자의 참조 픽쳐 인덱스와 머지 대상자의 모션 벡터에 기초하여 현재 블록의 모션 보상이 수행될 수 있다. 이를 통해, 인코더 및 디코더는 모션 정보 시그널링 오버헤드를 감소시킬 수 있다.
일 실시예에 따라, 머지 후보 리스트를 사용하는 예측 방법은 스킵 모드 및 머지 모드로 구분될 수 있다. 예를 들어, 현재 블록의 예측 방법이 스킵 모드인 경우, 현재 블록의 잔차 신호는 시그널링되지 않을 수 있다. 이 경우, 디코더는 머지 인덱스를 기초로 생성된 현재 블록의 예측자에 기초하여 현재 블록을 복원할 수 있다. 현재 블록의 예측 방법이 머지 모드인 경우, 인코더로부터 머지 인덱스 및 잔차 신호가 시그널링될 수 있다. 이 경우, 디코더는 현재 블록의 머지 인덱스 및 잔차 신호에 기초하여 현재 블록을 복원할 수 있다. 디코더는 현재 블록의 머지 인덱스가 지시하는 머지 대상자의 모션 정보 세트에 기초하여 현재 블록의 예측자를 생성할 수 있다. 다음으로, 디코더는 생성된 현재 블록의 예측자 및 수신된 잔차 신호를 기초로 현재 블록을 복원할 수 있다.
이하에서는, 본 발명의 일 실시예에 따라 머지 후보 리스트가 구성되는 방법에 대해 도 9를 참조하여 구체적으로 설명하도록 한다. 도 9는 본 발명의 일 실시예에 따른 머지 후보 리스트의 구성 방법을 나타내는 도면이다. 일 실시예에 따라, 머지 후보 리스트는 공간적 후보 또는 시간적 후보 중 적어도 하나를 포함할 수 있다. 여기에서, 공간적 후보는 현재 블록의 주변 블록들에 기반하여 구성된 후보를 나타낼 수 있다. 현재 블록을 위한 모션 정보 세트는 현재 블록의 주변 블록 중 어느 하나의 예측에 사용된 모션 정보 세트와 동일 또는 유사할 수 있기 때문이다. 본 개시에서, 공간적 후보 또는 시간적 후보는 각각에 대응하는 블록으로 지칭될 수 있다.
도 9를 참조하면, 머지 후보 리스트의 공간적 후보는 현재 블록과 인접한 주변 블록들 중 기 설정된 위치에 대응하는 이용 가능한 주변 블록들(A0, A1, B0, B1, B2)을 기초로 구성될 수 있다. 구체적으로, 머지 후보 리스트의 공간적 후보는 하좌측 블록(A0), 좌측 블록(A1), 상우측 블록(B0), 상측 블록(B1) 또는 상좌측 블록(B2) 중 적어도 하나를 포함할 수 있다. 이때, 디코더는 A1, B1, B0, A0, B2를 순차적으로 탐색하여 최대 4개의 공간적 후보를 구성할 수 있다. 또한, 주변 블록들 중에서 특정 블록이 인트라 예측되었거나, 특정 블록이 존재하지 않거나, 특정 블록의 예측 모드가 이용 가능하지 않은 경우, 해당 블록은 이용 가능하지 않은 것으로 설정될 수 있다.
예를 들어, A1이 이용 가능하지 않은 경우, 디코더는 A1을 머지 후보 리스트에 포함시키지 않을 수 있다. 다음으로, 디코더는 B1이 이용 가능한지 판단할 수 있다. 이때, B1이 이용 가능한 경우, 디코더는 B1을 포함하는 머지 후보 리스트를 구성할 수 있다. 디코더는 현재 블록의 머지 후보 리스트가 최대 4개까지의 공간적 후보를 포함하도록 나머지 주변 블록들(B0, A0, B2)을 탐색할 수 있다. 또한, 특정 주변 블록의 모션 정보 세트가 특정 주변 블록 보다 먼저 탐색되어 머지 후보 리스트에 포함된 다른 주변 블록의 모션 정보 세트와 동일할 수 있다. 이 경우, 디코더는 해당 주변 블록을 머지 후보 리스트에 포함시키지 않을 수 있다.
전술한 바와 같이, 머지 후보 리스트는 시간적 후보를 포함할 수 있다. 시간적 후보는 현재 픽쳐가 아닌 다른 픽쳐 내에서 현재 블록의 위치에 대응하는 블록을 기반으로 구성된 후보를 나타낼 수 있다. 현재 블록을 위한 모션 정보 세트는 다른 픽쳐가 포함하는 블록의 예측에 사용된 모션 정보 세트와 동일 또는 유사할 수 있기 때문이다. 예를 들어, 현재 픽쳐가 아닌 다른 픽쳐는 기 설정된 참조 픽쳐(R0)일 수 있다. 기 설정된 참조 픽쳐(R0)는 현재 블록을 포함하는 상위 레벨의 헤더를 통해 시그널링될 수 있다. 여기에서, 상위 레벨은 현재 블록을 포함하는 슬라이스/타일, 픽쳐 또는 CTU 또는 CTB(coding tree block)를 나타낼 수 있다. 구체적으로, 인코더는 특정 참조 픽쳐 리스트에서 기 설정된 참조 픽쳐(R0)를 지시하는 참조 픽쳐 인덱스를 상위 레벨의 헤더에 삽입할 수 있다.
도 9를 참조하면, 시간적 후보는 기 설정된 참조 픽쳐(R0) 내에서 현재 픽쳐 내에서의 현재 블록의 위치와 동일한 위치에 대응하는 코로케이티드 블록(C3) 또는 코로케이티드 블록(C3)의 우하단 블록(H) 중 어느 하나를 포함할 수 있다. 이때, 디코더는 H를 C3에 비해 우선적으로 탐색할 수 있다. 예를 들어, H가 이용 가능하지 않은 경우, 디코더는 H를 머지 후보 리스트에 포함시키지 않을 수 있다. 다음으로, 디코더는 C3이 이용 가능한지 판단할 수 있다. 또한, 디코더는 C3이 이용 가능한 경우, C3을 포함하는 머지 후보 리스트를 구성할 수 있다. 반면, H가 이용 가능한 경우, 디코더는 C3이 이용 가능한지 판단하는 동작을 수행하지 않을 수 있다. 즉, 머지 후보 리스트는 최대 1개의 시간적 후보를 포함할 수 있다.
또한, 디코더는 시간적 후보의 모션 벡터를 스케일링하여 현재 블록의 모션 벡터로 사용할 수 있다. 디코더는 시간적 후보의 모션 벡터를 참조 픽쳐 간의 시간적 거리에 따라 스케일링할 수 있다. 시간적 후보에 대응하는 후보 블록은 현재 블록과 서로 다른 픽쳐에 속한 블록이기 때문이다. 구체적으로, 디코더는 시간적 후보를 포함하는 픽쳐의 픽쳐 순서 카운트(picture order count, POC)로부터 시간적 후보의 예측에 참조된 픽쳐의 POC를 뺀 제1 값(td)을 획득할 수 있다. 디코더는 현재 픽쳐의 POC로부터 현재 픽쳐의 예측에 참조될 참조 픽쳐의 POC를 뺀 제2 값(tb)을 획득할 수 있다. 또한, 디코더는 제1 값(td) 및 제2 값(tb)에 기초하여 시간적 후보의 모션 벡터를 스케일링할 수 있다. 이때, 디코더는 오프셋 값과 쉬프트 연산을 사용하는 고정 소수점 방식으로 연산할 수 있다. 이를 통해, 디코더는 나눗셈 연산을 사용하지 않을 수 있다.
일 실시예에 따라, 공간적 후보의 개수 및 시간적 후보의 개수의 합이 머지 후보 리스트가 포함할 수 있는 최대 후보 개수 보다 작은 경우, 디코더는 추가적인 예측 방법에 대응하는 후보를 머지 후보 리스트에 포함시킬 수 있다. 이때, 머지 후보 리스트를 구성하는 머지 후보의 최대 개수는 현재 블록을 포함하는 상위 레벨의 헤더를 통해 시그널링될 수 있다. 일 실시예에 따라, 현재 블록보다 먼저 복원된 블록에 사용된 모션 정보 세트를 포함하는 별도의 모션 정보 리스트가 관리될 수 있다. 구체적으로, 모션 정보 리스트는 현재 픽쳐에서 현재 블록 보다 먼저 복원된 복수의 블록들 각각에 사용된 모션 정보 세트들을 포함할 수 있다. 이 경우, 디코더는 모션 정보 리스트에 포함된 모션 정보 세트들 중 적어도 일부를 머지 후보 리스트의 후보로 사용할 수 있다.
다른 일 실시예에 따라, 디코더는 머지 후보 리스트에 포함된 후보들 중에서 기 설정된 순서에 따라 2개의 후보를 선택할 수 있다. 또한, 디코더는 선택된 2개의 후보 각각의 예측에 사용된 모션 벡터들의 평균에 기초하여, 평균 모션 벡터를 생성할 수 있다. 디코더는 평균 모션 벡터에 기초하여 평균 모션 정보 세트를 생성할 수 있다. 또한, 디코더는 생성된 평균 모션 정보 세트를 머지 후보 리스트의 후보로 사용할 수 있다.
또 다른 일 실시예에 따라, 디코더는 단방향 예측 정보를 결합하여 쌍예측 정보를 생성할 수 있다. 구체적으로, 단방향 예측 정보를 기초로 예측된 후보가 복수인 경우, 디코더는 해당 후보들의 단방향 예측 정보를 결합하여 예측하는 쌍예측 정보를 생성할 수 있다. 또한, 디코더는 생성된 쌍예측 정보를 머지 후보 리스트에 추가시킬 수 있다. 또한, 디코더는 제로 모션 벡터에 대응하는 후보를 머지 후보 리스트에 포함시킬 수 있다.
전술한 바와 같이, 일 실시예에 따른 인코더 및 디코더는 머지 후보 리스트와 머지 인덱스를 이용하여 모션 정보 시그널링에 관한 오버헤드를 감소시킬 수 있다. 그러나 머지 후보 리스트가 포함하는 머지 후보들의 모션 벡터로는 현재 블록의 모션을 정확하게 표현하기 어려울 수 있다. 본 발명의 일 실시예에 따르면, 머지 인덱스가 지시하는 머지 후보의 모션 벡터로부터 보정된 모션 벡터가 현재 블록의 모션 벡터로 사용될 수 있다. 이를 통해, 인코더 및 디코더는 머지 후보 리스트를 사용하는 예측 방법의 예측 성능을 향상시킬 수 있다. 이하에서는, 본 발명의 일 실시예에 따라 현재 블록의 모션 벡터를 보정하는 방법에 대해 구체적으로 설명하도록 한다.
본 발명의 일 실시예에 따라, 디코더는 현재 블록의 모션 벡터를 보정할 수 있다. 예를 들어, 현재 블록이 머지 후보 리스트를 이용하여 예측되는 경우, 디코더는 현재 블록의 모션 벡터를 보정할 수 있다. 이때, 현재 블록의 모션 벡터는 머지 대상자의 모션 벡터로부터 획득된 머지 모션 벡터일 수 있다. 본 개시에서, 머지 모션 벡터는 머지 대상자에 대응하는 모션 정보 세트로부터 획득된 현재 블록의 모션 벡터를 나타낼 수 있다. 디코더는 머지 모션 벡터를 보정하여 보정된 모션 벡터를 생성할 수 있다. 또한, 디코더는 보정된 모션 벡터에 기초하여 현재 블록을 예측할 수 있다.
일 실시예에 따라, 머지 모션 벡터는 모션 벡터 오프셋에 기초하여 보정될 수 있다. 여기에서, 모션 벡터 오프셋은 보정 전 모션 벡터와 보정된 모션 벡터 사이의 차이를 나타낸다. 예를 들어, 디코더는 머지 모션 벡터에 모션 벡터 오프셋을 더해 보정된 모션 벡터를 생성할 수 있다. 이때, 모션 벡터 오프셋은 시그널링되거나, 기 설정된 규칙에 따라 유도될 수 있다.
일 실시예에 따라, 모션 벡터 오프셋을 나타내는 정보는 별도로 시그널링될 수 있다. 이때, 모션 벡터 오프셋을 나타내는 정보는 모션 벡터 오프셋의 절대값 및 모션 벡터 오프셋의 부호(sign) 중 적어도 하나를 포함할 수 있다. 모션 벡터 오프셋의 절대값은 보정 전 모션 벡터와 보정 후 모션 벡터 사이의 거리를 나타낼 수 있다. 구체적으로, 모션 벡터 오프셋의 절대값은 거리 인덱스를 통해 획득될 수 있다. 예를 들어, 인코더는 인코더와 디코더 간에 미리 정의된 테이블에 기초하여 특정 거리에 대응하는 거리 인덱스를 시그널링할 수 있다. 또한, 디코더는 인코더와 디코더 간에 미리 정의된 테이블 및 수신된 거리 인덱스에 기초하여 모션 벡터 오프셋의 절대값을 결정할 수 있다.
또한, 모션 벡터 오프셋의 부호는 부호 인덱스를 통해 획득될 수 있다. 부호 인덱스는 모션 벡터를 나타내는 좌표 (x, y)에서 x축 성분 및 y축 성분 각각에 대응하는 부호를 포함하는 부호 세트를 지시할 수 있다. 예를 들어, 특정 부호 인덱스에 매핑되는 특정 부호 세트를 포함하는 부호 정보 테이블이 관리될 수 있다. 부호 정보 테이블은 인코더 및 디코더 간에 동일한 테이블일 수 있다.
다음으로, 디코더는 보정된 모션 벡터에 기초하여 현재 블록을 복원할 수 있다. 디코더는 보정된 모션 벡터에 기초하여 현재 블록의 예측자를 생성할 수 있다. 또한, 현재 블록의 예측 모드가 전술한 머지 모드인 경우, 디코더는 현재 블록의 예측자 및 현재 블록의 잔차 신호에 기초하여 현재 블록을 복원할 수 있다. 현재 블록의 예측 모드가 전술한 스킵 모드인 경우, 디코더는 잔차 신호 없이 현재 블록의 예측자에 기초하여 현재 블록을 복원할 수 있다.
한편, 전술한 바와 같이, 인터 예측은 복수의 모션 정보 세트에 기초하여 수행될 수 있다. 예를 들어, 디코더는 현재 블록의 머지 인덱스가 지시하는 머지 대상 블록의 모션 정보 세트에 기초하여 현재 블록의 모션 정보 세트를 획득할 수 있다. 이때, 머지 대상자가 복수의 모션 정보 세트에 기초하여 예측된 경우, 현재 블록의 예측에도 복수의 모션 벡터들이 사용될 수 있다. 이하에서는, 현재 블록의 복수의 모션 벡터들이 보정되는 방법에 대해 설명하도록 한다. 특히, 본 개시는 현재 블록이 머지 후보 리스트를 통해 획득된 두 개의 모션 정보 세트에 기초하여 예측된 경우를 예로 들어 설명하고 있으나, 본 개시가 이에 제한되는 것은 아니다.
본 발명의 일 실시예에 따라, 머지 대상자가 복수의 모션 정보 세트를 포함하는 경우, 복수의 모션 벡터 각각에 대응하는 복수의 모션 벡터 오프셋이 필요할 수 있다. 이 경우, 디코더는 복수의 모션 벡터 오프셋들 중 어느 하나인 특정 모션 벡터 오프셋을 먼저 획득하고, 특정 모션 벡터 오프셋에 기초하여 다른 모션 벡터 오프셋을 획득할 수 있다. 이를 통해, 모션 벡터 오프셋의 획득과 관련된 디코더의 복잡도 또는 시그널링 오버헤드를 감소시킬 수 있다. 이하에서는, 본 발명의 일 실시예에 따라, 복수의 모션 벡터들 중에서 모션 벡터 오프셋이 먼저 획득되는 모션 벡터가 결정되는 방법에 대해 도 10을 통해 설명하도록 한다.
도 10은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다. 본 발명의 일 실시예에 따라, 복수의 머지 모션 벡터들은 머지 대상자의 적어도 하나의 참조 픽쳐의 POC에 기초하여 보정될 수 있다. 디코더는 복수의 머지 모션 벡터들 각각에 대응하는 참조 픽쳐들 각각과 현재 픽쳐 사이의 POC 차이에 기초하여 복수의 머지 모션 벡터들을 보정할 수 있다. 예를 들어, 디코더는 복수의 머지 모션 벡터들 각각에 대응하는 참조 픽쳐들 각각과 현재 픽쳐 사이의 POC 차이를 비교할 수 있다. 또한, 디코더는 비교 결과에 기초하여 복수의 모션 벡터들을 보정할 수 있다. POC 차이는 현재 픽쳐의 POC를 기준으로 참조 픽쳐의 POC를 뺀 값의 절대값 또는 그 반대의 절대값을 의미할 수 있다.
일 실시예에 따라, 복수의 모션 벡터들은 제1 모션 벡터 및 제2 모션 벡터를 포함할 수 있다. 이 경우, 디코더는 제1 모션 벡터에 대응하는 제1 참조 픽쳐와 현재 픽쳐 간의 제1 POC 차이를 획득할 수 있다. 또한, 디코더는 제2 모션 벡터에 대응하는 제2 참조 픽쳐와 현재 픽쳐 간의 제2 POC 차이를 획득할 수 있다. 디코더는 제1 POC 차이와 제2 POC 차이를 비교하여, 제1 모션 벡터 및 제2 모션 벡터 중 어느 하나의 보정 값인 특정 모션 벡터 오프셋을 획득할 수 있다. 디코더는 제1 모션 벡터 및 제2 모션 벡터 중 어느 하나의 모션 벡터 오프셋을 다른 나머지 하나의 모션 벡터 오프셋 보다 먼저 획득할 수 있다.
예를 들어, 제1 POC 차이 및 제2 POC 차이 중에서 POC 차이가 더 큰 참조 픽쳐에 대응하는 모션 벡터의 모션 벡터 오프셋을 POC 차이가 더 작은 참조 픽쳐에 대응하는 모션 벡터의 모션 벡터 오프셋에 비해 먼저 획득할 수 있다. 참조 블록을 포함하는 참조 픽쳐의 POC와 현재 픽쳐의 POC 차이가 클수록, 참조 블록과 현재 블록 간의 시간적 거리 멀어지고 상관도가 낮아질 수 있기 때문이다. 이에 따라, 현재 픽쳐로부터 POC 차이가 큰 참조 픽쳐에 대응하는 모션 벡터일수록, 해당 모션 벡터의 모션 벡터 오프셋 절대값이 커질 수 있다. 디코더는 모션 벡터 오프셋의 절대값이 상대적으로 클 것으로 예상되는 특정 모션 벡터의 특정 모션 벡터 오프셋을 다른 모션 벡터 오프셋에 비해 먼저 획득할 수 있다. 구체적으로, 특정 모션 벡터 오프셋만이 디코더에게 시그널링되거나, 디코더에 의해 우선적으로 결정될 수 있다. 현재 픽쳐와 POC 차이가 상대적으로 작은 참조 픽쳐에 대응하는 모션 벡터는 특정 모션 벡터 오프셋으로부터 스케일링된 모션 벡터 오프셋에 기초하여 보정될 수 있다.
예를 들어, 제1 POC 차이가 제2 POC 차이 보다 크거나 동일한 경우, 특정 모션 벡터 오프셋은 제1 모션 벡터에 대한 보정 값일 수 있다. 반대로, 제1 POC 차이가 제2 POC 차이 보다 작은 경우, 특정 모션 벡터 오프셋은 제2 모션 벡터에 대한 보정 값일 수 있다. 이때, 제1 모션 벡터는 참조 픽쳐 리스트 L0에 대응하는 모션 벡터이고, 제2 모션 벡터는 참조 픽쳐 리스트 L1에 대응하는 모션 벡터일 수 있다.
도 10의 실시예에서, 현재 블록의 모션 정보 세트는 제1 모션 벡터(MV0)를 포함하는 제1 모션 정보 세트 및 제2 모션 벡터(MV1)를 포함하는 제2 모션 정보 세트를 포함할 수 있다. 추가적으로, 제1 모션 정보 세트는 제1 참조 픽쳐 인덱스를 포함하고, 제2 모션 정보 세트는 제2 참조 픽쳐 인덱스를 포함할 수 있다. 일 실시예에 따라, 디코더는 머지 대상자의 모션 정보 세트에 기초하여 현재 블록의 모션 정보 세트를 획득할 수 있다. 디코더는 MV0 및 MV1를 보정하여 현재 블록의 모션 벡터를 획득할 수 있다.
도 10(a)를 참조하면, MV0에 대응하는 제1 참조 픽쳐와 현재 픽쳐 간의 제1 POC 차이가 MV1에 대응하는 제2 참조 픽쳐와 현재 픽쳐 간의 제2 POC 차이 보다 크거나 동일한 경우, 디코더는 MV1에 적용되는 제2 모션 벡터 오프셋에 비해 MV0에 적용되는 제1 모션 벡터 오프셋을 먼저 획득할 수 있다. 또한, 디코더는 제1 모션 벡터 오프셋에 기초하여 MV0를 보정할 수 있다. 다음으로, 제2 모션 벡터 오프셋은 제1 모션 벡터 오프셋에 기초하여 획득될 수 있다. 또한, 디코더는 제2 모션 벡터 오프셋에 기초하여 MV1를 보정할 수 있다.
반대로, 제1 POC 차이가 제2 POC 차이 보다 작은 경우, 디코더는 제1 모션 벡터 오프셋에 비해 제2 모션 벡터 오프셋을 우선적으로 획득할 수 있다. 또한, 디코더는 제2 모션 벡터 오프셋에 기초하여 MV1를 보정할 수 있다. 다음으로, 제1 모션 벡터 오프셋은 제2 모션 벡터 오프셋에 기초하여 획득될 수 있다. 또한, 디코더는 제1 모션 벡터 오프셋에 기초하여 MV0를 보정할 수 있다.
구체적으로, 단계 S1001에서, 디코더는 현재 블록의 POC(poc_curr), 제1 참조 픽쳐의 POC(poc_RefPic0), 및 제2 참조 픽쳐의 POC(poc_RefPic1)를 획득할 수 있다. 여기에서, 제1 참조 픽쳐 및 제2 참조 픽쳐는 각각 참조 픽쳐 리스트 L0 및 L1에 대응하는 참조 픽쳐일 수 있다. 예를 들어, 디코더는 참조 픽쳐 리스트 L0에서 제1 참조 픽쳐 인덱스가 지시하는 제1 참조 픽쳐를 획득할 수 있다. 디코더는 제1 참조 픽쳐의 POC(poc_RefPic0)를 획득할 수 있다. 또한, 디코더는 참조 픽쳐 리스트 L1에서 제2 참조 픽쳐 인덱스가 지시하는 제2 참조 픽쳐를 획득할 수 있다. 디코더는 제2 참조 픽쳐의 POC(poc_RefPic1)를 획득할 수 있다.
단계 S1002에서, 디코더는 제1 참조 픽쳐의 POC와 현재 픽쳐의 POC에 기초하여 제1 POC 차이(pocDiff0)를 획득할 수 있다. pocDiff0는 poc_RefPic0로부터 poc_curr를 뺀 값의 절대값일 수 있다. 또한, 디코더는 제2 참조 픽쳐의 POC와 현재 픽쳐의 POC에 기초하여 제2 POC 차이(pocDiff1)를 획득할 수 있다. pocDiff1은 poc_RefPic1로부터 poc_curr를 뺀 값의 절대값일 수 있다.
단계 S1003에서, 디코더는 제1 POC 차이와 제2 POC 차이를 비교할 수 있다. 디코더는 제1 POC 차이가 제2 POC 차이 보다 큰지를 판단할 수 있다. 단계 S1003에서, 제1 POC 차이가 제2 POC 차이 보다 큰 경우, 디코더는 MV0에 대응하는 제1 모션 벡터 오프셋을 우선적으로 획득할 수 있다. 디코더는 제1 모션 벡터 오프셋에 기초하여 MV0를 보정할 수 있다. 다음으로, 디코더는 제1 모션 벡터 오프셋으로부터 스케일링된 제2 모션 벡터 오프셋을 생성할 수 있다. 또한, 디코더는 제2 모션 벡터 오프셋에 기초하여 MV1을 보정할 수 있다.
단계 S1003에서, 제1 POC 차이가 제2 POC 차이 보다 크지 않은 경우, 디코더는 단계 S1004와 같이 제1 POC 차이와 제2 POC 차이가 동일한지 판단할 수 있다. 단계 S1004에서, 제1 POC 차이 및 제2 POC 차이가 동일하지 않은 경우, 디코더는 MV1에 대응하는 제2 모션 벡터 오프셋을 우선적으로 획득할 수 있다. 디코더는 제2 모션 벡터 오프셋에 기초하여 MV1를 보정할 수 있다. 다음으로, 디코더는 제2 모션 벡터 오프셋으로부터 스케일링된 제1 모션 벡터 오프셋을 생성할 수 있다. 또한, 디코더는 제1 모션 벡터 오프셋에 기초하여 MV0을 보정할 수 있다.
단계 S1004에서, 제1 POC 차이 및 제2 POC 차이가 동일한 경우, 디코더는 참조 픽쳐 리스트 L0에 대응하는 MV0의 모션 벡터 오프셋을 참조 픽쳐 리스트 L1에 대응하는 MV1의 모션 벡터 오프셋 보다 먼저 획득할 수 있다. 예를 들어, 제1 POC 차이 및 제2 POC 차이가 동일한 경우, 디코더는 모션 벡터들 각각에 대응하는 참조 픽쳐 리스트를 나타내는 값에 기초하여 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터를 결정할 수 있다. 여기에서, 참조 픽쳐 리스트를 나타내는 값은 복수의 참조 픽쳐 리스트들 각각을 식별하는 인덱스일 수 있다. 예를 들어, 참조 픽쳐 리스트 L(i)는 참조 픽쳐 리스트를 나타내는 값 i를 통해 식별될 수 있다. 참조 픽쳐 리스트 L0를 나타내는 값은 '0'이고, 참조 픽쳐 리스트 L1를 나타내는 값은 '1'일 수 있다. 구체적으로, 디코더는 참조 픽쳐 리스트를 나타내는 값이 더 작은 참조 픽쳐 리스트에 대응하는 모션 벡터의 모션 벡터 오프셋을 우선적으로 획득할 수 있다. 따라서, 제1 POC 차이 및 제2 POC 차이가 동일한 경우, 디코더는 제1 모션 벡터 오프셋을 제2 모션 벡터 오프셋 보다 먼저 획득할 수 있다. 이때, 참조 픽쳐 리스트 L0는 특정 샘플에 대해 최대 하나의 모션 벡터가 사용되는 제1 상위 레벨 영역 및 특정 샘플에 대해 최대 두 개의 모션 벡터가 사용되는 제2 상위 레벨 영역에서 사용되는 리스트일 수 있다. 또한, 참조 픽쳐 리스트 L1은 특정 샘플에 대해 최대 두 개의 모션 벡터가 사용되는 제2 상위 레벨 영역에서만 사용되는 리스트일 수 있다. 즉, 참조 픽쳐 리스트 L1은 특정 샘플에 대해 최대 하나의 모션 벡터가 사용되는 제1 상위 레벨 영역에서는 사용되지 않는 리스트일 수 있다. 여기에서, 상위 레벨 영역은 현재 블록을 포함하는 슬라이스/타일 또는 픽쳐를 나타낼 수 있다.
[수학식 1]은 모션 벡터 오프셋이 가장 먼저 획득될 모션 벡터(MVl)가 결정되는 방법의 일 실시예를 나타낸다. 디코더는 [수학식 1]에 따라 MV0, MV1, ..., MVk-1 중에서 POC 차이가 가장 큰 l번째 모션 벡터 MVl을 획득할 수 있다. [수학식 1]에서, POCi는 k개의 모션 벡터들 중 i번째 모션 벡터에 대응하는 참조 픽쳐의 POC를 나타내고, POCcur는 현재 블록의 POC를 나타낸다.
[수학식 1]
즉, 단계 S1003 및 단계 S1004를 통해, 디코더는 제1 POC 차이가 제2 POC 차이 보다 크거나 동일한지 판단할 수 있다. 제1 POC 차이가 제2 POC 차이 보다 크거나 동일한 경우, 디코더는 MV0에 대응하는 제1 모션 벡터 오프셋을 우선적으로 획득할 수 있다. 또한, 디코더는 제1 모션 벡터 오프셋에 기초하여 MV0를 보정할 수 있다. 다음으로, 디코더는 MV1에 대응하는 제2 모션 벡터 오프셋을 획득할 수 있다. 또한, 디코더는 제2 모션 벡터 오프셋에 기초하여 MV1를 보정할 수 있다.
반대로, 제1 POC 차이가 제2 POC 차이 보다 작은 경우, 디코더는 MV1에 대응하는 제2 모션 벡터 오프셋을 우선적으로 획득할 수 있다. 또한, 디코더는 제2 모션 벡터 오프셋에 기초하여 MV1를 보정할 수 있다. 다음으로, 디코더는 MV0에 대응하는 제1 모션 벡터 오프셋을 획득할 수 있다. 또한, 디코더는 제1 모션 벡터 오프셋에 기초하여 MV0를 보정할 수 있다.
추가적인 실시예에 따라, 복수의 머지 모션 벡터들은 복수의 머지 모션 벡터들 각각의 크기에 기초하여 보정될 수 있다. 예를 들어, 디코더는 복수의 머지 모션 벡터들의 크기를 비교한 결과에 기초한 우선 순위에 따라, 복수의 머지 모션 벡터들을 보정할 수 있다. 모션 벡터의 크기가 클수록 참조 블록과 현재 블록 간의 공간적 거리가 멀어지고, 이에 따라 상관도가 낮아질 수 있기 때문이다. 도 10(b)를 참조하면, 디코더는 MV0 및 MV1 각각의 절대값을 획득할 수 있다. 다음으로, 디코더는 MV0와 MV1 각각의 절대값을 서로 비교할 수 있다. MV0의 절대값이 MV1의 절대값보다 크거나 동일한 경우, 디코더는 MV0에 대응하는 제1 모션 벡터 오프셋을 MV1에 대응하는 제2 모션 벡터 오프셋 보다 먼저 획득할 수 있다. MV0의 절대값이 MV1의 절대값보다 작은 경우, 디코더는 제2 모션 벡터 오프셋을 제1 모션 벡터 오프셋 보다 먼저 획득할 수 있다. [수학식 2]는 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터(MVl)가 결정되는 방법의 일 실시예를 나타낸다. [수학식 2]에서, MVi는 k개의 모션 벡터들 중 i번째 모션 벡터를 나타낸다.
[수학식 2]
도 10(c)를 참조하면, 머지 모션 벡터는 머지 모션 벡터들 각각의 크기 및 참조 픽쳐의 POC에 기초하여 보정될 수 있다. 먼저, 디코더는 제1 POC 차이와 제2 POC 차이를 비교한 결과에 기초하여, 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터를 결정할 수 있다. 예를 들어, 디코더는 전술한 단계 S1001 내지 S1003의 동작을 수행할 수 있다. 다음으로, 제1 POC 차이와 제2 POC 차이가 동일한 경우, 디코더는 MV0의 절대값과 MV1의 절대값을 비교한 결과에 기초하여 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터를 결정할 수 있다.
도 11은 본 발명의 다른 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다. 일 실시예에 따라, 디코더는 복수의 모션 벡터들 중에서 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터를, 템플릿 매칭 방법을 이용하여 결정할 수 있다. 도 11을 참조하면, 현재 블록의 너비가 W이고, 높이가 H인 경우, 디코더는 대상 블록 좌측의 W0xH 영역 및 대상 블록 상측의 WxH0 영역을 포함하는 L-형태의 템플릿을 구성할 수 있다. W0 또는 H0 중 적어도 하나는 현재 블록의 사이즈에 기초하여 결정될 수 있다. 디코더는 현재 블록(1101), 제1 참조 블록(1102) 및 제2 참조 블록(1103) 각각에 대해 L-형 템플릿을 구성할 수 있다. 이때, 제1 참조 블록(1102)은 참조 픽쳐 리스트 L0의 모션 벡터(MV0)에 의해 특정된 참조 블록일 수 있다. 또한, 제2 참조 블록(1103)은 참조 픽쳐 리스트 L1의 모션 벡터(MV1)에 의해 특정된 참조 블록일 수 있다.
다음으로, 디코더는 구성된 복수의 템플릿들 간의 값 차이에 기초하여 MV0 및 MV1 중에서 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터를 결정할 수 있다. 구체적으로 디코더는 MV0에 대응하는 템플릿과 현재 블록의 템플릿 간의 제1 템플릿 값 차이 및 MV1에 대응하는 템플릿과 현재 블록의 템플릿 간의 제2 템플릿 값 차이를 계산할 수 있다. 템플릿 간 값 차이는 전술한 SAD, 평균-정규화된(mean-normalized) SAD, 또는 SSE(sum of squared error)를 통해 계산될 수 있다. 제1 템플릿 값 차이가 제2 템플릿 값 차이 보다 크거나 동일한 경우, 디코더는 MV0에 대응하는 제1 모션 벡터 오프셋을 MV1에 대응하는 제2 모션 벡터 오프셋 보다 먼저 획득할 수 있다. 제1 템플릿 값 차이가 제2 템플릿 값 차이 보다 작은 경우, 디코더는 제2 모션 벡터 오프셋을 제1 모션 벡터 오프셋 보다 먼저 획득할 수 있다. [수학식 3]는 모션 벡터 오프셋이 우선적으로 획득될 모션 벡터(MVl)가 결정되는 방법의 일 실시예를 나타낸다. [수학식 3]에서, cost_i는 참조 블록 i의 템플릿과 현재 블록의 템플릿 간의 값 차이를 나타낸다. 구체적으로, 참조 블록 i는 k개의 모션 벡터들 중 i번째 모션 벡터에 의해 특정되는 참조 블록을 나타낸다.
[수학식 3]
추가적인 실시예에 따라, 디코더는 복수의 모션 벡터들 중에서 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터를, 머지 후보의 특성에 기초하여 결정할 수 있다. 예를 들어, 머지 대상자에 대응하는 복수의 모션 벡터들 중에서 시간적 후보로부터 스케일링된 모션 벡터가 존재하는 경우, 디코더는 시간적 후보로부터 스케일링된 모션 벡터의 모션 벡터 오프셋을 가장 먼저 획득할 수 있다. 또한, 머지 대상자에 대응하는 복수의 모션 벡터들 중에서 제로 모션 벡터가 존재하는 경우, 디코더는 제로 모션 벡터의 모션 벡터 오프셋을 가장 먼저 획득할 수 있다. 도 11을 통해 설명된 모션 벡터 결정 방법들은, 도 10을 통해 설명된 모션 벡터 결정 방법과 결합될 수 있다.
한편, 현재 블록의 모션 정보 세트는 전술한 머지 후보 리스트를 사용하는 방법과 다른 방법으로 획득될 수도 있다. 이 경우, 현재 블록의 모션 벡터는 모션 벡터 예측자(motion vector predictor, MVP)와 모션 벡터 차분 값(motion vector difference, mvd)을 통해 획득될 수 있다. 현재 블록의 MVP는 MVP 후보 리스트를 이용하여 시그널링될 수 있다. 또한, 현재 블록의 mvd 및 참조 픽쳐 인덱스가 별도로 시그널링될 수 있다. MVP 후보 리스트는 전술한 머지 후보 리스트와 유사한 방식으로 획득될 수 있다. 이러한 인터 예측 방법은 MVP 모드로 지칭될 수 있다.
일 실시예에 따라, MVP 후보 리스트는 공간적 후보 또는 시간적 후보 중 적어도 하나를 포함할 수 있다. 공간적 후보는 도 9를 통해 전술한 머지 후보 리스트와 마찬가지로, 현재 블록 주변 블록들 중 이용 가능한 주변 블록들을 기초로 구성될 수 있다. 구체적으로, 디코더는 도 9의 A0, A1, scaled A0, scaled A1을 순차적으로 탐색하여 최대 1개의 제1 공간적 후보를 생성할 수 있다. 다음으로, 디코더는 도 9의 B0, B1, B2, scaled B0, scaled B1을 순차적으로 탐색하여 최대 1개의 제2 공간적 후보를 생성할 수 있다. 여기에서, scaled A0, scaled A1, scaled B0, scaled B1는 각각에 대응하는 모션 벡터를 시간적 관계에 따라 스케일링한 모션 벡터를 나타낸다. 예를 들어, A0가 이용 가능하고, A1은 이용 가능하지 않으며, A1의 예측에 참조된 참조 픽쳐가 현재 픽쳐의 참조 픽쳐와 다른 경우, scaled A0가 제1 공간적 후보로 결정될 수 있다. 이때, 현재 픽쳐의 참조 픽쳐는 시그널링된 참조 픽쳐 인덱스에 기초하여 결정된 픽쳐일 수 있다. 또한, MVP 후보 리스트는 최대 1개의 시간적 후보를 포함할 수 있다. MVP 후보 리스트는 제로 움직임 벡터를 포함할 수 있다.
일 실시예에 따라, 인코더는 MVP 후보 리스트의 후보들 중 어느 하나를 나타내는 MVP 인덱스, mvd 및 참조 픽쳐 인덱스를 시그널링할 수 있다. 디코더는 MVP 인덱스가 지시하는 후보의 모션 벡터를 현재 블록의 MVP로 사용할 수 있다. 디코더는 획득된 MVP 및 수신된 mvd에 기초하여 현재 블록의 모션 벡터를 획득할 수 있다. 예를 들어, 현재 블록의 모션 벡터는 MVP에 mvd를 더한 값일 수 있다. 다음으로, 디코더는 모션 벡터 및 현재 블록의 참조 픽쳐에 기초하여 현재 블록을 복원할 수 있다.
도 12는 본 발명의 일 실시예에 따라 현재 블록의 MVP 후보 리스트에 포함된 후보의 모션 벡터 스케일링을 나타내는 도면이다. 이하에서, MVP 후보 블록은 MVP 후보 리스트가 포함하는 후보들 중 어느 하나에 대응하는 후보 블록을 나타낸다. 도 10을 참조하면, 현재 픽쳐와 현재 블록이 참조하는 픽쳐 간의 제1 시간적 거리(tb)가 획득될 수 있다. 또한, MVP 후보 블록을 포함하는 픽쳐와 MVP 후보 블록이 참조하는 픽쳐 간의 제2 시간적 거리(td)가 획득될 수 있다. 디코더는 제1 시간적 거리(tb)를 제2 시간적 거리(td)로 나눈 값에 기초하여 해당 MVP 후보 블록에 대응하는 모션 벡터를 스케일링할 수 있다. 이때, 시간적 거리 tb, td는 POC 차이로 표현될 수 있다. 또한, 디코더는 나눗셈 연산을 사용하지 않기 위해 고정 소수점 방식을 사용하여 tb 및 td를 계산할 수 있다. 고정 소수점 방식은 오프셋 값과 쉬프트 연산을 사용하는 방법일 수 있다.
한편, 전술한 모션 벡터 오프셋은 미리 정의된 규칙에 따라 디코더에 의해 획득될 수 있다. 본 발명의 일 실시예에 따라, 디코더는 템플릿 매칭 방법에 기초하여 모션 벡터 오프셋을 획득할 수 있다. 예를 들어, 디코더는 머지 인덱스를 통해 획득된 머지 모션 벡터에 의해 특정된 블록을 기준으로 주변 샘플 값들을 탐색하여 모션 벡터 오프셋을 획득할 수 있다. 또한, 디코더는 획득된 모션 벡터 오프셋에 기초하여 머지 모션 벡터를 보정할 수 있다. 이를 통해, 시그널링 오버헤드를 감소시킬 수 있다.
도 13은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 도면이다. 일 실시예에 따라, 현재 블록이 쌍예측 블록인 경우, 디코더는 쌍예측 블록에 사용되는 복수의 모션 벡터들을 보정할 수 있다. 예를 들어, 현재 블록이 쌍예측 블록인 경우, 제1 참조 픽쳐 리스트(L0)에 대응하는 제1 초기 모션 벡터(MV0) 및 제2 참조 픽쳐 리스트(L1)에 대응하는 제2 초기 모션 벡터(MV1)가 현재 블록의 예측에 이용될 수 있다. 여기에서, 초기 모션 벡터는 전술한 머지 인덱스에 기초하여 유도된 머지 모션 벡터를 나타낼 수 있다. 디코더는 제1 초기 모션 벡터(MV0) 및 제2 초기 모션 벡터(MV1)를 각각 보정하여, 제1 보정된 모션 벡터(MV0') 및 제2 보정된 모션 벡터(MV1')를 생성할 수 있다.
본 발명의 일 실시예에 따라, 제1 초기 모션 벡터(MV0) 및 제2 초기 모션 벡터(MV1)는 템플릿 매칭 방법에 기초하여 보정될 수 있다. 디코더는 제1 초기 모션 벡터에 의해 지시되는 제1 참조 블록과 제2 초기 모션 벡터에 의해 지시되는 제2 참조 블록에 기초하여 제1 템플릿을 획득할 수 있다. 예를 들어, 제1 템플릿은 제1 참조 블록(P0)과 제2 참조 블록(P1) 간의 샘플 별 평균일 수 있다. 즉, 제1 템플릿의 특정 샘플은 (p0+p1)/2의 형태로 표현될 수 있다. 이때, p0, p1은 각각 제1 참조 블록(P0) 및 제2 참조 블록(P1) 내에서 서로 대응하는 위치의 샘플들일 수 있다. 또한, 디코더는 (p0+p1)>>1와 같이, 비트 쉬프트 연산을 사용하여 제1 템플릿을 구성할 수 있다. 이를 통해, 디코더는 나눗셈 연산 없이 제1 템플릿을 구성할 수 있다.
추가적인 실시예에 따라, 현재 블록에 대해 가중 예측 방법이 이용되는 경우, 제1 템플릿은 가중치 값이 적용된 제1 참조 블록과 제2 참조 블록의 샘플 별 합일 수도 있다. 이 경우, 제1 템플릿은 [수학식 4]와 같이 표현될 수 있다. [수학식 4]에서, W0, O0는 각각 참조 블록 P0에 적용되는 가중치 값 및 오프셋 값일 수 있다. 또한, W1, O1는 각각 참조 블록 P1에 적용되는 가중치 값 및 오프셋 값일 수 있다. w_shift는 비트 쉬프트 연산을 위한 파라미터를 나타낸다. 이때, 가중치 값 및 오프셋 값이 결정되는 방법에 대해서는 도 18 내지 도 25를 통해 후술하도록 한다.
[수학식 4]
다음으로, 디코더는 제1 템플릿에 기초하여 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 보정할 수 있다. 일 실시예에 따라, 디코더는 제1 초기 모션 벡터에 의해 지시되는 제1 참조 블록을 기준으로 제1 비교 대상 영역을 설정할 수 있다. 또한, 디코더는 제1 비교 대상 영역 내에서 구성 가능한 복수의 비교 대상 템플릿들과 제1 템플릿을 비교할 수 있다. 이때, 비교 대상 템플릿은 제1 템플릿과 크기 및 모양이 동일하게 구성될 수 있다. 또한, 비교 대상 템플릿은 정수 픽셀 또는 서브펠(1/2, 1/4, 1/16-pel) 단위의 픽셀들로 구성될 수 있다.
일 실시예에 따라, 디코더는 제1 비교 대상 영역 내에서 구성 가능한 비교 대상 템플릿들 중에서 제1 템플릿과의 값 차이가 가장 작은 제2 템플릿을 결정할 수 있다. 또한, 디코더는 제2 템플릿에 기초하여 제1 보정된 모션 벡터(MV0')를 생성할 수 있다. 구체적으로, 제1 초기 모션 벡터(MV0)와 제1 보정된 모션 벡터(MV0') 간의 모션 벡터 오프셋은 제1 참조 블록의 위치를 나타내는 좌표 값과 제2 템플릿의 위치를 나타내는 좌표 값 사이의 차이일 수 있다.
이때, 템플릿 간의 값 차이는 SAD(Sum of Absolute Difference) 또는 평균-정규화된 SAD를 통해 계산될 수 있다. SAD는 [수학식 5]와 같이 나타낼 수 있다. 또한, 평균-정규화된 SAD는 [수학식 6]과 같이 나타낼 수 있다. [수학식 5] 및 [수학식 6]에서, M은 템플릿 또는 블록의 너비이고, N은 템플릿 또는 블록의 높이를 나타낸다. 또한, T(x, y)는 템플릿의 샘플을 나타내고, P(x, y)는 비교 대상 블록의 샘플을 나타낸다. mean(X)은 'X'의 평균값을 출력하는 함수일 수 있다.
[수학식 5]
[수학식 6]
구체적인 실시예에 따라, 디코더는 수학식의 SAD 또는 SAD'가 최소가 되는 제2 템플릿에 기초하여 제1 보정된 모션 벡터(MV0')를 생성할 수 있다. 또한, 제1 보정된 모션 벡터(MV0')가 지시하는 참조 블록에 기초하여 현재 블록을 복원할 수 있다.
제1 초기 모션 벡터(MV0)를 보정하여 제1 보정된 모션 벡터(MV0')를 생성하는 방법과 관련하여 전술한 방법은 제2 초기 모션 벡터(MV1)를 보정하는 제2 보정된 모션 벡터(MV1')를 생성하는 방법에도 동일 또는 상응하는 방법으로 적용될 수 있다.
도 14는 본 발명의 일 실시예에 따라 초기 모션 벡터를 기준으로 모션 벡터를 보정하기 위한 탐색 위치를 나타내는 도면이다. 도 14(a)에서, P0는 초기 모션 벡터에 의해 지시되는 샘플 위치를 나타낸다. 본 발명의 일 실시예에 따라, 디코더는 P0를 기준으로 P0와 인접한 8개의 샘플 위치(P1, P2, P3, P4, P5, P6, P7, P8) 각각에 대응하는 8개의 템플릿을 구성할 수 있다. 또한, 디코더는 8개의 템플릿들 중에서 초기 모션 벡터에 기초하여 생성된 현재 블록의 템플릿과 템플릿 간 값 차이가 가장 작은 하나의 템플릿을 결정할 수 있다. 또한, 디코더는 상기 하나의 템플릿에 대응하는 샘플 위치에 기초하여 보정된 모션 벡터를 생성할 수 있다.
예를 들어, P0를 지시하는 초기 모션 벡터는 좌표 값 (x, y)로 표시될 수 있다. 이때, P5(P0로부터 x축 방향으로 +1만큼 이동한 위치)에 대응하는 템플릿과 현재 블록의 템플릿 간의 값 차이가 가장 작은 경우, 디코더는 초기 모션 벡터 (x, y)를 (x+1, y)로 보정할 수 있다. 다른 일 실시예에 따라, P6(P0로부터 x축 방향으로 -1만큼, y축 방향으로 +1만큼 이동한 위치)에 대응하는 템플릿과 현재 블록의 템플릿 간의 값 차이가 가장 작은 경우, 디코더는 초기 모션 벡터 (x, y)를 (x-1, y+1)로 보정할 수 있다. 또 다른 일 실시예에 따라, P0에 대응하는 템플릿과 현재 블록의 템플릿 간의 값 차이가 가장 작은 경우, 초기 모션 벡터는 업데이트되지 않을 수 있다.
도 14(b)는 도 14(a)에서 설명된 샘플 위치들 중 일부만 탐색되는 실시예를 나타낸다. 본 발명의 일 실시예에 따라, 디코더는 P0에 인접한 샘플 위치들 중에서 일부에 대해서만 템플릿 매칭을 수행할 수 있다. P0에 인접한 샘플 전부에 대한 템플릿 매칭 코스트 계산을 수행하는 경우, 디코딩 연산량이 과도해지고 디코딩 복잡도가 증가할 수 있기 때문이다. 구체적으로, P0를 기준으로 수직, 수평 방향에 인접한 4개의 샘플 위치들(P2, P4, P5, P7) 각각에 대응하는 4개의 템플릿들에 기초하여 모션 벡터 보정이 수행될 수 있다. 즉, P0를 기준으로 대각 방향에 인접한 샘플 위치들(P1, P3, P6, P8) 각각에 대응하는 템플릿들은 탐색 대상에서 제외될 수 있다.
다른 일 실시예에 따라, 디코더는 대각 방향에 인접한 샘플 위치들(P1, P3, P6, P8) 중 어느 하나에 대해 추가적으로 템플릿 매칭을 수행할 수 있다. 디코더는 기 설정된 규칙에 따라, 템플릿 매칭을 수행할 샘플 위치를 결정할 수 있다. 예를 들어, P2에 대응하는 템플릿과 현재 블록의 템플릿 간의 값 차이가 P7에 대응하는 템플릿과 현재 블록의 템플릿 간의 값 차이 보다 작고, P5에 대응하는 템플릿과 현재 블록의 템플릿 간의 값 차이가 P4에 대응하는 템플릿과 현재 블록의 템플릿 간의 값 차이 보다 작은 경우, 디코더는 P2, P4, P5, P7 및 P3에 대해 템플릿 매칭을 수행할 수 있다.
도 13에서, 현재 블록의 예측을 위한 템플릿은 현재 블록의 너비 및 높이와 동일한 크기로 도시되어 있다. 본 발명의 다른 일 실시예에 따르면, 현재 블록의 템플릿은 현재 블록의 크기 및/또는 모양과 다르게 구성될 수 있다. 예를 들어, 현재 블록의 템플릿의 크기는 현재 블록의 크기에 비해 확장될 수 있다. 이를 통해, 템플릿 매칭의 정확도가 향상될 수 있다.
도 15는 본 발명의 일 실시예에 따라 모션 벡터 보정을 위한 템플릿 구성 방법을 나타내는 도면이다. 일 실시예에 따라, 현재 블록의 너비는 W이고 높이는 H일 수 있다. 이 경우, 초기 모션 벡터가 지시하는 샘플 위치를 기준으로 너비가 W이고, 높이가 H인 현재 블록과 동일한 모양의 기준 블록(1501)이 구성될 수 있다. 또한, 초기 모션 벡터가 지시하는 샘플 위치가 기준 블록 내에서 가장 좌상단 샘플이 되도록 구성될 수 있다. 이때, 기준 블록(1501)의 좌측 경계 및 기준 블록의 상측 경계가 확장된 모양의 템플릿(1502)이 구성될 수 있다. 구체적으로, 기준 블록(1501)의 좌측 경계로부터 블록 바깥쪽으로 확장된 너비(W0) 및 기준 블록(1501)의 상측 경계로부터 블록 바깥쪽으로 확장된 높이(H0)는 기준 블록(1501)의 사이즈에 기초하여 결정될 수 있다. 디코더가 확장된 템플릿을 사용하는 경우에도, 디코더는 도 13 내지 14를 통해 설명된 방법과 동일 또는 상응하는 방법으로 초기 모션 벡터를 보정할 수 있다.
도 16은 본 발명의 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 흐름도이다. 전술한 바와 같이 현재 블록은 복수의 모션 정보 세트에 기초하여 예측될 수 있다. 도 16의 실시예에서, 현재 블록은 k개의 모션 벡터들에 기초하여 예측될 수 있다. 디코더는 k개의 초기 모션 벡터들을 템플릿 매칭 방법을 이용하여 보정할 수 있다. 또한, 디코더는 k개의 보정된 모션 벡터들에 기초하여 현재 블록의 최종 예측 블록을 생성할 수 있다. 이하에서는, k개의 초기 모션 벡터들이 보정되는 방법에 대해 구체적으로 설명하도록 한다.
일 실시예에 따라, 초기 모션 벡터인 MV0, MV1, …, MVk-1 각각에 대응하는 복수의 참조 블록에 기초하여 현재 블록의 템플릿이 구성될 수 있다. 다음으로, MV0, MV1, …, MVk-1는 현재 블록의 템플릿에 기초하여 보정될 수 있다. 예를 들어, 디코더는 MV0를 기초로 설정된 비교 대상 영역 내의 비교 대상 템플릿들 중에서 현재 블록의 템플릿과 템플릿 값 차이가 가장 작은 템플릿에 기초하여 MV0'를 생성할 수 있다. 이때, 디코더는 초기 모션 벡터 별로 반복 차수 값(iteration)을 증가시키면서 보정된 모션 벡터를 생성할 수 있다. 반복 차수 값에 따라 비교 대상 영역을 설정하는 기준 모션 벡터가 변경될 수 있다.
구체적으로, 각 반복 차수 마다 기준 모션 벡터가 지시하는 샘플 위치를 기준으로 도 14를 통해 설명된 복수의 샘플 위치들 각각에 대응하는 복수의 비교 대상 템플릿들이 구성될 수 있다. 이때, 현재 반복 차수의 기준 모션 벡터는 이전 반복 차수를 통해 보정된 모션 벡터일 수 있다. 반복 차수 값이 '0'인 경우, 기준 모션 벡터는 초기 모션 벡터일 수 있다. 반복 차수 마다, 디코더는 복수의 비교 대상 템플릿 각각과 현재 블록의 템플릿 간의 값 차이를 계산할 수 있다. 또한, 디코더는 템플릿 간의 값 차이가 가장 작은 비교 대상 템플릿에 기초하여 현재 반복 차수의 보정된 모션 벡터를 생성할 수 있다. 다음으로, 현재 반복 차수 값이 기 설정된 최대 반복 회수(max_iteration) 보다 작은 경우, 디코더는 현재 반복 차수의 보정된 모션 벡터를 기준으로 다음 반복 차수의 템플릿 매칭을 수행할 수 있다. 초기 모션 벡터는 전술한 방식으로 반복 차수 값이 기 설정된 최대 반복 회수(max_iteration)가 될 때까지, 반복적으로 보정될 수 있다.
추가적인 실시예에 따라, 모션 벡터 보정은 정수 픽셀 단위 및 서브펠 단위(1/2, 1/4, 1/16-pel)에서 수행될 수 있다. 먼저, 디코더는 i번째 초기 모션 벡터(MVi)로부터 정수 픽셀 단위에서 보정된 모션 벡터(MVi')를 생성할 수 있다. 다음으로, 디코더는 정수 픽셀 단위에서 보정된 모션 벡터(MVi')를 기준 모션 벡터로 사용하여 서브펠 단위의 모션 벡터를 업데이트할 수 있다. 이때, 디코더는 정수 픽셀 단위에서 모션 벡터를 보정하는 방식과 마찬가지로 P0와 인접한 서브펠 단위의 복수의 샘플 위치 각각에 대응하는 템플릿들을 구성할 수 있다. 또한, 디코더는 구성된 템플릿에 기초하여 서브펠 단위의 모션 벡터 보정을 수행할 수 있다.
전술한 템플릿 매칭에 기반한 모션 벡터 보정 방법은 디코더에서 반복적으로 메모리에 접근하기 때문에, 디코더의 복잡도를 증가시킬 수 있다. 이에 따라, 디코더의 복잡도 증가를 완화시키기 위해, 복수의 모션 벡터들이 하나의 오프셋에 기초하여 보정되는 방법이 사용될 수 있다. 이 경우, 복수의 초기 모션 벡터들 중에서 모션 벡터 오프셋이 가장 먼저 획득되는 제1 초기 모션 벡터의 모션 벡터 오프셋이 '0'인 경우, 나머지 초기 모션 벡터들도 보정되지 않을 수 있다. 이때, 복수의 초기 모션 벡터들 중에서 모션 벡터 오프셋이 가장 먼저 획득되는 대상은 전술한 도 10 내지 도 11을 통해 설명 방법으로 결정될 수 있다.
도 17은 본 발명의 다른 일 실시예에 따라 모션 벡터가 보정되는 방법을 나타내는 흐름도이다. 전술한 바와 같이 현재 블록은 복수의 모션 정보 세트에 기초하여 예측될 수 있다. 도 17의 실시예에서, 현재 블록은 k개의 모션 벡터들에 기초하여 예측될 수 있다.
먼저, 디코더는 모션 벡터 오프셋이 우선적으로 획득되는 모션 벡터를 결정할 수 있다. 복수의 초기 모션 벡터들 중에서 모션 벡터 오프셋이 가장 먼저 획득되는 대상은 전술한 도 10 내지 도 11을 통해 설명 방법으로 결정될 수 있다. 도 17을 참조하면, 디코더는 모션 벡터 오프셋이 가장 먼저 획득되는 MVl을 결정할 수 있다.
다음으로, 디코더는 도 16을 통해 전술한 방법에 따라 MVl을 보정할 수 있다. 예를 들어, 초기 모션 벡터인 MV0, MV1, …, MVk-1 각각에 대응하는 복수의 참조 블록에 기초하여 현재 블록의 템플릿이 구성될 수 있다. 또한, 디코더는 MVl를 기초로 설정된 비교 대상 영역 내의 비교 대상 템플릿들 중에서 현재 블록의 템플릿과 템플릿 값 차이가 가장 작은 템플릿에 기초하여 MVl에 대응하는 모션 벡터 오프셋을 획득할 수 있다. 디코더는 MVl에 대응하는 모션 벡터 오프셋에 기초하여 MVl'를 생성할 수 있다.
다음으로, 디코더는 MVl이 보정되었는지 판단할 수 있다. MVl이 보정되지 않은 경우, 디코더는 초기 모션 벡터인 MV0, MV1, …, MVk-1를 최종 모션 벡터로 사용하여 현재 블록을 예측할 수 있다. MVl에 대응하는 모션 벡터 오프셋이 '0'인 경우이기 때문이다. 반대로, MVl이 보정된 경우, 디코더는 도 16에서와 같이 MVl을 제외한 초기 모션 벡터들을 순차적으로 보정할 수 있다. 예를 들어, l이 2인 경우, MV2가 보정된 경우, MV2를 제외한 MV0, MV1, MV3, …,MVk-1에 대하여 순차적으로 보정이 수행될 수 있다.
또한, MVl을 제외한 초기 모션 벡터들을 순차적으로 보정하는 과정에서 i번째 모션 벡터가 보정되지 않은 경우, 디코더는 모션 벡터 보정을 조기 종료할 수 있다. 예를 들어, 디코더는 MVl 및 (i+1)번째 이전의 모션 벡터들은 보정된 모션 벡터를 사용하고, (i+1)번째부터 k번째까지의 모션 벡터들은 초기 모션 벡터를 사용하여 현재 블록을 예측할 수 있다.
추가적인 실시예에 따라, k개의 초기 모션 벡터가 전부 보정되고, 반복 차수가 최대 반복 회수(max_iteration) 보다 작은 경우, 디코더는 현재 블록의 템플릿을 업데이트할 수 있다. 이 경우, 디코더는 보정된 모션 벡터들 각각에 대응하는 복수의 참조 블록에 기초하여 현재 블록의 템플릿을 업데이트할 수 있다. 즉, 이전 반복 차수를 통해 보정된 모션 벡터들을 이용하여 현재 반복 차수에서 사용되는 현재 블록의 템플릿이 최대 max_iteration 만큼 반복적으로 업데이트될 수 있다. 다른 추가적인 일 실시예에 따라, 최초 보정 라운드에서는 MVl 또는 다른 모션 벡터들의 보정 여부에 따라 보정 알고리즘이 조기 종료되는 방법이 사용되지 않도록 설정될 수 있다. 조기 종료 사용 여부는 현재 블록의 크기에 따라 적응적으로 결정될 수도 있다.
이하에서는, 본 발명의 일 실시예에 따라, 참조 블록에 가중치 값 및 오프셋 값을 적용하는 가중 예측 방법에 대해 설명하도록 한다.
도 18은 본 발명의 일 실시예에 따라 하나의 모션 정보 세트를 사용하는 가중 예측 방법을 나타내는 도면이다. 전술한 바와 같이 현재 블록의 인터 예측에 사용되는 참조 블록은 현재 픽쳐와 POC가 다른 픽쳐에서, 현재 블록과 유사도가 높은 블록을 탐색하는 방식으로 결정될 수 있다. 이때, 현재 픽쳐와 POC가 다른 픽쳐는 현재 픽쳐 보다 POC가 앞선 과거 방향의 픽쳐이거나, 현재 픽쳐 보다 POC가 후속하는 미래 방향의 픽쳐일 수 있다. 이때, 현재 블록과 유사도가 높은 블록은 정수 픽셀 단위 또는 서브펠 단위(1/2, 1/4, 1/16-pel)로 탐색될 수 있다.
본 발명의 일 실시예에 따라, 특정 블록의 모션 정보 세트는 쌍예측 정보를 포함할 수 있다. 여기에서, 쌍예측 정보는 해당 블록이 두 개의 참조 픽쳐 리스트를 모두 사용하여 예측된 블록인지 나타내는 정보일 수 있다. 예를 들어, 인코더는 쌍예측 정보를 시그널링할 수 있다. 또한, 모션 정보 세트는 참조 픽쳐 리스트, 참조 픽쳐 인덱스 및 모션 벡터를 포함할 수 있다. 이하, 도 18 내지 도 26을 통해 설명되는 실시예에서, 모션 벡터 및 초기 모션 벡터는 전술한 머지 후보 리스트로부터 머지 인덱스에 기초하여 유도된 머지 모션 벡터를 나타낼 수 있다.
추가적인 실시예에 따라, 모션 정보 세트는 단/양방향 정보를 포함할 수 있다. 단/양방향 정보는 해당 블록이 현재 픽쳐의 POC를 기준으로 과거 또는 미래 중 어느 하나의 방향의 픽쳐에 기초하여 예측된 것인지 또는 양방향의 픽쳐에 기초하여 예측된 것인지를 나타내는 정보일 수 있다.
본 발명의 일 실시예에 따라, 디코더는 참조 블록에 가중치 값 및 오프셋 값을 적용하는 가중 예측 방법을 사용하여 현재 블록을 예측할 수 있다. 이때, 가중 예측 방법은 제1 가중 예측 방법과 제2 가중 예측 방법으로 구분될 수 있다. 먼저, 제1 가중 예측 방법에서, 가중 예측의 사용 여부 및 가중 파라미터 세트는 PPS 단위로 시그널링될 수 있다. 이하에서, 가중 파라미터 세트는 참조 블록에 적용되는 가중치 값 및 오프셋 값 중 적어도 하나를 포함하는 용어로 사용될 수 있다. 다음으로, 제2 가중 예측 방법에서, 가중 예측의 사용 여부는 SPS 단위로 시그널링될 수 있다. 또한, 제2 가중 예측 방법에서, 가중 파라미터 세트는 코딩 유닛 별로 시그널링될 수 있다. 제1 가중 예측 방법과 제2 가중 예측 방법은 하나의 코딩 유닛에 대해 중복적으로 적용되지 않을 수 있다. 예를 들어, 제1 가중 예측 방법이 적용되지 않은 픽쳐가 포함하는 코딩 유닛들에 대해 제2 가중 예측 방법이 적용될 수 있다.
일 실시예에 따라, 제2 가중 예측 방법은 코딩 유닛의 크기가 기 설정된 크기보다 크거나, 코딩 유닛의 샘플 개수가 기 설정된 개수보다 많은 경우에만 사용될 수 있다. 제2 가중 예측 방법에서 가중치 값은 기 설정된 테이블의 인덱스(gbi_idx[x0][y0])를 통해 지시될 수 있다. 단일 예측에 대한 가중 예측의 사용 여부는 weighted_pred_flag로 지시될 수 있다. 쌍예측에 대한 가중 예측의 사용 여부 weighted_bipred_flag를 통해 지시될 수 있다. 이하에서는, 제1 가중 예측 방법에 기반하여 본 발명의 실시예들을 설명하고 있으나 본 개시가 이에 제한되는 것은 아니다. 후술할 실시예들에 대해 전술한 제2 가중 예측 방법이 동일 또는 상응하는 방법으로 적용될 수 있다.
도 18에서, P0는 참조 블록의 샘플 값, W0는 가중치 값, O0는 오프셋 값을 나타낸다. 또한, Wshift는 비트 쉬프트 연산을 위한 파라미터를 나타낸다. 디코더는 수신된 비트스트림에 기초하여 가중 예측의 사용 여부를 나타내는 정보를 획득할 수 있다. 또한, 디코더는 가중 예측의 사용 여부를 나타내는 정보에 기초하여 현재 블록을 예측할 수 있다.
도 19는 본 발명의 일 실시예에 따라 쌍예측된 블록의 가중 예측 방법을 나타내는 도면이다. 본 발명의 일 실시예에 따라, 현재 블록은 제1 참조 픽쳐 리스트(L0)에 기반한 픽쳐에 포함된 참조 블록(P0) 및 제2 참조 픽쳐 리스트(L1)에 기반한 픽쳐에 포함된 참조 블록(P1)에 기초하여 예측될 수 있다. 도 19에서, W0, O0는 각각 참조 블록 P0에 적용되는 가중치 값 및 오프셋 값일 수 있다. 또한, W1, O1는 각각 참조 블록 P1에 적용되는 가중치 값 및 오프셋 값일 수 있다. Wshift는 비트 쉬프트 연산을 위한 파라미터를 나타낸다. 디코더는 비트스트림에 기초하여 해당 정보를 획득하고 현재 블록을 예측할 수 있다.
도 20은 본 발명의 일 실시예에 따른 디코더가 가중 예측을 사용하여 현재 블록을 예측하는 방법을 설명하는 흐름도이다. 도 20(a)의 단계 S2001에서, 디코더는 초기 모션 벡터 및 가중 예측 관련 정보를 획득할 수 있다. 이때, 디코더는 초기 모션 벡터 및 가중 예측 관련 정보는 수신된 비트스트림으로부터 획득할 수 있다. 단계 S2003에서, 디코더는 단계 S2001에서 획득한 초기 모션 벡터 및 가중 예측 관련 정보에 기초하여 제1 참조 블록을 획득할 수 있다. 단계 S2005에서, 디코더는 현재 블록의 템플릿과 제1 참조블록의 템플릿을 구성할 수 있다.
단계 S2007에서, 디코더는 템플릿 매칭 방법을 사용하여 제1 참조 블록에 적용되는 가중 파라미터 세트를 결정할 수 있다. 예를 들어, 디코더는 현재 블록의 템플릿과 제1 참조 블록의 템플릿 간의 값 차이에 기초하여 제1 참조 블록에 적용되는 가중 파라미터 세트를 결정할 수 있다. 또한, 디코더는 결정된 가중 파라미터 세트를 제1 참조 블록에 적용하여 인터 예측된 예측 블록을 생성할 수 있다. 한편, 현재 블록의 인터 예측 방법이 쌍예측인지에 따라 추가적인 템플릿 간의 값 차이 정보, 또는 복수의 참조 블록들 간의 값 차이 중 적어도 하나에 기초하여 결정된 유사도가 현재 블록의 예측에 이용될 수 있다.
도 20(b)의 단계 S2002 및 단계 S2004는 도 20(a)의 단계 S2001 및 단계 S2003과 동일할 수 있다. 디코더는 초기 모션 벡터 및 가중 예측 관련 정보를 획득하고, 이에 기초하여 제1 참조 블록을 획득할 수 있다. 단계 S2006에서, 디코더는 현재 블록의 템플릿에 기초하여 제2 참조 블록 결정을 위한 탐색을 수행할 수 있다. 예를 들어, 디코더는 현재 블록의 템플릿 및 추가 정보에 기초하여 제2 참조 블록을 결정할 수 있다. 구체적으로, 추가 정보는 비교 대상 블록의 템플릿일 수 있다. 디코더는 제1 참조 블록을 기준으로 비교 대상 영역을 설정할 수 있다. 이 경우, 디코더는 비교 대상 영역 내에서 특정 비교 대상 블록의 템플릿을 구성할 수 있다. 또한, 디코더는 특정 비교 대상 블록의 템플릿과 현재 블록의 템플릿 간의 값 차이가 기 설정된 값 이하인 경우, 특정 비교 대상 블록을 제2 참조 블록으로 사용할 수 있다.
단계 S2008에서, 디코더는 템플릿 매칭 방법을 사용하여 제1 참조 블록 및 제2 참조 블록 각각에 적용되는 가중 파라미터 세트를 결정할 수 있다. 예를 들어, 디코더는 현재 블록의 템플릿, 제1 참조 블록의 템플릿 및 제2 참조 블록의 템플릿을 사용하여 제1 참조 블록 및 제2 참조 블록 각각에 적용되는 가중 파라미터 세트를 결정할 수 있다. 구체적으로, 디코더는 현재 블록의 템플릿과 제1 참조 블록의 템플릿 간의 값 차이 또는 현재 블록의 템플릿과 제2 참조 블록의 템플릿 간의 값 차이에 기초하여 제1 참조 블록 및 제2 참조 블록 각각에 적용되는 가중 파라미터 세트를 결정할 수 있다. 추가적으로, 디코더는 현재 블록, 제1 참조 블록 및 제2 참조 블록 각각의 샘플에 기초하여 제1 참조 블록 및 제2 참조 블록 각각에 적용되는 가중 파라미터 세트를 결정할 수 있다.
도 21은 본 발명의 일 실시예에 따라 현재 블록이 단방향 예측되는 경우, 참조 블록에 적용되는 가중 파라미터 세트가 갱신되는 방법을 나타내는 도면이다. 본 발명의 일 실시예에 따라, 디코더는 현재 블록의 주변의 샘플들에 기초하여 현재 블록의 템플릿을 구성할 수 있다. 이하에서, 현재 블록의 템플릿은 제1 템플릿으로 지칭될 수 있다. 도 21에서는 현재 블록의 상측 및 좌측 주변의 샘플들을 사용하여 현재 블록의 템플릿을 구성하고 있으나, 본 개시가 이에 제한되는 것은 아니다.
또한, 디코더는 현재 블록의 모션 벡터(MV0)에 기초하여 제1 참조 블록을 결정할 수 있다. 디코더는 제1 참조 블록의 주변 샘플에 기초하여 제1 참조 블록의 템플릿인 제2 템플릿을 구성할 수 있다. 현재 블록의 템플릿이 구성된 방법과 동일 또는 상응하는 방법으로 제2 템플릿이 구성될 수 있다.
다음으로, 디코더는 제1 템플릿과 제2 템플릿 간의 값 차이를 계산할 수 있다. 여기에서, 템플릿 간의 값 차이는 SAD 및 SATD 중 어느 하나를 사용하여 결정된 값일 수 있다. 추가적인 실시예에 따라, 템플릿 간의 값 차이는 제1 템플릿에 포함된 모든 샘플들의 샘플 값 합과 제2 템플릿에 포함된 모든 샘플들의 샘플 값 합 사이의 비율에 기초하여 결정된 값일 수도 있다.
디코더는 전술한 방식으로 결정된 템플릿 간의 값 차이에 기초하여 가중 파라미터 세트를 갱신할 수 있다. 예를 들어, 시그널링된 가중치 값이 제1 가중치 값(W0)인 경우, 디코더는 템플릿 간의 값 차이에 기초하여 제1 가중치 값(W0)을 제2 가중치 값(W0')으로 변경할 수 있다. 구체적으로, 디코더는 제1 템플릿과 제2 템플릿 간의 값 차이를 기 설정된 값과 비교할 수 있다. 또한, 디코더는 비교 결과에 기초하여 제1 가중치 값(W0)을 제2 가중치 값(W0')으로 변경할 수 있다. 디코더는 제1 가중치 값(W0)을 미리 정의된 테이블에 기초하여 템플릿 간의 값 차이에 대응하는 가중치 값인 제2 가중치 값(W0')으로 변경할 수 있다. 이때, 미리 정의된 테이블은 인코더와 디코더 간에 공유되고, 공통된 테이블일 수 있다. 다음으로, 디코더는 제1 참조 블록의 샘플 값에 제2 가중치 값(W0')을 적용하여 현재 블록의 예측 블록을 생성할 수 있다. 또한, 디코더는 예측 블록에 기초하여 현재 블록을 복원할 수 있다.
추가적인 실시예에 따라, 디코더는 제1 템플릿과 제2 템플릿 간의 선형 모델을 사용하여 제1 참조 블록에 적용되는 가중 파라미터 세트를 결정할 수도 있다. 구체적으로, 디코더는 제1 템플릿과 제2 템플릿에서 샘플들의 위치 별로 샘플 값들 간의 차이를 최소화하는 선형 모델을 생성할 수 있다. 예를 들어, 선형 모델이 y=ax+b인 경우, 디코더는 가중치 값 a 및 오프셋 값 b를 제1 참조 블록에 적용할 수 있다. 또한, 선형 모델에서 x, y는 각각 제2 템플릿의 샘플 값들 및 제1 템플릿의 샘플 값들에 대응할 수 있다. 또한, 디코더는 선형 모델에 대체하여 선형/비선형 회귀 모델을 사용할 수도 있다.
추가적인 일 실시예에 따라, 디코더는 미리 정의된 테이블에 기초하여 획득된 템플릿 간의 값 차이에 대응하는 가중 파라미터 세트를 결정할 수도 있다. 추가적인 실시예에 따라, 제1 참조 블록에 적용되는 오프셋 값은 가중치 값 및 모션 벡터의 변화량에 따라 기 설정된 범위 내의 오프셋 값으로 갱신될 수도 있다.
추가적인 실시예에 따라, 제1 템플릿과 제2 템플릿 간의 값 차이에 따라, 가중 예측 방법의 사용 여부가 결정될 수도 있다. 예를 들어, 템플릿 간의 값 차이가 기 설정된 값 이하인 경우, 가중 예측 방법이 사용되지 않을 수 있다. 반대로, 템플릿 간의 값 차이가 기 설정된 값 이상인 경우, 가중 예측 방법이 사용될 수 있다.
한편, 도 21에서는 제1 참조 블록에 적용되는 가중 파라미터 세트를 갱신하는 방법에 대해 설명하고 있으나, 현재 블록의 모션 벡터도 가중 파라미터 세트를 갱신하는 방법과 동일 또는 상응하는 방법으로 보정될 수 있다. 본 발명의 일 실시예에 따라, 도 9 내지 도 17을 통해 설명한 모션 벡터 보정이 전술한 가중 파라미터 세트의 갱신과 함께 수행될 수 있다.
예를 들어, 디코더는 현재 블록의 모션 벡터, 참조 블록에 적용되는 가중치 값, 또는 참조 블록에 적용되는 오프셋 값 중에서 적어도 하나를 갱신할 수 있다. 디코더는 현재 블록의 템플릿과 참조 블록의 템플릿에 기초하여 현재 블록의 모션 벡터, 참조 블록에 적용되는 가중치 값, 또는 참조 블록에 적용되는 오프셋 값 중에서 적어도 하나를 갱신할 수 있다.
도 22는 본 발명의 일 실시예에 따라 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다. 본 발명의 일 실시예에 따라, 인코더는 현재 블록의 모션 벡터(MV0)에 의해 지시되는 제1 참조 블록 보다 현재 블록과 유사도가 높은 추가 참조 블록이 존재함을 나타내는 추가 참조 플래그를 시그널링할 수 있다. 이때, 추가 참조 플래그는 1비트일 수 있다. 디코더는 추가 참조 플래그에 기초하여 현재 블록의 모션 벡터를 보정할지를 결정할 수 있다. 예를 들어, 추가 참조 플래그가 비활성화된 경우, 디코더는 제1 참조 블록에 기초하여 현재 블록의 예측 블록을 생성할 수 있다.
반면, 추가 참조 플래그가 활성화된 경우, 디코더는 현재 블록과 제1 참조 블록에 비해 더 유사한 추가 참조 블록을 탐색하여 현재 블록의 모션 벡터를 보정할 수 있다. 즉, 디코더는 참조 픽쳐 내에서 제1 참조 블록이 아닌 추가 참조 블록을 지시하는 보정된 모션 벡터(MV0'')를 획득할 수 있다. 이때, 추가 참조 블록은 제1 참조 블록의 위치에 기초하여 탐색될 수 있다. 예를 들어, 디코더는 제1 참조 블록의 위치를 기준으로 비교 대상 영역을 설정할 수 있다. 이 경우, 디코더는 비교 대상 영역 내에서 특정 비교 대상 블록의 템플릿을 구성할 수 있다. 또한, 디코더는 특정 비교 대상 블록의 템플릿과 현재 블록의 템플릿을 비교하여 기 설정된 값 이하인 경우, 특정 비교 대상 블록을 추가 참조 블록으로 사용할 수 있다.
도 22를 참조하면, 디코더는 비교 대상 영역 내의 비교 대상 블록들 각각의 템플릿과 제1 템플릿을 비교하여, 템플릿 간의 값 차이가 가장 작은 제2 참조 블록을 획득할 수 있다. 이때, 디코더는 정수 픽셀, 1/2-pel, 1/4-pel 또는 1/16-pel 단위로 템플릿 간의 값 차이가 가장 낮은 제2 참조 블록을 획득할 수 있다. 또한, 현재 블록에 대해 가중 예측 방법이 사용되는 경우, 디코더는 제1 참조 블록과 제2 참조 블록 간의 값 차이에 기초하여 제2 참조 블록에 적용되는 가중 파라미터 세트를 획득할 수 있다. 예를 들어, 디코더는 제1 참조 블록과 제2 참조 블록 간의 값 차이에 기초하여 제2 참조 블록에 적용되는 가중치 값(W0'')을 결정할 수 있다. 이때, 도 21을 통해 설명된 템플릿 간의 값 차이 결정 방법 및 템플릿 간의 값 차이에 기반한 가중 예측 방법이 동일 또는 상응하는 방법으로 적용할 수 있다. 예를 들어, 디코더는 현재 블록의 제1 템플릿, 제1 참조 블록의 제2 템플릿, 또는 제2 참조 블록의 제3 템플릿 중 적어도 둘 간의 값 차이에 기초하여 제2 참조 블록에 적용되는 가중치 값(W0'')을 결정할 수 있다.
또한, 디코더는 제1 참조 블록 및 제2 참조 블록 중 적어도 하나에 기초하여 현재 블록을 예측할 수 있다. 예를 들어, 디코더는 제1 참조 블록의 샘플 값에 제1 가중치 값(W0)을 적용하여 현재 블록의 제1 예측 블록을 생성할 수 있다. 또한, 디코더는 제2 참조 블록의 샘플 값에 제2 가중치 값(W0'')을 적용하여 현재 블록의 제2 예측 블록을 생성할 수 있다. 또한, 디코더는 제1 예측 블록 또는 제2 예측 블록 중 적어도 하나에 기초하여 현재 블록을 복원할 수 있다.
추가적인 실시예에 따라, 디코더는 초기 모션 벡터(MV0) 대비 제2 참조 블록을 지시하는 보정된 모션 벡터(MV0'')의 변화량과 기 설정된 값을 비교하여 가중 예측 방법의 사용 여부를 결정할 수 있다. 또한, 초기 모션 벡터(MV0) 대비 제2 참조 블록을 지시하는 보정된 모션 벡터(MV0'')의 변화량에 따라 가중 파라미터 세트의 갱신 여부가 결정될 수도 있다.
도 23은 본 발명의 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 참조 블록에 적용되는 가중 파라미터 세트가 갱신되는 방법을 나타내는 도면이다. 본 발명의 일 실시예에 따라, 현재 블록이 쌍예측된 블록인 경우, 디코더는 2 개의 모션 정보 세트에 기초하여 현재 블록을 예측할 수 있다. 이때, 참조 픽쳐 리스트 L0에 대응하는 제1 모션 정보 세트는 제1 모션 벡터(MV0)를 포함할 수 있다. 또한, 참조 픽쳐 리스트 L1에 대응하는 제2 모션 정보 세트는 제2 모션 벡터(MV1)를 포함할 수 있다.
본 발명의 일 실시예에 따라, 디코더는 제1 모션 벡터(MV0)에 의해 지시되는 제1 참조 블록 및 제2 모션 벡터(MV1)에 의해 지시되는 제2 참조 블록을 기초로 현재 블록을 예측할 수 있다. 예를 들어, 디코더는 도 18 내지 도 22를 통해 전술한 방법으로 현재 블록의 제1 템플릿, 제1 참조 블록의 제2 템플릿 및 제2 참조 블록의 제3 템플릿을 구성할 수 있다. 다음으로, 디코더는 제1 템플릿과 제2 템플릿을 비교하여 제1 템플릿 값 차이를 결정할 수 있다. 또한, 디코더는 제1 템플릿과 제3 템플릿을 비교하여 제2 템플릿 값 차이를 결정할 수 있다. 다음으로, 디코더는 제1 템플릿 값 차이에 기초하여 제1 참조 블록에 적용되는 제1 파라미터 세트를 결정할 수 있다. 또한, 디코더는 제2 템플릿 값 차이에 기초하여 제2 참조 블록에 적용되는 제2 파라미터 세트를 결정할 수 있다. 다음으로, 디코더는 제1 파라미터 세트 및 제2 파라미터 세트에 기초하여 현재 블록을 복원할 수 있다.
도 24는 본 발명의 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다. 본 발명의 일 실시예에 따라, 현재 블록은 복수의 참조 블록에 의해 생성된 참조 블록에 기초하여 예측될 수 있다. 먼저, 디코더는 현재 블록에 대한 초기 모션 벡터(MV0, MV1)에 기초하여 제1 참조 블록 및 제2 참조 블록을 획득할 수 있다. 다음으로, 디코더는 제1 참조 블록과 제2 참조 블록에 기초하여 제5 참조 블록을 생성할 수 있다. 예를 들어, 디코더는 제1 참조 블록과 제2 참조 블록의 샘플 별 평균 또는 제5 참조블록을 생성할 수 있다.
다음으로, 디코더는 제5 참조 블록의 샘플 값들에 기초하여 초기 모션 벡터를 보정할 수 있다. 예를 들어, 디코더는 제1 참조 픽쳐와 제2 참조 픽쳐 각각에서 제5 참조 블록과 샘플 값이 유사한 블록을 탐색할 수 있다. 여기에서, 제1 참조 픽쳐 및 제2 참조 픽쳐는 초기 모션 벡터(MV0, MV1) 각각에 대응하는 참조 픽쳐일 수 있다. 디코더는 탐색을 수행하여, 제1 참조 픽쳐에서 제5 참조 픽쳐와 가장 유사한 블록인 제3 참조 블록과 제2 참조 픽쳐에서 제5 참조 픽쳐와 가장 유사한 블록인 제4 참조 블록을 획득할 수 있다. 일 실시예에 따라, 디코더는 제3 참조 블록의 위치에 기초하여 초기 모션 벡터 MV0를 MV0'으로 보정할 수 있다. 또한, 디코더는 제4 참조 블록의 위치에 기초하여 초기 모션 벡터 MV1를 MV1'으로 보정할 수 있다.
다음으로, 디코더는 제5 참조 블록과 제3 참조 블록 간의 값 차이 또는 제5 참조 블록과 제4 참조 블록 간의 값 차이 중 적어도 하나에 기초하여, 가중 예측 여부를 결정하거나 제3 참조 샘플에 적용되는 파라미터 세트 및 제4 참조 샘플에 적용되는 파라미터 세트들을 결정할 수 있다. 다음으로, 디코더는 제3 참조 샘플에 적용되는 파라미터 세트 및 제4 참조 샘플에 적용되는 파라미터 세트에 기초하여 현재 블록을 복원할 수 있다.
도 25는 본 발명의 다른 일 실시예에 따라 현재 블록이 쌍예측된 블록인 경우, 추가적으로 탐색된 참조 블록에 기초하여 현재 블록을 예측하는 방법을 나타내는 도면이다. 먼저, 디코더는 현재 블록에 대한 초기 모션 벡터(MV0, MV1)에 기초하여 제1 참조 블록 및 제2 참조 블록을 획득할 수 있다. 다음으로, 디코더는 제1 참조 블록과 제2 참조 블록에 기초하여 제5 참조 블록을 생성할 수 있다. 예를 들어, 디코더는 제1 참조 블록과 제2 참조 블록의 샘플 별 평균 또는 가중치 값이 적용된 제1 참조 블록과 제2 참조 블록의 샘플 별 합을 이용하여 제5 참조블록을 생성할 수 있다.
다음으로, 디코더는 제5 참조 블록의 샘플 값들에 기초하여 초기 모션 벡터를 보정할 수 있다. 여기에서, 제1 참조 픽쳐 및 제2 참조 픽쳐는 초기 모션 벡터(MV0, MV1) 각각에 대응하는 참조 픽쳐일 수 있다. 디코더는 탐색을 수행하여, 제1 참조 픽쳐에서 제5 참조 픽쳐와 가장 유사한 블록인 제3 참조 블록과 제2 참조 픽쳐에서 제5 참조 픽쳐와 가장 유사한 블록인 제4 참조 블록을 획득할 수 있다.
다음으로, 디코더는 현재 블록의 주변 샘플들로 구성된 제1 템플릿을 구성할 수 있다. 또한, 디코더는 제3 참조 블록 주변의 샘플들로 구성된 제2 템플릿 및 디코더는 제4 참조 블록 주변의 샘플들로 구성된 제3 템플릿을 구성할 수 있다. 다음으로, 디코더는 제1 템플릿, 제2 템플릿 및 제3 템플릿 중 어느 둘 간의 값 차이에 기초하여, 제3 참조 샘플에 적용되는 파라미터 세트 및 제4 참조 샘플에 적용되는 파라미터 세트들을 결정할 수 있다. 다음으로, 또한, 디코더는 제3 참조 샘플에 적용되는 파라미터 세트 및 제4 참조 샘플에 적용되는 파라미터 세트에 기초하여 현재 블록을 복원할 수 있다.
본 발명의 일 실시예를 따르면 인터 예측에 사용되는 모션 정보 세트를 시그널링하기 위한 효율적인 방법들이 제공될 수 있다. 일 실시예에 따라, 전술한 머지 모드, 스킵 모드, MVP 모드와 같이 현재 블록의 주변 블록들의 예측에 사용된 모션 정보 세트에 기초하여 현재 블록의 모션 정보 세트가 유도될 수 있다.
전술한 바와 같이, 현재 블록의 모션 벡터는 모션 벡터 예측자와 모션 벡터 차분 값에 기초하여 결정될 수 있다. 예를 들어, 디코더는 모션 벡터 예측자에 모션 벡터 차분 값을 더해 현재 블록의 모션 벡터를 획득할 수 있다. 일 실시예에 따라, 인코더 및 디코더는 인코더와 디코더 간에 미리 정의된 규칙에 따라 모션 벡터 예측자를 결정할 수 있다. 또한, 인코더는 결정된 모션 벡터 예측자에 기반하여 모션 벡터 차분 값을 획득할 수 있다. 또한, 인코더는 획득된 모션 벡터 차분 값을 시그널링할 수 있다. 디코더는 결정된 모션 벡터 예측자 및 모션 벡터 차분 값에 기초하여 모션 벡터를 획득할 수 있다. 전술한 방법과 같이 모션 벡터가 아닌 모션 벡터 차분 값을 시그널링하는 경우, 모션 벡터 획득에 사용되는 비트가 감소될 수 있다.
전술한 모션 벡터 예측자는 모션 벡터 예측자 후보 리스트에 기초하여 획득될 수 있다. 이때, 모션 벡터 예측자 후보 리스트는 공간적 예측자 후보와 시간적 예측자 후보로 구성될 수 있다. 또한, 인코더와 디코더는 인코더와 디코더 간에 미리 정의된 규칙에 기초하여 모션 벡터 예측자 후보 리스트를 구성할 수 있다.
본 발명의 일 실시예를 따르면, 전술한 머지 후보 리스트 및/또는 모션 벡터 예측자 후보 리스트 (이하, 후보 리스트) 내에서 후보들 간의 순서는 재 정렬될 수 있다. 즉, 후보 리스트 내에서 후보들을 지시하는 인덱스가 재정의될 수 있다. 본 개시에서, 후보 리스트 내의 후보들 간의 순서를 재 정렬하는 것은 모션 후보 재정렬(motion candidate reorder, MCR)로 지칭될 수 있다. 모션 후보 재정렬은 인코더 및 디코더 각각에 의해 미리 정의된 재정렬 규칙에 따라 수행될 수 있다. 이를 통해, 본 발명의 일 실시예에 따른 인코더 및 디코더는 비디오 신호의 부호화 효율을 향상시킬 수 있다.
일 실시예에 따라, 재정렬 규칙은 기 설정된 코스트(cost)에 따른 것일 수 있다. 예를 들어, 특정 코스트가 낮은 것부터 높은 것으로(또는 높은 것부터 낮은 것으로) 순서를 정하는 것이 재정렬 규칙일 수 있다. 예를 들어, 기 설정된 코스트는 템플릿 매칭 코스트를 나타낼 수 있다. 이하에서는, 본 발명의 일 실시예에 따른 템플릿(template) 매칭 방법에 대해 도 26을 참조하여 설명하도록 한다.
도 26은 본 발명의 일 실시예에 따른 템플릿 매칭 방법을 나타내는 도면이다. 일 실시예에 따라, 템플릿 매칭은 제1 블록의 템플릿과 제2 블록의 템플릿을 비교하는 동작일 수 있다. 즉, 인코더 및 디코더는 제1 블록의 템플릿과 제2 블록의 템플릿 간의 비교를 통해 제1 블록과 제2 블록 간의 값 차이를 결정할 수 있다. 특정 블록과 해당 블록의 템플릿 간에 기 설정된 수준 이상의 유사성이 있는 것으로 가정할 수 있기 때문이다. 예를 들어, 인코더 및 디코더는 복수의 블록의 템플릿들 간의 샘플 값 차이에 기초하여 템플릿 매칭을 수행할 수 있다.
본 발명의 일 실시예를 따라, 특정 블록의 템플릿은 해당 블록의 위치를 기준으로 기 설정된 위치와 범위의 영역 또는 해당 영역 내의 샘플들일 수 있다. 예를 들어, 특정 블록의 템플릿은 해당 블록의 경계에 인접한 주변 샘플들로 구성될 수 있다. 구체적으로, 현재 블록의 템플릿은 현재 블록의 경계에 인접한 주변 샘플들로 구성될 수 있다. 또한, 현재 블록과 비교하려는 비교 대상 블록의 템플릿은 비교 대상 블록의 경계에 인접한 주변 샘플들로 구성될 수 있다. 또한, 템플릿은 현재 블록보다 먼저 복원된 샘플들이 존재하는 영역 중에서 정해질 수 있다.
전술한 템플릿 매칭 코스트는 복수의 템플릿들 각각에서 동일한 위치에 해당하는 샘플 값 간의 차이의 합일 수 있다. 이 경우, 합이 작을수록 템플릿이 유사한 것으로 결정될 수 있다. 즉, 디코더는 합이 작을수록 템플릿이 매칭이 잘 되는 것으로 판단할 수 있다. 또한, 합이 작을수록 템플릿 매칭 코스트가 낮아질 수 있다. 또한, 템플릿 매칭은 복수의 템플릿들 각각에서 동일한 위치에 해당하는 샘플 값 간의 차이의 절대 값 또는 차이의 제곱에 기초하여 수행될 수도 있다. 템플릿 매칭은 현재 블록과 유사한 블록을 찾기 위해 후보 블록들 중에서 현재 블록의 템플릿과 값 차이가 가장 작은 템플릿에 대응하는 후보 블록을 탐색하는 동작일 수 있다. 예를 들어, 복수의 후보 블록들이 존재하는 경우, 현재 블록의 템플릿과 후보 블록 간의 템플릿 매칭 코스트가 작을수록, 해당 후보 블록이 머지 또는 MVP 대상 블록으로 선택될 확률이 높아질 수 있다. 또한, 템플릿 매칭 코스트가 낮을수록 후보 리스트의 인덱스가 작은 값으로 설정될 수 있다. 예를 들어, 후보 리스트는 후보 리스트에 포함된 복수의 후보 블록들 중에서 템플릿 매칭 코스트가 작은 후보일수록 작은 값의 인덱스를 가지도록 재정렬될 수 있다.
도 26을 참조하면, 현재 블록의 템플릿은 현재 블록의 상측 인접 샘플들 및 좌측 인접 샘플들로 구성될 수 있다. 그러나 본 개시가 이에 제한되는 것은 아니며, 블록 스캔 순서, 디코딩 순서, 또는 현재 블록의 주변 샘플들의 사용 가능 여부 중 적어도 하나에 따라 다른 방법으로 구성될 수 있다. 일 실시예에 따라, 현재 블록의 템플릿과 비교 대상 블록의 템플릿이 비교될 수 있다. 도 26에서, 현재 블록의 비교 대상 블록은 현재 블록의 참조 픽쳐에 위치된 코로케이티드 블록의 모션 벡터에 의해 지시되는 블록일 수 있다. 이 경우, 현재 블록의 템플릿(2701)과 비교 대상 블록의 템플릿(2702)이 비교될 수 있다. 또한, 디코더는 비교 결과에 기초하여 현재 블록과 비교 대상 블록 간의 값 차이를 판단할 수 있다. 디코더는 현재 블록과 비교 대상 블록 간의 값 차이에 기초하여 후보 리스트를 재정렬하거나, 대상 블록을 결정할 수 있다.
본 발명의 일 실시예를 따르면, MCR은 본 개시를 통해 설명되는 모든 인터 예측 방법 또는 모션 벡터 획득 방법에 적용될 수 있다. 예를 들어, 머지 모드, PMVR(pattern-matched motion vector refinement) 모드, 또는 MVP 모드 중 적어도 하나에 적용될 수 있다. 본 발명의 일 실시예에 따른 인코더 및 디코더는 전술한 MCR을 통해 재정렬된 후보 리스트로부터 특정 인덱스에 의해 지시되는 후보를 선택하여 모션 정보 세트를 획득할 수 있다. 이때, 후보 리스트 내에서 작은 값의 인덱스에 대응하는 후보일수록 작은 개수의 비트를 통해 시그널링 될 수 있다. 이에 따라, 선택될 확률이 높은 후보일수록 후보 리스트 내에서 작은 값의 인덱스에 대응하도록 배열될 수 있다.
도 27은 본 발명의 일 실시예에 따른 부호 매칭 여부 및 결정을 나타내는 도면이다. 본 발명의 일 실시예에 따라, 인코더는 특정 값의 부호 정보를 나타내는 부호 비트를 명시적으로 시그널링하지 않을 수 있다. 이 경우, 디코더는 시그널링된 다른 정보에 기초하여 부호 정보를 추정할 수 있다. 이를 통해, 부호 정보가 별도의 비트를 통해 시그널링되지 않는 경우 시그널링 오버헤드가 감소될 수 있다. 예를 들어, 인코더는 모션 벡터 또는 모션 벡터 차분 값의 부호 정보를 명시적으로 시그널링하지 않을 수 있다. 또한, 디코더는 시그널링된 정보에 기초하여 모션 벡터 또는 모션 벡터 차분 값의 부호 정보를 추정할 수 있다.
구체적인 실시예에 따라, 디코더가 n개의 부호 비트를 포함하는 부호 정보를 추정하는 경우, 가능한 부호 정보의 가지 수는 2^n개이다. 본 발명의 일 실시예에 따라 인코더 및 디코더는 인코더와 디코더 간에 미리 정의한 규칙에 따라 가능한 부호 정보들을 포함하는 부호 정보 리스트를 구성할 수 있다. 부호 정보 리스트는 복수의 후보 부호 정보들을 포함할 수 있다. 예를 들어, 도 27에서와 같이, 2개의 부호가 추정되는 경우, 부호 정보 리스트는 4개의 후보 부호 정보들을 포함할 수 있다.
일 실시예에 따라, 인코더는 부호 정보 리스트에 포함된 후보 부호 정보들 중 어느 하나를 시그널링할 수 있다. 다른 일 실시예에 따라, 인코더는 기준 부호 정보를 기준으로 후보 부호 정보 각각이 변형된 방법을 나타내는 변형 정보를 시그널링할 수도 있다. 구체적으로, 변형 정보는 기준 부호 정보가 변형되지 않은 경우 'Hit', y축 성분의 부호를 변형하는 수직 변형인 경우 'Vertical flip', x축 성분의 부호를 변형하는 수평 변형인 경우 'Horizontal flip', x축 및 y축 성분의 부호를 변형하는 대각 변형인 경우 'Diagonal flip'을 나타낼 수 있으며, 본 개시가 이에 제한되는 것은 아니다. 예를 들어, 추정되는 부호 비트의 개수가 셋 이상인 경우, 다른 변형 방법이 추가될 수도 있다.
도 27을 참조하면, 기준 부호 정보는 부호 정보 리스트에 포함된 후보 부호 정보들 중에서 기 설정된 코스트가 가장 작은 후보 부호 정보일 수 있다. 인코더 및 디코더는 미리 정의된 규칙에 기초하여 기 설정된 코스트가 가장 작은 후보 부호 정보를 결정할 수 있다. 기 설정된 코스트는 도 26을 통해 전술한 템플릿 매칭 코스트일 수 있다.
구체적으로, 디코더는 인코더로부터 변형 방법을 나타내는 변형 정보 '10'을 획득할 수 있다. 이 경우, 디코더는 후보 부호 정보들 중에서 기준이 되는 기준 부호 정보를 결정할 수 있다. 즉, 디코더는 후보 부호 정보들 중에서 Hit에 해당하는 후보 부호 정보를 결정할 수 있다. 예를 들어, 디코더는 후보 부호 정보들 중에서 템플릿 매칭 코스트가 가장 작은 후보 부호 정보를 기준 부호 정보로 사용할 수 있다. 다음으로, 디코더는 기준 부호 정보로부터 vertical flip(10)된 후보 부호 정보를 선택할 수 있다. 일 실시예에 따라, 전술한 부호 정보가 현재 블록의 모션 벡터 차분 값의 부호를 나타내는 경우, 부호 정보는 모션 벡터를 정의하는 좌표인 (x, y)의 x축 성분 및 y축 성분 각각에 대한 부호를 포함할 수 있다. 이 경우, 디코더는 선택된 후보 부호 정보를 모션 벡터 차분 값의 부호 정보로 사용하여 현재 블록을 복원할 수 있다.
도 27에서는 수직 변형, 수평 변형 및 대각 변형의 순서로 부호 정보 리스트가 구성되는 것으로 도시되어 있으나, 본 개시가 이에 제한되는 것은 아니다. 예를 들어, 수평 변형이 수직 변형에 비해 작은 개수의 비트에 의해 시그널링되도록 부호 정보 리스트가 구성될 수도 있다.
또한, 복수의 변형 방법 각각을 나타내는 정보는 적어도 하나의 비트를 통해 시그널링될 수 있다. 이때, 변형 방법을 지시하기 위해 시그널링되는 비트의 개수는 가변적일 수 있다. 부호 정보 리스트에서 선택될 가능성이 높은 부호 정보일수록 더 적은 개수의 비트를 통해 시그널링될 수 있다. 예를 들어, 변형 방법은 절삭 단항(truncated unary) 이진화, 단항(unary) 이진화 또는 지수 골룸(exp-Golomb) 이진화 중 적어도 하나를 이용하여 부호화될 수 있다.
추가적인 실시예에 따라, 변형 방법을 나타내는 정보는 컨텍스트에 기초하여 부호화될 수도 있다. 이를 통해, 시그널링 오버헤드가 감소될 수 있다. 예를 들어, 도 27에서 특정 변형에 해당하는 정보를 2-비트를 통해 시그널링되고, 특정 변형 방법 이외의 나머지 변형 방법을 나타내는 정보는 3-비트를 통해 시그널링될 수 있다. 이때, 2-비트를 통해 시그널링되는 정보는 컨텍스트에 기초하여 결정될 수 있다. 이하에서는 변형 방법을 나타내는 정보를 컨텍스트에 기초하여 부호화하는 방법에 대해 도 28 내지 도 29을 통해 설명하도록 한다.
도 28 및 도 29는 본 발명의 일 실시예에 따라 컨텍스트를 고려한 부호 정보의 부호화 방법을 나타내는 도면이다. 도 28 및 도 29의 실시예에서, 기준 부호 정보로부터 변형 방법을 나타내는 정보는 가변 길이의 비트를 통해 시그널링될 수 있다. 본 발명의 일 실시예에 따라, 기준 부호 정보로부터의 변형 방법을 나타내는 변형 정보는 x축 성분의 절대값과 y축 성분의 절대값에 기초하여 결정될 수 있다. 예를 들어, 추정되는 부호 정보가 현재 블록의 모션 벡터 차분 값을 위한 부호 정보인 경우, 모션 벡터 차분 값의 x축 성분의 절대값 및 y축 성분의 절대값에 기초하여 변형 정보가 결정될 수 있다.
도 28를 참조하면, x축 성분의 절대값 및 y축 성분의 절대값 중에서 작은 값에 대응하는 성분의 부호를 변형하는 변형 정보가 더 작은 개수의 비트를 통해 시그널링될 수 있다. x축 성분의 절대값 및 y축 성분의 절대값 중에서 작은 값에 대응하는 성분의 부호를 플립(flip)하는 것이 부호 변형 전의 값과 거리가 가까울 수 있기 때문이다. 거리가 가까울수록 코스트 값의 차이도 더 적을 수 있다. 구체적으로, 위치 (x, y)와 위치 (-x, y) 간의 거리는 제1 거리, 위치 (x, y)와 위치 (x, -y) 간의 거리는 제2 거리일 수 있다. 이때, y의 절대값이 x의 절대 값보다 작은 경우, 제2 거리가 제1 거리보다 가까울 수 있다. 이 경우, 기준 부호 정보로부터 y축 성분의 부호를 변형하는 변형 정보가 x축 성분의 부호를 변형하는 변형 정보에 비해 더 적은 개수의 비트를 통해 시그널링될 수 있다.
도 28에서는 |x| < |y|인 경우와, |x| >= |y| 인 경우로 구별하고 설명하고 있으나, |x| <= |y|인 경우와 |x| > |y|인 경우에 따라 변형 정보를 시그널링하는 방법이 달라질 수도 있다. 또는 |x|와 |y|가 같지 않은 경우엔 도 10의 절대값을 고려한 flip을 수행하고, 동일한 경우, 기 설정된 방식에 따라 변형 정보를 시그널링할 수도 있다. 이때, 기 설정된 방식은 도 27을 통해 설명한 방식일 수 있다. 추가적인 실시예에 따라, 전술한 후보 리스트를 MCR하는 과정에 있어서, 절대값을 고려한 재정렬 과정이 추가될 수 있다.
또한, 도 28를 참조하면, x축 및 y축 성분의 부호를 모두 플립하는 변형 정보(diagonal flip)가 '110'에 의해 시그널링될 수 있다. 또한, 절대값이 작은 성분의 부호가 플립되지 않은 변형 정보(large absolute value flip)가 '111'에 의해 시그널링될 수 있다. 즉, 'diagonal flip'이 'large absolute value flip'에 비해 더 작은 값을 통해 시그널링될 수 있다. 한편, 도 29을 참조하면, 'diagonal flip'이 '111'에 의해 시그널링되고, 'large absolute value flip'이 '110'에 의해 시그널링될 수도 있다.
도 27에서와 마찬가지로, 전술한 부호 정보는 현재 블록의 모션 벡터 또는 모션 벡터 차분 값의 부호를 나타내는 정보일 수 있다. 전술한 부호 정보가 현재 블록의 모션 벡터 차분 값의 부호를 나타내는 경우, 부호 정보는 모션 벡터를 정의하는 좌표인 (x, y)의 x축 성분 및 y축 성분 각각에 대한 부호를 포함할 수 있다. 일 실시예에 따라, 디코더는 템플릿 매칭 코스트에 기초하여 Hit에 해당하는 기준 부호 정보를 결정할 수 있다. 예를 들어, 디코더는 후보 부호 정보들 중에서 템플릿 매칭 코스트가 가장 작은 후보 부호 정보를 기준 부호 정보로 사용할 수 있다. 다음으로, 디코더는 현재 블록의 모션 벡터 차분 값의 x축 성분의 절대값과 y축 성분의 절대값을 비교할 수 있다. 디코더는 비교 결과 및 시그널링된 변형 정보에 기초하여, 변형 방법을 획득할 수 있다. 다음으로, 디코더는 획득된 변형 방법 및 기준 부호 정보에 기초하여 현재 블록의 모션 벡터 차분 값의 절대값에 적용될 최종 부호 정보를 획득할 수 있다. 또한, 디코더는 모션 벡터 차분 값의 절대값에 획득된 최종 부호 정보를 적용하여 최종 모션 벡터 차분 값을 생성할 수 있다. 디코더는 최종 모션 벡터 차분 값에 기초하여 현재 블록을 복원할 수 있다.
전술한 실시예에서, 2-비트의 부호 정보를 추정하는 방법을 예로 들어 설명하고 있으나, 본 개시는 이에 한정되지 않는다. 전술한 부호 정보 추정 및 시그널링 방법은 2-비트를 초과하는 개수의 부호 비트를 포함하는 부호 정보를 추정하는 경우에도 동일 또는 상응하는 방법으로 적용될 수 있다. 예를 들면 n개의 부호를 추정하는 경우, n개의 부호 각각에 대응하는 절대값에 기초하여 변형 정보가 시그널링될 수 있다. 예를 들어, 절대값의 크기가 작은 성분일 수록, 해당 성분의 부호를 플립하는 변형 정보가 더 작은 개수의 비트를 통해 시그널링될 수 있다.
한편, 본 발명의 일 실시예에 따라, 현재 블록은 서로 다른 모션 정보 세트가 적용되는 복수의 영역으로 분할되어 예측될 수 있다. 이때, 현재 블록은 경계 정보에 기초하여 분할될 수 있다. 예를 들어, 디코더는 현재 블록 내의 에지를 검출할 수 있다. 디코더는 그래디언트(gradient) 기반의 소벨 연산자(sobel operator)를 사용하여 현재 블록 내의 에지를 검출할 수 있다. 다음으로, 디코더는 검출된 에지에 기초하여 경계 정보를 획득할 수 있다. 이때, 현재 블록은 검출된 에지를 기준으로 적어도 두 개의 영역으로 분할될 수 있다. 디코더는 경계 정보에 기초하여 현재 블록을 서로 다른 모션 정보 세트가 사용되는 적어도 두 개의 영역으로 분할할 수 있다. 이하에서는 본 발명의 일 실시예에 따라, 현재 블록으로부터 분할된 각각의 영역에 대해 서로 다른 모션 정보 세트에 기초하여 인터 예측을 수행하는 방법에 대해 설명하도록 한다.
도 30은 본 발명의 일 실시예에 따라 현재 블록으로부터 분할된 각각의 영역에 대해 서로 다른 모션 정보 세트에 기초하여 예측하는 방법을 나타내는 도면이다. 도 30을 참조하면, 현재 블록(310)은 현재 블록(310)의 경계 정보에 기초하여 제1 영역(311)과 제2 영역(312)으로 분할될 수 있다. 먼저, 제1 영역(311)에 대응하는 모션 정보 세트는 현재 블록(310)의 제1 영역(311)과 유사한 영역을 포함하는 제1 참조 블록(320)을 지시하는 모션 벡터 및 참조 픽쳐 인덱스를 포함할 수 있다. 즉, 현재 블록(310)의 제1 영역(311)의 원본 샘플 값 및 제1 참조 블록(320) 내에서 제1 영역에 대응하는 제1 일부 영역(321)의 샘플 값에 기초하여 제1 모션 정보 세트가 획득될 수 있다. 현재 블록(310)의 제1 영역(311)의 원본 샘플 값 및 제1 일부 영역(321)에 대응하는 샘플 값에 기초하여 SAD 또는 SATD가 연산될 수 있다. 또한, 현재 블록(310)의 제1 영역(311)의 제1 모션 정보 세트는 {MV_R1, ref_idx_R1}으로 나타낼 수 있다.
마찬가지로, 현재 블록(310)의 제2 영역(312)에 대해서도 전술한 실시예가 적용될 수 있다. 예를 들어, 현재 블록(310)의 제2 영역(312)의 원본 샘플 값 및 제2 참조 블록(330) 내에서 제2 영역에 대응하는 제2 일부 영역(332)의 샘플 값에 기초하여 제2 모션 정보 세트가 획득될 수 있다. 제2 영역(312)에 대응하는 제2 모션 정보 세트는 {MV_R2, ref_idx_R2}로 나타낼 수 있다. 한편, 제1 영역(311)을 위한 참조 픽쳐 인덱스와 제2 영역(312)을 위한 참조 픽쳐 인덱스는 동일할 수 있다.
본 발명의 일 실시예에 따른 디코더는 전술한 방법을 통해 획득된 제1 모션 정보 세트와 제2 모션 정보 세트에 기초하여 현재 블록의 최종 예측 블록을 획득할 수 있다. 예를 들어, 디코더는 제1 모션 정보 세트에 기초하여 제1 영역(311)에 대한 제1 예측 블록을 생성할 수 있다. 또한, 디코더는 제2 모션 정보 세트에 기초하여 제2 영역(312)에 대한 제2 예측 블록을 생성할 수 있다.
다음으로, 디코더는 제1 예측 블록과 제2 예측 블록을 병합하여 현재 블록에 대한 최종 예측 블록을 생성할 수 있다. 예를 들어, 디코더는 제1 일부 영역(321) 이외의 영역에 해당하는 샘플 값이 '0'인 제1 예측 블록을 생성할 수 있다. 또한, 디코더는 제2 일부 영역(322) 이외의 영역에 해당하는 샘플 값이 '0'인 제2 예측 블록을 생성할 수 있다. 이 경우, 최종 예측 블록은 제1 예측 블록과 제2 예측 블록의 합으로 나타낼 수 있다. 추가적으로, 디코더는 경계 정보를 사용하여 제1 예측 블록 및 제2 예측 블록을 생성할 수 있다. 인코더와 디코더는 미리 정의된 규칙에 따라 경계 정보를 생성할 수 있다. 이때, 인코더와 디코더가 각각 생성한 경계 정보는 서로 동일할 수 있다. 또한, 디코더는 경계 정보에 기초하여 인코더에 의해 예측된 예측 블록과 동일한 예측 블록을 생성할 수 있다.
추가적인 실시예에 따라, 디코더는 제1 영역(311)과 제2 영역(312) 사이의 경계 주변의 샘플들에 대해 수직/수평 방향의 필터링을 수행할 수 있다. 이때, 경계 주변의 샘플들은 경계에 인접한 샘플들일 수 있다. 또한, 디코더는 기준 주파수 보다 낮은 주파수 대역을 통과시키는 저대역 통과 필터를 사용하여 필터링을 수행할 수 있다. 또한 디코더는 저대역 3-tap 필터를 사용하여 필터링을 수행할 수 있다. 저대역 3-tap 필터의 필터 계수는 {1/4, 2/4, 1/4}일 수 있다.
한편, 도 30에서와 같이 현재 블록이 복수의 영역들로 분할된 경우, 복수의 영역들 중에서 일부는 인트라 예측되고, 나머지 일부는 인터 예측될 수도 있다. 도 31은 본 발명의 일 실시예에 따라 현재 블록으로부터 분할된 각각의 영역에 대해 인트라 예측 또는 인터 예측을 수행하는 방법을 나타내는 도면이다. 도 30의 실시예와 같이, 현재 블록은 경계 정보에 기초하여 분할될 수 있다. 예를 들어, 현재 블록은 경계 정보에 기초하여 제1 영역(3201)과 제2 영역(3202)으로 분할될 수 있다.
구체적인 실시예에서, 제1 영역(3201)은 인트라 예측 방법에 따라 부호화되고, 제2 영역(3202)은 인터 예측 방법으로 부호화될 수 있다. 이 경우, 디코더는 제2 영역(3202)에 대응하는 모션 정보 세트를 획득하고, 해당 모션 정보 세트 {MV_R2, ref_idx_R2}에 기초하여 제2 영역(3202)에 대응하는 제2 예측 블록을 생성할 수 있다.
또한, 디코더는 현재 블록의 좌측 또는 상측의 참조 샘플들에 기초하여 제1 영역(3201)에 대응하는 제1 예측 블록을 생성할 수 있다. 디코더는 현재 블록의 인트라 예측 모드에 기초하여 제1 예측 블록의 생성할 수 있다. 이때, 인코더에서 제1 영역(3201)의 예측을 위한 인트라 예측 모드는 아래 수식을 통해 결정될 수 있다.
[수학식 7]
[수학식 7]에서, SATD는 현재 블록과 제1 예측 블록 간의 잔차 신호를 하다마드 변환하여 획득한 값일 수 있다. 즉, SATD는 제1 영역에 해당하는 원본 신호와 예측 신호의 차이를 나타낸다. bit(i)는 i번째 인트라 예측 모드를 부호화 하는 데 필요한 비트의 개수를 나타내고, λ는 잔차 신호와 부호화 레이트(rate) 사이의 단위를 조정하는 파라미터일 수 있다. 인코더는 [수학식 7]의 cost(i)를 최소화하는 인트라 예측 모드를 시그널링할 수 있다. 또한, 디코더는 파싱한 인트라 예측 모드를 이용하여 제1 영역(3201)에 대한 제1 예측 블록이 생성될 수 있다.
다음으로, 디코더는 제1 예측 블록과 제2 예측 블록을 병합하여 현재 블록에 대한 최종 예측 블록을 생성할 수 있다. 디코더는 제1 예측 블록과 제2 예측 블록을 경계 정보에 기반하여 병합할 수 있다. 이때, 제1 예측 블록에서 제1 영역(3201)을 제외한 영역의 샘플 값은 '0'으로 설정될 수 있다. 또한, 제2 예측 블록에서 제2 영역(3202)을 제외한 영역의 샘플 값은 '0'으로 설정될 수 있다. 이 경우, 최종 예측 블록은 제1 예측 블록과 제2 예측 블록의 합으로 나타낼 수 있다.
도 31(a)는 본 발명의 일 실시예에 따라 제1 영역과 제2 영역 간의 경계가 폐곡선을 형성하는 경우 제1 영역에 대한 인트라 예측을 수행하는 방법을 도시한다. 현재 블록의 너비가 W이고 높이가 H인 경우, 디코더는 현재 블록 주변에 존재하는 복원된 최대 2*W + 2*H + 1 개의 샘플을 사용하여 인트라 예측을 수행할 수 있다.
도 31(b)는 본 발명의 일 실시예에 따라 제1 영역과 제2 영역 간의 경계가 현재 블록을 임의의 형태로 가로지르는 경우, 제1 영역에 대한 인트라 예측을 수행하는 방법을 도시한 것이다. 도 31(a)와 마찬가지로, 디코더는 현재 블록 주변에 존재하는 복원된 최대 2*W + 2*H + 1 개의 샘플을 사용하여 인트라 예측을 수행할 수 있다.
도 31(c) 내지 (e)는 본 발명의 일 실시예에 따라 제1 영역과 제2 영역 간의 경계가 현재 블록을 임의의 형태로 가로지르는 경우, 패딩된 참조 샘플들에 기초하여 제1 영역에 대한 인트라 예측을 수행하는 방법을 도시한 것이다. 예를 들어, 현재 블록 내에서 제1 영역과 제2 영역이 서로 다른 객체를 나타내는 영상인 경우, 현재 블록의 주변 샘플들 중에서, 제1 영역과 연속된 부분만 활용하는 것이 효율적일 수 있다.
도 31(c)에서, 현재 블록 내의 경계와 현재 블록의 상측 경계가 만나는 지점 및 현재 블록 내의 경계와 현재 블록의 좌측 경계와 만나는 지점은 각각 (x', 0), (0, y')일 수 있다. 이때, 디코더는 (x', -1) 위치의 복원 샘플에 기초하여 우측 방향으로 참조 샘플 패딩을 수행할 수 있다. 디코더는 (x', -1) 우측의 패딩된 샘플들과 (x' + 1)개의 복원된 샘플들을 사용하여 상측 참조 샘플들을 구성할 수 있다. 또한, 디코더는 (-1, y') 위치의 복원 샘플에 기초하여 아래 방향으로 참조 샘플 패딩을 수행할 수 있다. 디코더는 (-1, y') 하측의 패딩된 샘플들과 (y' + 1)개의 복원된 샘플들을 사용하여 좌측 참조 샘플들을 구성할 수 있다.
도 31(d)는, 현재 블록 내의 경계가 현재 블록의 상측 경계와 만나고, 좌측 경계와는 만나지 않는 경우를 도시한다. 이때, 제1 영역과 제2 영역 간의 경계가 현재 블록의 상측 경계와 만나는 지점은 (x'', 0)일 수 있다. 디코더는 (x'', -1) 위치의 복원 샘플에 기초하여 우측 방향으로 참조 샘플 패딩을 수행할 수 있다. 디코더는 (x'', -1)로부터 우측의 패딩된 샘플들과 (x'' + 1)개의 복원된 샘플들을 사용하여 상측 참조 샘플들을 구성할 수 있다. 또한, 좌측 참조 샘플들은 기존의 복원된 샘플들을 사용할 수 있다.
도 31(e)는 현재 블록 내의 경계가 현재 블록의 좌측 경계와 만나고, 상측 경계와는 만나지 않는 경우를 도시한다. 이때, 제1 영역과 제2 영역 간의 경계가 현재 블록의 좌측 경계와 만나는 지점은 (0, y'')일 수 있다. 디코더는 (-1, y'') 위치의 복원 샘플에 기초하여 아래 방향으로 참조 샘플 패딩을 수행할 수 있다. 디코더는 (-1, y')로부터 하측의 패딩된 샘플들과 (y'' + 1)개의 복원된 샘플들을 사용하여 좌측 참조 샘플들을 구성할 수 있다. 또한, 상측 참조 샘플들은 기존의 복원된 샘플들을 사용할 수 있다.
상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 프로세서의 내부 또는 외부에 위치할 수 있으며, 이미 공지된 다양한 수단에 의해 프로세서와 데이터를 주고받을 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아는 것으로 해석해야 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
Claims (18)
- 비디오 신호 처리 방법에 있어서,
현재 블록의 예측을 위한 머지(merge) 후보 리스트에 포함된 복수의 후보 들 중 상기 현재 블록의 예측을 위한 후보를 지시하는 머지 인덱스를 획득하는 단계;
상기 머지 인덱스가 지시하는 후보에 대응하는 모션 정보에 기초하여 상기 현재 블록의 모션 정보를 획득하는 단계;
상기 현재 블록의 모션 정보가 서로 다른 참조 픽쳐 리스트에 대응하는 복수의 모션 벡터들을 포함하는 경우, 상기 복수의 모션 벡터들 각각에 대응하는 참조 픽쳐들 각각과 상기 현재 블록을 포함하는 현재 픽쳐 사이의 픽쳐 순서 카운트(picture order count, POC) 차이를 비교하는 단계;
상기 비교 결과에 기초하여, 상기 복수의 모션 벡터들을 보정하는 단계; 및
상기 보정된 복수의 모션 벡터들에 기초하여, 상기 현재 블록을 복원하는 단계를 포함하는, 비디오 신호 처리 방법. - 제1 항에 있어서,
상기 복수의 모션 벡터들은 제1 모션 벡터 및 제2 모션 벡터를 포함하고,
상기 복수의 모션 벡터들을 보정하는 단계는,
제1 POC 차이와 제2 POC 차이를 획득하는 단계, 상기 제1 POC 차이는 상기 제1 모션 벡터에 대응하는 제1 참조 픽쳐와 상기 현재 픽쳐 간의 POC 차이를 나타내고, 상기 제2 POC 차이는 상기 제2 모션 벡터에 대응하는 제2 참조 픽쳐와 상기 현재 픽쳐 간의 POC 차이를 나타냄;
상기 제1 POC 차이와 상기 제2 POC 차이를 비교하여, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 어느 하나의 보정 값인 특정 오프셋을 획득하는 단계; 및
상기 특정 오프셋에 기초하여 상기 제1 모션 벡터 및 상기 제2 모션 벡터를 보정하는 단계를 포함하는, 비디오 신호 처리 방법. - 제2 항에 있어서,
상기 복수의 모션 벡터들을 보정하는 단계는,
상기 제1 POC 차이와 상기 제2 POC 차이를 비교한 결과에 기초하여, 상기 특정 오프셋을 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 나머지 하나의 보정 값 보다 먼저 획득하는 단계를 포함하는, 비디오 신호 처리 방법. - 제3 항에 있어서,
상기 제1 POC 차이가 상기 제2 POC 차이보다 큰 경우, 상기 특정 오프셋은 상기 제1 모션 벡터의 보정 값이고,
상기 제1 POC 차이가 상기 제2 POC 차이보다 작은 경우, 상기 특정 오프셋은 상기 제2 모션 벡터의 보정 값인, 비디오 신호 처리 방법. - 제3 항에 있어서
상기 제1 POC 차이가 상기 제2 POC 차이보다 큰 경우, 상기 특정 오프셋은 상기 제1 모션 벡터의 보정 값인 제1 오프셋이고,
상기 복수의 모션 벡터들을 보정하는 단계는,
상기 제1 오프셋을 더하여 상기 제1 모션 벡터를 보정하는 단계;
상기 특정 오프셋에 기초하여 상기 제2 모션 벡터의 보정 값인 제2 오프셋을 획득하는 단계; 및
상기 제2 오프셋을 더하여 상기 제2 모션 벡터를 보정하는 단계를 포함하는, 비디오 신호 처리 방법. - 제5 항에 있어서,
상기 복수의 모션 벡터들을 보정하는 단계는,
상기 제1 모션 벡터에 상기 제1 오프셋을 더하여 제1 보정된 모션 벡터를 생성하고, 상기 제2 모션 벡터에 상기 제2 오프셋을 더하여 제2 보정된 모션 벡터를 생성하는 단계; 및
상기 현재 블록을 복원하는 단계는,
상기 제1 보정된 모션 벡터 및 상기 제2 보정된 모션 벡터에 기초하여 상기 현재 블록을 복원하는 단계를 포함하는, 비디오 신호 처리 장치. - 제3 항에 있어서
상기 특정 오프셋을 획득하는 단계는,
상기 제1 POC 차이와 상기 제2 POC 차이가 동일한 경우, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 각각에 대응하는 참조 픽쳐 리스트를 나타내는 값에 기초하여, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 어느 하나에 대한 보정 값인 특정 오프셋을 획득하는 단계를 포함하는, 비디오 신호 처리 방법. - 제7 항에 있어서,
상기 특정 오프셋을 획득하는 단계는,
상기 제1 모션 벡터에 대응하는 제1 참조 픽쳐 리스트를 나타내는 값이 0이고, 상기 제2 모션 벡터의 제2 참조 픽쳐 리스트를 나타내는 값이 1인 경우, 상기 제1 모션 벡터의 보정 값인 특정 오프셋을 획득하는 단계를 포함하는, 비디오 신호 처리 방법. - 제8 항에 있어서,
상기 제1 참조 픽쳐 리스트는 특정 샘플에 대해 최대 하나의 모션 벡터가 사용되는 제1 상위 레벨 영역 및 특정 샘플에 대해 최대 두 개의 모션 벡터가 사용되는 제2 상위 레벨 영역에서 사용되며, 상기 제2 참조 픽쳐 리스트는 상기 제1 상위 레벨 영역에서는 사용되지 않는, 비디오 신호 처리 방법. - 비디오 신호 처리 장치에 있어서,
프로세서를 포함하며,
상기 프로세서는,
현재 블록의 예측을 위한 머지(merge) 후보 리스트에 포함된 복수의 후보 들 중 상기 현재 블록의 예측을 위한 후보를 지시하는 머지 인덱스를 획득하고,
상기 머지 인덱스가 지시하는 후보에 대응하는 모션 정보에 기초하여 상기 현재 블록의 모션 정보를 획득하고,
상기 현재 블록의 모션 정보가 서로 다른 참조 픽쳐 리스트에 대응하는 복수의 모션 벡터들을 포함하는 경우, 상기 복수의 모션 벡터들 각각에 대응하는 참조 픽쳐들 각각과 상기 현재 블록을 포함하는 현재 픽쳐 사이의 픽쳐 순서 카운트(picture order count, POC) 차이를 비교하고,
상기 비교 결과에 기초하여, 상기 복수의 모션 벡터들을 보정하고,
상기 보정된 복수의 모션 벡터들에 기초하여, 상기 현재 블록을 복원하는, 비디오 신호 처리 장치. - 제10 항에 있어서,
상기 복수의 모션 벡터들은 제1 모션 벡터 및 제2 모션 벡터를 포함하고,
상기 프로세서는,
제1 POC 차이와 제2 POC 차이를 획득하고,
상기 제1 POC 차이와 상기 제2 POC 차이를 비교하여, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 어느 하나의 보정 값인 특정 오프셋을 획득하고,
상기 특정 오프셋에 기초하여 상기 제1 모션 벡터 및 상기 제2 모션 벡터를 보정하되,
상기 제1 POC 차이는 상기 제1 모션 벡터에 대응하는 제1 참조 픽쳐와 상기 현재 픽쳐 간의 POC 차이를 나타내고, 상기 제2 POC 차이는 상기 제2 모션 벡터에 대응하는 제2 참조 픽쳐와 상기 현재 픽쳐 간의 POC 차이를 나타내는, 비디오 신호 처리 장치. - 제11 항에 있어서,
상기 프로세서는,
상기 제1 POC 차이와 상기 제2 POC 차이를 비교한 결과에 기초하여, 상기 특정 오프셋을 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 나머지 하나의 보정 값 보다 먼저 획득하는, 비디오 신호 처리 장치. - 제12 항에 있어서,
상기 제1 POC 차이가 상기 제2 POC 차이보다 큰 경우, 상기 특정 오프셋은 상기 제1 모션 벡터의 보정 값이고,
상기 제1 POC 차이가 상기 제2 POC 차이보다 작은 경우, 상기 특정 오프셋은 상기 제2 모션 벡터의 보정 값인, 비디오 신호 처리 장치. - 제12 항에 있어서
상기 제1 POC 차이가 상기 제2 POC 차이보다 큰 경우, 상기 특정 오프셋은 상기 제1 모션 벡터의 보정 값인 제1 오프셋이고,
상기 프로세서는,
상기 제1 오프셋을 더하여 상기 제1 모션 벡터를 보정하고,
상기 특정 오프셋에 기초하여 상기 제2 모션 벡터의 보정 값인 제2 오프셋을 획득하고,
상기 제2 오프셋을 더하여 상기 제2 모션 벡터를 보정하는, 비디오 신호 처리 장치. - 제14 항에 있어서,
상기 프로세서는,
상기 제1 모션 벡터에 상기 제1 오프셋을 더하여 제1 보정된 모션 벡터를 생성하고, 상기 제2 모션 벡터에 상기 제2 오프셋을 더하여 제2 보정된 모션 벡터를 생성하고,
상기 제1 보정된 모션 벡터 및 상기 제2 보정된 모션 벡터에 기초하여 상기 현재 블록을 복원하는, 비디오 신호 처리 장치. - 제12 항에 있어서
상기 프로세서는,
상기 제1 POC 차이와 상기 제2 POC 차이가 동일한 경우, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 각각에 대응하는 참조 픽쳐 리스트를 나타내는 값에 기초하여, 상기 제1 모션 벡터 및 상기 제2 모션 벡터 중 어느 하나에 대한 보정 값인 특정 오프셋을 획득하는, 비디오 신호 처리 장치. - 제16 항에 있어서,
상기 프로세서는,
상기 제1 모션 벡터에 대응하는 제1 참조 픽쳐 리스트를 나타내는 값이 0이고, 상기 제2 모션 벡터의 제2 참조 픽쳐 리스트를 나타내는 값이 1인 경우, 상기 제1 모션 벡터의 보정 값인 특정 오프셋을 획득하는, 비디오 신호 처리 장치. - 제17 항에 있어서,
상기 제1 참조 픽쳐 리스트는 특정 샘플에 대해 최대 하나의 모션 벡터가 사용되는 제1 상위 레벨 영역 및 특정 샘플에 대해 최대 두 개의 모션 벡터가 사용되는 제2 상위 레벨 영역에서 사용되며, 상기 제2 참조 픽쳐 리스트는 상기 제1 상위 레벨 영역에서는 사용되지 않는, 비디오 신호 처리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020227002619A KR102570087B1 (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180035474 | 2018-03-27 | ||
KR1020180035474 | 2018-03-27 | ||
KR20180036917 | 2018-03-29 | ||
KR1020180036917 | 2018-03-29 | ||
KR20180042844 | 2018-04-12 | ||
KR1020180042844 | 2018-04-12 | ||
KR1020180046324 | 2018-04-20 | ||
KR20180046324 | 2018-04-20 | ||
PCT/KR2019/003608 WO2019190211A1 (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227002619A Division KR102570087B1 (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200123244A true KR20200123244A (ko) | 2020-10-28 |
KR102356262B1 KR102356262B1 (ko) | 2022-02-08 |
Family
ID=68060221
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207028082A KR102356262B1 (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
KR1020227002619A KR102570087B1 (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
KR1020237028220A KR20230127363A (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227002619A KR102570087B1 (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
KR1020237028220A KR20230127363A (ko) | 2018-03-27 | 2019-03-27 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
Country Status (4)
Country | Link |
---|---|
US (4) | US11039162B2 (ko) |
KR (3) | KR102356262B1 (ko) |
CN (1) | CN111919449B (ko) |
WO (1) | WO2019190211A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023027564A1 (ko) * | 2021-08-27 | 2023-03-02 | 주식회사 윌러스표준기술연구소 | 움직임 정보를 보정하는 방법 및 이를 위한 장치 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019147067A1 (ko) * | 2018-01-26 | 2019-08-01 | 한국전자통신연구원 | 시간적 움직임 정보를 이용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치 |
CN111919448A (zh) * | 2018-01-26 | 2020-11-10 | 韩国电子通信研究院 | 用于使用时间运动信息的图像编码和图像解码的方法和设备 |
KR102356262B1 (ko) | 2018-03-27 | 2022-02-08 | 주식회사 윌러스표준기술연구소 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
WO2019185884A1 (en) | 2018-03-29 | 2019-10-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus for selecting an intra-prediction mode for padding |
US11330277B2 (en) * | 2018-08-31 | 2022-05-10 | Hfi Innovation Inc. | Method and apparatus of subblock deblocking in video coding |
CN110876059B (zh) * | 2018-09-03 | 2022-06-10 | 华为技术有限公司 | 运动矢量的获取方法、装置、计算机设备及存储介质 |
CN118214858A (zh) | 2018-09-21 | 2024-06-18 | 夏普株式会社 | 图像解码装置 |
US11259016B2 (en) | 2019-06-30 | 2022-02-22 | Tencent America LLC | Method and apparatus for video coding |
WO2023020389A1 (en) * | 2021-08-19 | 2023-02-23 | Mediatek Singapore Pte. Ltd. | Method and apparatus for low-latency template matching in video coding system |
US20230104476A1 (en) * | 2021-10-05 | 2023-04-06 | Tencent America LLC | Grouping based adaptive reordering of merge candidate |
US12047581B2 (en) * | 2021-10-28 | 2024-07-23 | Tencent America LLC | Template-matching based adaptive motion vector resolution (AMVR) |
CN118235389A (zh) * | 2021-10-29 | 2024-06-21 | 抖音视界有限公司 | 用于视频处理的方法、装置和介质 |
US12034932B2 (en) * | 2021-11-22 | 2024-07-09 | Tencent America LLC | Constrained template matching |
US20240236324A9 (en) * | 2022-10-24 | 2024-07-11 | Tencent America LLC | Flipping mode for chroma and intra template matching |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130101483A (ko) * | 2012-01-18 | 2013-09-13 | 한국전자통신연구원 | 영상 부호화 및 복호화 방법 및 장치 |
KR20150138352A (ko) * | 2013-04-02 | 2015-12-09 | 브이아이디 스케일, 인크. | 스케일러블 비디오 코딩용의 향상된 시간적 움직임 벡터 예측 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030099294A1 (en) * | 2001-11-27 | 2003-05-29 | Limin Wang | Picture level adaptive frame/field coding for digital video content |
KR101752418B1 (ko) * | 2010-04-09 | 2017-06-29 | 엘지전자 주식회사 | 비디오 신호 처리 방법 및 장치 |
PL3962088T3 (pl) * | 2010-11-04 | 2023-11-27 | Ge Video Compression, Llc | Kodowanie obrazu wspomagające scalanie bloków i tryb przeskoku |
KR101269116B1 (ko) * | 2010-12-14 | 2013-05-29 | 엠앤케이홀딩스 주식회사 | 인터 예측 부호화된 동영상 복호화 방법 |
MX2014000046A (es) | 2011-06-28 | 2014-02-17 | Samsung Electronics Co Ltd | Metodo de codificacion de video que utiliza ajustes de desplazamiento de comformidad clasificacion de pixel y aparato para ello, metodo de decodificacion de video y aparato para ello. |
CN107493474B (zh) * | 2011-11-08 | 2021-01-12 | 株式会社Kt | 利用解码装置对视频信号进行解码的方法 |
JP5895469B2 (ja) * | 2011-11-18 | 2016-03-30 | 富士通株式会社 | 動画像符号化装置、および動画像復号装置 |
US20130294513A1 (en) * | 2012-05-07 | 2013-11-07 | Qualcomm Incorporated | Inter layer merge list construction for video coding |
US20130343459A1 (en) * | 2012-06-22 | 2013-12-26 | Nokia Corporation | Method and apparatus for video coding |
EP2863631A4 (en) * | 2012-07-02 | 2016-03-16 | Samsung Electronics Co Ltd | METHOD AND DEVICE FOR PREDICTING MOTION VECTORS FOR CODING OR DECODING VIDEO CONTENT |
US9538180B2 (en) * | 2012-12-17 | 2017-01-03 | Qualcomm Incorporated | Motion vector prediction in video coding |
KR101908205B1 (ko) * | 2014-02-21 | 2018-10-15 | 미디어텍 싱가폴 피티이. 엘티디. | 인트라 화상 블록 카피에 기초한 예측을 이용하는 비디오 코딩 방법 |
JP2017011458A (ja) * | 2015-06-19 | 2017-01-12 | 富士通株式会社 | 符号化データ生成プログラム、符号化データ生成方法および符号化データ生成装置 |
WO2017039117A1 (ko) * | 2015-08-30 | 2017-03-09 | 엘지전자(주) | 영상의 부호화/복호화 방법 및 이를 위한 장치 |
US10880570B2 (en) * | 2016-10-05 | 2020-12-29 | Qualcomm Incorporated | Systems and methods of adaptively determining template size for illumination compensation |
KR102435500B1 (ko) * | 2016-10-06 | 2022-08-23 | 세종대학교산학협력단 | 비디오 신호의 복호화 방법 및 이의 장치 |
KR102356262B1 (ko) | 2018-03-27 | 2022-02-08 | 주식회사 윌러스표준기술연구소 | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 |
-
2019
- 2019-03-27 KR KR1020207028082A patent/KR102356262B1/ko active IP Right Grant
- 2019-03-27 KR KR1020227002619A patent/KR102570087B1/ko active IP Right Grant
- 2019-03-27 CN CN201980022660.0A patent/CN111919449B/zh active Active
- 2019-03-27 WO PCT/KR2019/003608 patent/WO2019190211A1/ko active Application Filing
- 2019-03-27 KR KR1020237028220A patent/KR20230127363A/ko not_active Application Discontinuation
-
2020
- 2020-09-26 US US17/033,723 patent/US11039162B2/en active Active
-
2021
- 2021-05-07 US US17/314,373 patent/US11575927B2/en active Active
-
2022
- 2022-12-23 US US18/146,227 patent/US11917187B2/en active Active
-
2024
- 2024-01-09 US US18/407,806 patent/US20240146936A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130101483A (ko) * | 2012-01-18 | 2013-09-13 | 한국전자통신연구원 | 영상 부호화 및 복호화 방법 및 장치 |
KR20150138352A (ko) * | 2013-04-02 | 2015-12-09 | 브이아이디 스케일, 인크. | 스케일러블 비디오 코딩용의 향상된 시간적 움직임 벡터 예측 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023027564A1 (ko) * | 2021-08-27 | 2023-03-02 | 주식회사 윌러스표준기술연구소 | 움직임 정보를 보정하는 방법 및 이를 위한 장치 |
Also Published As
Publication number | Publication date |
---|---|
US11917187B2 (en) | 2024-02-27 |
CN111919449B (zh) | 2024-07-05 |
US11039162B2 (en) | 2021-06-15 |
KR102356262B1 (ko) | 2022-02-08 |
KR20220013477A (ko) | 2022-02-04 |
WO2019190211A1 (ko) | 2019-10-03 |
KR102570087B1 (ko) | 2023-08-25 |
US20230129632A1 (en) | 2023-04-27 |
CN111919449A (zh) | 2020-11-10 |
KR20230127363A (ko) | 2023-08-31 |
US11575927B2 (en) | 2023-02-07 |
US20240146936A1 (en) | 2024-05-02 |
US20210266583A1 (en) | 2021-08-26 |
US20210014522A1 (en) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102356262B1 (ko) | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 | |
CN110662052B (zh) | 更新查找表(lut)的条件 | |
US11570443B2 (en) | Method and apparatus for video signal processing using sub-block based motion compensation | |
KR102493418B1 (ko) | 적응적 모션 벡터 레졸루션을 이용하는 비디오 신호 처리 방법 및 장치 | |
US11979554B2 (en) | Intra prediction-based video signal processing method and device | |
US20130003855A1 (en) | Processing method and device for video signals | |
TW202025777A (zh) | 用於視訊寫碼之基於最終運動向量表示之刪剪 | |
KR20210057188A (ko) | 서브블록 기반의 모션 보상을 이용한 비디오 신호 처리 방법 및 장치 | |
KR102606291B1 (ko) | 교차성분 선형 모델을 이용한 비디오 신호 처리 방법 및 장치 | |
KR20240026141A (ko) | 비디오 코딩에서의 하이브리드 인터 양방향-예측 | |
KR20240026180A (ko) | 인트라 예측을 이용한 비디오 신호 처리 방법 및 이를 위한 장치 | |
KR20240118089A (ko) | 비디오 신호 처리 방법 및 이를 위한 장치 | |
JP2024501137A (ja) | ビデオコーディングにおけるテンプレートマッチング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |