KR102627844B1 - 이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법 - Google Patents
이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법 Download PDFInfo
- Publication number
- KR102627844B1 KR102627844B1 KR1020207035742A KR20207035742A KR102627844B1 KR 102627844 B1 KR102627844 B1 KR 102627844B1 KR 1020207035742 A KR1020207035742 A KR 1020207035742A KR 20207035742 A KR20207035742 A KR 20207035742A KR 102627844 B1 KR102627844 B1 KR 102627844B1
- Authority
- KR
- South Korea
- Prior art keywords
- motion compensated
- motion
- decoder
- delete delete
- sad
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 286
- 239000013598 vector Substances 0.000 title claims abstract description 149
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000001419 dependent effect Effects 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 13
- 230000002146 bilateral effect Effects 0.000 claims description 10
- 241000023320 Luma <angiosperm> Species 0.000 claims description 8
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 8
- 238000012545 processing Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 11
- 238000009795 derivation Methods 0.000 description 10
- 238000012935 Averaging Methods 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 6
- 101100537098 Mus musculus Alyref gene Proteins 0.000 description 5
- 101150095908 apex1 gene Proteins 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000010420 art technique Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual 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/557—Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- 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
-
- 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/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
- 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/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/513—Processing of motion vectors
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/53—Multi-resolution motion estimation; Hierarchical motion estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/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/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/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
움직임 벡터 정밀화 단계들을 감소시키기 위한, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법들 및 장치들이 제공된다. 일 방법에 따르면, 디코더는, 반올림되지 않은 병합 움직임 벡터들을 반올림함으로써 정렬 수준을 결정하고, 반올림된 움직임 벡터들을 사용하여 간단한 움직임 보상을 수행함으로써 2개의 패치 사이의 SAD를 산출하고, SAD가 CU 크기 의존적 임계 값 미만인지 여부를 결정한다. SAD가 CU 크기 의존적 임계 값 미만일 때, 디코더는 나머지 디코더-측 움직임 벡터 프로세스 단계들을 건너뛰고, 반올림되지 않은 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다. 다른 방법에서, 디코더는, 서브-픽셀 정밀도 병합 움직임 벡터들을 사용하는 이중선형 움직임 보상된 보간으로부터의 샘플들의 서브세트를 사용하여 2개의 패치 사이의 SAD를 산출한다. 또 다른 방법에서, 디코더는, 개개의 움직임 보상된 기준 패치들의 중심 위치들에서의 샘플들 사이의 평균-감소된 SAD를 산출한다.
Description
관련 출원들에 대한 상호-참조들
본 발명은 2018년 9월 19일자로 출원된 인도 가특허 출원 제IN201831035309호를 우선권으로 주장한다. 상기 인도 가특허 출원은 그 전체가 인용에 의해 본원에 포함된다.
본 발명은, 디코더-측 움직임 벡터 정밀화를 사용하는 비디오 코딩을 위한 움직임 보상에 관한 것이다. 특히, 본 발명의 실시예들은, 움직임 보상된 기준 패치들 사이의 정렬 수준을 검증하고 2개의 움직임 보상된 기준 패치 사이의 차이가 코딩 단위 크기 의존적 임계 값 미만일 때 정밀화를 건너뛰기 위한 방법들 및 장치들에 관한 것이다.
비디오 압축에서, 상호간 예측(inter prediction)은, 현재 블록에 대한 움직임 벡터들을 특정함으로써 이전에 디코딩된 기준 화상들의 재구성된 샘플들을 사용하는 프로세스이다. 이러한 움직임 벡터들은, 공간적 또는 시간적 움직임 벡터 예측자들을 사용함으로써 예측 잔차로서 코딩될 수 있다. 움직임 벡터들은 서브-픽셀 정밀도로 있을 수 있다. 재구성된 정수 위치 값들로부터 기준 프레임들(화상들)에서의 서브-픽셀 정밀도 픽셀 값들을 도출하기 위해, 보간 필터가 적용된다. 양방향-예측(bi-prediction)은, 현재 블록에 대한 예측이 2개의 기준 화상 영역으로부터의 2개의 움직임 벡터를 사용하여 도출된 2개의 예측 블록의 가중 조합으로서 도출되는 프로세스를 지칭한다. 이러한 경우에서, 움직임 벡터들에 부가하여, 2개의 예측 블록이 도출되는 기준 화상들에 대한 기준 색인들이 또한 코딩될 필요가 있다. 현재 블록에 대한 움직임 벡터들은 또한, 공간적 이웃의 움직임 벡터들 및 기준 색인들이 임의의 움직임 벡터 잔차들을 코딩함이 없이 승계되는 병합 프로세스를 통해 도출될 수 있다. 공간적 이웃들에 부가하여, 현재 블록에 대한 기준 프레임들까지의 거리에 대한 기준 프레임들까지의 거리를 처리하기 위해, 이전에 코딩된 기준 프레임들의 움직임 벡터들이 또한 저장되고 움직임 벡터들의 적절한 규모조정을 이용한 시간적 병합 옵션들로서 사용된다.
도 1은 템플릿 매칭 기반 디코더-측 움직임 벡터 도출을 도시하며, 여기서, 현재 블록의 템플릿은 기준 화상에서의 기준 템플릿과 매칭된다. 도 1을 참조하면, 현재 화상("Cur Pic"로 표시됨)에서의 템플릿(현재 코딩 단위(CU; coding unit)의 상단 및/또는 좌측 이웃하는 블록들)과 기준 화상("Ref0"으로 표시됨)에서의 템플릿의 것과 동일한 크기를 갖는 블록 사이의 가장 근접한 매치를 발견함으로써 현재 CU의 움직임 정보를 도출하기 위해 템플릿 매칭이 이용된다.
도 2는 양측 매칭 기반 디코더-측 움직임 벡터 도출을 도시하며, 여기서, 현재 블록은 움직임 궤적을 따른 2개의 기준 블록을 사용하여 예측된다. 도 2를 참조하면, 2개의 기준 화상(Ref0 및 Ref1)에 기반하여 현재 블록("Cur block"로 표시됨)의 움직임 정보가 도출된다. 현재 블록(Cur block)의 움직임 정보는, 기준 화상들(Ref0 및 Ref1)에서의 움직임 궤적을 따른 움직임 벡터들(MV0 및 MV1)과 연관된 2개의 블록 사이의 가장 양호한 매치를 발견함으로써 도출된다. 움직임 궤적이 직선일 때, 기준 화상(Ref0)과 연관된 움직임 벡터(MV0) 및 기준 화상(Ref1)과 연관된 움직임 벡터(MV1)는 현재 화상과 개개의 기준 화상들(Ref0 및 Ref1) 사이의 시간적 거리들(TD0 및 TD1)에 비례한다.
움직임 벡터 잔차 코딩 비트들이 추가로 감소될 수 있도록 디코더-측 움직임 벡터 정밀화 또는 도출을 수행하기 위한 몇몇 방법들이 제안되었다. 템플릿 매칭(TM; template matching) 방법들로 지칭되는 한 부류의 방법들은, 템플릿으로 지칭되는 이미 재구성된 (도 1에 도시된 바와 같은) 현재 블록에 인접한 L-형상 구역을 사용하고, 복수의 적합하게 규모조정된 공간적 및 시간적 움직임 벡터 후보들을 사용하여 각각의 기준 프레임에서 가장 양호하게 매칭하는 L-형상 구역을 (절대 차이 합 또는 평균-제거된 절대 차이 합과 같은 비용 함수들을 사용하여) 식별한다. 이어서, 가장 양호하게 매칭하는 후보를 중심으로, 그 중심 주위의 특정 정밀화 거리 내에서 추가적인 정밀화가 수행된다. 인코더-측 상에서, 단방향-예측(uni-prediction)(즉, 가장 양호하게 매칭하는 기준을 사용하는 예측)과 양방향-예측(즉, 상위 2개의 가장 양호하게 매칭하는 기준을 평균함으로써 도출되는 예측) 사이에서 결정하기 위해 비율 왜곡 최적화된 비용이 계산된다.
양측 매칭(BM) 방법들로 지칭되는 다른 부류의 방법들은, 2개의 상이한 기준 화상들에서 현재 코딩 단위(CU)의 움직임 궤적을 따른 2개의 블록 사이의 가장 근접한 매치를 발견함으로써 현재 CU의 움직임 정보를 도출한다. 이는 도 2에 도시된다. 연속적인 움직임 궤적의 가정 하에서, 2개의 기준 블록을 가리키는 움직임 벡터들(MV0 및 MV1)은 현재 화상과 2개의 기준 화상 사이의 시간적 거리들(즉, TD0 및 TD1)에 비례할 것이다. 현재 화상이 시간적으로 2개의 기준 화상 사이에 있고 현재 화상으로부터 2개의 기준 화상까지의 시간적 거리가 동일할 때, 양측 매칭은 거울 기반 양방향성 움직임 벡터(MV; motion vector)가 된다.
양측 매칭 병합 모드에서, CU의 움직임 정보가 2개의 상이한 기준 화상에서의 현재 CU의 움직임 궤적을 따른 2개의 블록 사이의 가장 근접한 매치에 기반하여 도출되므로, 양방향-예측이 항상 적용된다.
템플릿 매칭 병합 또는 양측 매칭 병합을 표시하는 명시적 병합 모드가 시그널링되어, 어떠한 디코더-측 움직임 벡터 도출도 요구하지 않는 기본 병합 모드와 이러한 모드들을 구별할 수 있다.
양측 매칭 모드에서, 시간적 거리들은 무시되고, 과거 및 장래의 기준 프레임들 각각에서 동일한 그리고 반대 움직임 벡터들로 양측 매칭이 수행된다.
일부 경우들에서, 어떠한 병합 색인도 시그널링되지 않는 반면, 다른 경우들에서는, 다수의 움직임 보상들을 수행하는 디코더 복잡도를 단순화하기 위해, 명시적 병합 색인이 시그널링된다.
디코더-측 움직임 벡터 정밀화(DMVR; decoder-side motion vector refinement) 방법으로 지칭되는 양측 매칭 모드의 변형에서, 명시적으로 시그널링된 병합 색인으로부터 획득되는 기준 목록들(L0 및 L1)에서의 예측 블록들을 사용하여 양측 평균된 템플릿이 먼저 생성되고, 이러한 템플릿에 대하여 양측 매칭이 수행된다. 템플릿은 임의의 이동이 존재하는 경우 업데이트된다. 또한, 일부 경우들에서, 하나의 기준에서 정밀화가 수행되고, 이러한 정밀화된 움직임 벡터의 미러링을 통해 다른 기준에서의 움직임 벡터가 획득된다. 정밀화는, 중심 위치가 최소 오차를 갖거나 최대 수의 반복에 도달할 때까지 2개의 기준 사이에서 교번한다.
일부 정밀화 프로세스들에서, CU 수준 정밀화가 먼저 수행된다. 이어서, 후보들로서의 CU 수준 정밀화된 MV들과 함께 서브-CU 수준 다중-후보 평가가 수행된다. 다른 정밀화 프로세스들에서, 각각의 서브-CU는 가장 양호하게 매칭하는 후보에 관하여 자신 고유의 정밀화를 수행할 수 있다.
암시적 디코더-측 도출 또는 정밀화 프로세스를 고려할 때, 인코더는, 인코더-측 재구성이 디코더-측 재구성과 매칭하기 위해 디코더와 정확히 동일한 방식으로 이러한 단계들을 수행할 필요가 있다.
디코더-측 움직임 벡터 정밀화 또는 도출 프로세스 동안 루마 샘플들만이 전형적으로 사용된다. 그러나, 루마 움직임 보상에 사용되는 바와 같은 (임의의 크로마 다운샘플링을 처리하도록 적합하게 규모조정된) 최종 정밀화 움직임 벡터들을 사용하여 색차가 또한 움직임 보상된다.
병합 움직임 벡터들이 서브-픽셀 정밀도이므로, 정밀화는 전형적으로, 각각의 기준에서의 개개의 서브-픽셀 정밀도 병합 움직임 벡터들로부터의 정수 거리에서 처음에 수행된다. 규범적 움직임 보상은 계산적으로 비용이 많이 드므로, 정수 거리 정밀화를 수행하는 데 요구되는 보간된 샘플 값들을 생성하기 위해 이중선형 보간 방법이 통상적으로 사용된다. 다른 종래 기술 기법들은, 파라미터 오차 표면(이를 사용하여 서브-픽셀 델타 움직임 벡터 정정들이 추정됨)을 획득하기 위해, 정수 거리 위치들에서 평가된 비용 함수 값들, 및 정밀화가 종료될 때 가장 낮은 비용을 갖는 위치에서의 비용 함수 값을 사용하는 것을 제안하였다. 각각의 기준에서 최종 정수 거리에 서브-픽셀 거리를 더한 것에 기반한 움직임 벡터 정정들이 일단 획득되면, 최종 규범적 움직임 보상이 수행된다.
본 발명의 실시예들은, 미리 결정된 코딩 단위 크기 의존적 임계 값에 대한 움직임 보상된 기준 패치들 사이의 정렬의 수준을 결정하기 위한 방법들 및 장치들에 관한 것이다. 미리 결정된 코딩 단위 크기 의존적 임계 값에 대한 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정함으로써, 디코더-측 움직임 벡터 정밀화 반복들의 계산 동작들이 절약될 수 있고, 그에 의해, 비디오 디코더에서의 전력 소모가 감소된다.
움직임 벡터 정밀화 단계들을 감소시키기 위한, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법들 및 장치들이 제공된다. 일 방법에 따르면, 비디오 디코더는, 병합 움직임 벡터들을 반올림함으로써 정렬 수준을 결정하고, 반올림된 움직임 벡터들을 사용하여 간단한 움직임 보상을 수행함으로써 2개의 움직임 보상된 기준 패치 사이의 절대 차이 합(SAD; sum of absolute differences)을 산출하고, SAD가 CU 크기 의존적 임계 값 미만인지 여부를 결정한다. SAD가 CU 크기 의존적 임계 값 미만일 때, 디코더는 나머지 디코더-측 움직임 벡터 프로세스 단계들을 건너뛰고, 반올림되지 않은 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다. 일 실시예에서, 반올림되지 않은 병합 움직임 벡터들은 수평 방향 및 수직 방향에서 가장 가까운 정수 샘플 위치로 반올림될 수 있고, 최종 움직임 보상은 정수 위치 샘플들의 평균화를 수행하는 것을 포함한다. 다른 실시예에서, 반올림되지 않은 병합 움직임 벡터들은 절반-픽셀 위치 샘플들을 획득하기 위해 수평 방향 및 수직 방향에서 가장 가까운 절반-픽셀 샘플 위치로 반올림될 수 있고, 최종 움직임 보상은 절반-픽셀 위치 샘플들의 평균화를 수행하는 것을 포함한다. 방법은, SAD가 미리 결정된 임계 값 미만일 때에는 언제나, 비디오 디코더가 움직임 보상된 기준 패치들 사이의 정렬 수준이 수용가능하다는 것을 결정하고, 비디오 결정자는 이중선형 보간, 평균 값 결정, 정밀화 비용 함수 평가들, 및 다른 프로세스 단계들과 같은 움직임 벡터 정밀화 프로세스들을 건너뛰어 클록 사이클들을 절약하고 전력 소모를 감소시킬 수 있다는 점에서 유리하다. 다른 방법에서, 비디오 디코더는, 서브-픽셀 정밀도 병합 움직임 벡터들을 사용하는 이중선형 움직임 보상된 보간으로부터의 샘플들의 서브세트를 사용하여 2개의 움직임 보상된 기준 패치 사이의 SAD를 산출한다. 이어서, SAD는 코딩 단위(CU) 크기 의존적 임계 값과 비교된다. 코딩 단위 크기 의존적 임계 값의 비트 심도는 보간된 샘플들의 비트 심도에 따라 조정될 수 있다. 보간된 샘플들의 서브세트를 사용하여 SAD만을 계산함으로써, 방법은 유리하게 더 적은 연산(클록 사이클)들을 요구한다. 또 다른 방법에서, 디코더는, 개개의 움직임 보상된 기준 패치들의 중심 위치들에서 움직임 보상된 보간된 샘플들 사이의 평균-감소된 SAD(MR-SAD; mean-reduced SAD)를 산출하고, MR-SAD가 CU 크기 의존적 임계 값 미만인지 여부를 결정한다. 이러한 방법에서, 2개의 움직임 보상된 기준 패치의 중심 위치들의 MR-SAD는 정밀화가 시작되는 곳에서 계산된다. 중심 위치들에 대한 MR-SAD가 CU 크기 의존적 임계 값 미만일 때, 비디오 디코더는 나머지 디코더-측 움직임 벡터 정밀화 프로세스를 건너뛴다. 상호간 예측 방법은, 병합 모드의 초기 움직임 벡터들에 기반하여 제1 움직임 보상된 기준 패치 및 제2 움직임 보상된 기준 패치를 획득하는 단계; 제1 움직임 보상된 기준 패치 및 제2 움직임 보상된 기준 패치 사이의 패치 차이 값을 계산하는 단계; 패차 차이 값이 임계치 미만인 경우에 초기 움직임 벡트들에 기반하여 현재 블록의 예측 값을 획득하는 단계 ― 임계치는 현재 블록의 크기에 기반하여 결정됨 ―; 및 패치 차이 값이 임계치 이상인 경우에 현재 블록의 예측 값을 획득하기 위해 초기 움직임 벡터들을 정밀화하는 단계를 포함한다. 실현가능한 구현에서, 초기 움직임 벡터들은 현재 블록의 이웃하는 블록의 움직임 벡터들로부터 도출된다. 실현가능한 구현에서, 초기 움직임 벡터들은 제1 움직임 벡터 및 제2 움직임 벡터를 포함하며, 제1 움직임 보상된 기준 패치는 제1 움직임 벡터에 따라 획득되고, 제2 움직임 보상된 기준 패치는 제2 움직임 벡터에 따라 획득된다. 실현가능한 구현에서, 패치 차이 값은 SAD 값 또는 평균-감소된 SAD 값이다. 실현가능한 구현에서, 제1 움직임 보상된 기준 패치와 제2 움직임 보상된 기준 패치 사이의 패치 차이 값을 계산하는 것은, 제1 움직임 보상된 기준 패치의 서브세트 샘플들과 제2 움직임 보상된 기준 패치의 대응하는 서브세트 샘플들 사이의 패치 차이 값을 계산하는 것을 포함한다. 실현가능한 구현에서, 제1 움직임 보상된 기준 패치와 제2 움직임 보상된 기준 패치 사이의 패치 차이 값을 계산한 후에, 패치 차이 값 및 임계치에 기반하여 비교를 수행하는 것을 더 포함한다. 실현가능한 구현에서, 패치 차이 값 및 임계치에 기반하여 비교를 수행하기 전에, 현재 블록의 크기에 따라 임계치를 결정한 후에 임계치를 조정하는 것을 더 포함한다. 실현가능한 구현에서, 패치 차이 값이 임계치 미만인 경우에, 초기 움직임 벡터들에 기반하여 현재 블록의 예측 값을 획득하기 전에, 디코더-측 움직임 벡터 정밀화(DMVR)를 건너뛴다고 결정하는 것을 더 포함한다. 실현가능한 구현에서, 패치 차이 값이 임계치 미만인 경우에, 초기 움직임 벡터들과 동일한 움직임 벡터들을 사용하여 현재 블록의 예측 값을 획득한다. 상호간 예측 장치는, 프로세서 실행가능 명령어들이 저장된 비-일시적인 메모리; 및 메모리에 결합되는 프로세서를 포함하며, 프로세서는, 위의 상호간 예측 방법의 실현가능한 구현 중 임의의 것에 따른 방법을 가능하게 하도록 프로세서 실행가능 명령어들을 실행하게 구성된다. 이러한 신규한 기법들은 움직임 벡터 정밀화의 상당한 반복들을 절약하고, 그에 의해, 클록 사이클들의 수 및 비디오 디코더의 전력 소모를 감소시킨다.
도 1은 템플릿 매칭 기반 디코더-측 움직임 벡터 도출을 도시하며, 여기서, 현재 블록의 템플릿은 기준 화상에서의 기준 템플릿과 매칭된다.
도 2는 양측 매칭 기반 디코더-측 움직임 벡터 도출을 도시하며, 여기서, 현재 블록은 움직임 궤적을 따른 2개의 기준 블록을 사용하여 예측된다.
도 3은 양측 템플릿 매칭 기반 디코더-측 움직임 벡터 정밀화(DMVR)의 예를 도시하며, 여기서, 템플릿은, 초기 움직임 벡터들(MV0 및 MV1)에 의해 참조되는 예측 블록들로부터의 양방향-예측 및 양측 템플릿 매칭을 사용하여, 업데이트된 움직임 벡터들(MV0' 및 MV1')에 의해 참조되는 가장 양호하게 매칭되는 블록들을 발견함으로써 생성된다.
도 4는 본 발명의 실시예에 따른, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법을 예시하는 간략화된 흐름도이며, 여기서, 정밀화 프로세스 단계들의 조건부 건너뜀은 반올림된 정수 위치 기반 비용 함수에 기반한다.
도 5는 본 발명의 실시예에 따른, 움직임 보상된 패치들 사이의 정렬 수준의 디코더-측 검증, 확인 또는 결정을 사용하는 방법의 간략화된 흐름도를 도시하며, 여기서, 정밀화 프로세스 단계들의 조건부 건너뜀은, 움직임 보상된 보간된 샘플들의 서브세트를 사용하는 2개의 움직임 보상된 기준 패치 사이의 절대 차이 합에 기반한다.
도 6은 본 발명의 실시예에 따른, 움직임 보상된 패치들 사이의 정렬 수준의 디코더-측 검증, 확인 또는 결정을 사용하는 방법의 간략화된 흐름도를 도시하며, 여기서, 정밀화 프로세스 단계들의 조건부 건너뜀은, 개개의 움직임 보상된 기준 패치들의 중심 위치들에서의 움직임 보상된 보간된 샘플들 사이의 평균-감소된 절대 차이 합에 기반한다.
도 7은 콘텐츠 전달 서비스를 실현하는 콘텐츠 공급 시스템(3100)의 예시적인 구조를 도시하는 블록도이다.
도 8은 단말기 디바이스의 예의 구조를 도시하는 블록도이다.
도 2는 양측 매칭 기반 디코더-측 움직임 벡터 도출을 도시하며, 여기서, 현재 블록은 움직임 궤적을 따른 2개의 기준 블록을 사용하여 예측된다.
도 3은 양측 템플릿 매칭 기반 디코더-측 움직임 벡터 정밀화(DMVR)의 예를 도시하며, 여기서, 템플릿은, 초기 움직임 벡터들(MV0 및 MV1)에 의해 참조되는 예측 블록들로부터의 양방향-예측 및 양측 템플릿 매칭을 사용하여, 업데이트된 움직임 벡터들(MV0' 및 MV1')에 의해 참조되는 가장 양호하게 매칭되는 블록들을 발견함으로써 생성된다.
도 4는 본 발명의 실시예에 따른, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법을 예시하는 간략화된 흐름도이며, 여기서, 정밀화 프로세스 단계들의 조건부 건너뜀은 반올림된 정수 위치 기반 비용 함수에 기반한다.
도 5는 본 발명의 실시예에 따른, 움직임 보상된 패치들 사이의 정렬 수준의 디코더-측 검증, 확인 또는 결정을 사용하는 방법의 간략화된 흐름도를 도시하며, 여기서, 정밀화 프로세스 단계들의 조건부 건너뜀은, 움직임 보상된 보간된 샘플들의 서브세트를 사용하는 2개의 움직임 보상된 기준 패치 사이의 절대 차이 합에 기반한다.
도 6은 본 발명의 실시예에 따른, 움직임 보상된 패치들 사이의 정렬 수준의 디코더-측 검증, 확인 또는 결정을 사용하는 방법의 간략화된 흐름도를 도시하며, 여기서, 정밀화 프로세스 단계들의 조건부 건너뜀은, 개개의 움직임 보상된 기준 패치들의 중심 위치들에서의 움직임 보상된 보간된 샘플들 사이의 평균-감소된 절대 차이 합에 기반한다.
도 7은 콘텐츠 전달 서비스를 실현하는 콘텐츠 공급 시스템(3100)의 예시적인 구조를 도시하는 블록도이다.
도 8은 단말기 디바이스의 예의 구조를 도시하는 블록도이다.
본 발명은, VCEG의 Q16과 MPEG(SC29/WG11) 사이의 공동 작업인 공동 비디오 탐구 팀(Joint Video Exploration Team) 내에서의 공동 탐구 모델(JEM; Joint Exploratory Model)로서 앞서 추구되었던 다용도 비디오 코딩 표준화에 관한 것이다. 본 발명과 관련된 기여 문헌들 및 특허들의 목록을 얻기 위해 디코더-측 움직임 벡터 정밀화 및 디코더-측 움직임 벡터 도출에 관련된 문헌(JVET-G1001) 및 다른 화웨이(Huawei) 종래 기술이 사용될 수 있다.
위에 설명된 바와 같이, 양측 매칭 프로세스는, 양방향-예측에 수반되는 2개의 기준에서의 움직임 보상된 블록들 사이의 정렬의 수준을 개선하려고 시도한다. 가외의 플래그를 코딩하는 것을 피하기 위해, 바람직한 옵션은, 모든 병합 모드 상호간-코딩된 코딩 단위들이 디코더-측 움직임 벡터 정밀화에 자격이 있도록 하는 것이다. 그러나, 상당히 양호한 수의 코딩 단위들이 병합 모드 움직임 벡터들에서 이미 매우 양호한 정렬을 갖고, 정밀화를 통한 개선의 여지를 너무 많이 갖지 않는다는 것을 알 수 있다. 정밀화가 정밀화 범위 내의 다수의 위치들에서 비용 함수 평가들을 수행하는 것을 수반하므로, 더 양호한 배터리 수명 또는 더 낮은 에너지 소모로 변환될 수 있는 평균 디코더 복잡도의 상당한 감소를 초래할 수 있는 가능한 개선이 존재하지 않을 때에는 이러한 동작들을 피한다. 일부 종래 기술 방법들은, 양방향-예측 병합 모드 코딩 단위들에서의 병합 움직임 벡터들로부터 획득된 2개의 규범적 움직임 보상된 패치 사이의 정렬의 수준이 각각의 코딩 단위 크기에 대한 미리 결정된 임계치 미만일 경우 정밀화를 건너뛰는 것을 제안하였다. 그러나, 정밀화를 수행하는 데 사용되는 샘플들을 생성하는 데 이중선형 보간이 통상적으로 이용된다는 사실을 고려할 때, 종래 기술은 여전히, 정밀화가 건너뛰어질 수 있는지 여부를 확인하기 위한 규범적 움직임 보상, 정밀화를 수행하기 위한 이중선형 보간, 및 서브-픽셀 정밀도 정밀화 움직임 벡터들을 이용한 최종 규범적 움직임 보상을 요구할 것이다. 규범적 8-탭 보간 필터들은 계산 비용이 상당히 많이 드므로, 보간 필터링을 두 번 수행하는 것은, 정밀화를 건너뛰기 위한 테스트가 없는 것보다 더 높은 최악의 경우의 복잡도를 만든다. 또한, 하드웨어 타이밍 관점에서, 절대 차이 합의 평가는 정밀화에 이용가능한 클록들을 감소시키는 의존적 스테이지를 부가한다.
그러므로, (정밀화된 움직임 벡터들을 사용하는 최종의 정확한 움직임 보상을 이용한 이중선형 보간 기반 정밀화와 비교하여) 보간 사이클들을 증가시킴이 없이 그리고 하드웨어 구현들에 대한 최악의 경우의 타이밍 제약들을 악화시킴이 없이 정밀화 반복들을 건너뛰기 위한 확인의 개념을 조화시킬 필요가 있다.
움직임 벡터(MV) 정밀화는, 양측 매칭 비용 또는 템플릿 매칭 비용을 기준으로 하는 패턴 기반 MV 탐색이다. 현재의 개발에서, 2개의 탐색 패턴, 즉, CU 수준 및 서브-CU 수준 각각에서의 MV 정밀화를 위한 제한되지 않은 중심-편향 다이아몬드 탐색(UCBDS; unrestricted center-biased diamond search) 및 적응형 교차 탐색이 지원된다. CU 및 서브-CU 수준 둘 모두의 MV 정밀화를 위해, MV는 1/4 루마 샘플 MV 정밀도로 직접 탐색되고, 그 이후에, 1/8 루마 샘플 MV 정밀화가 후속된다. CU 및 서브-CU 단계에 대한 MV 정밀화의 탐색 범위는 8개의 루마 샘플과 동일하게 설정된다.
양방향-예측 동작에서, 하나의 블록 구역의 예측을 위해, 목록 0의 MV 및 목록 1의 MV를 사용하여 각각 형성된 2개의 예측 블록이 조합되어 단일 예측 신호를 형성한다. 디코더-측 움직임 벡터 정밀화(DMVR) 방법에서, 양방향-예측의 2개의 움직임 벡터는 양측 템플릿 매칭 프로세스에 의해 추가로 정밀화된다. 정밀화된 MV를 부가적인 움직임 정보의 송신 없이 획득하기 위해, 기준 화상들에서의 양측 템플릿 및 재구성 샘플들 사이의 왜곡 기반 탐색을 수행하기 위해서 양측 템플릿 매칭이 디코더에서 적용된다.
도 3은 양측 템플릿 매칭 기반 디코더-측 움직임 벡터 정밀화(DMVR)의 예를 도시하며, 여기서, 템플릿은, 초기 MV0 및 MV1에 의해 참조되는 예측 블록들로부터의 양방향-예측 및 양측 템플릿 매칭을 사용하여, 업데이트된 MV0' 및 MV1'에 의해 참조되는 가장 양호하게 매칭되는 블록들을 발견함으로써 생성된다. 먼저, 병합 모드에서의 현재 블록에 대해 가장 양호한 매치 MV가 목록 0에서의 후보 MV0가 되도록 설정된다. 유사하게, (병합 모드에서의) 현재 블록에 대해 가장 양호한 매치 MV가 목록 1에서의 후보 MV가 되도록 설정된다. 이어서, 기준 픽셀들이 평균되어 템플릿을 형성한다. 다음으로, 템플릿을 사용하여, 제1 및 제2 기준 화상들의 후보 MV들의 주변 구역들이 탐색되고, 비용이 가장 낮은 MV가 최종 MV가 되도록 결정된다. 비용 값은, 템플릿에서의 각각의 픽셀과 탐색된 구역들에서의 각각의 픽셀 사이의 차이 합을 사용하여 산출될 수 있다. 도 3을 참조하면, 단계 1에서, 각각 목록 0 및 목록 1의 기준 블록들에서의 초기 움직임 벡터들(MV0 및 MV1)에 의해 참조되는 예측 블록들로부터 양측 템플릿이 생성된다.
단계 2에서, 양측 매칭은, 업데이트된 움직임 벡터들(MV0' 및 MV1')에 의해 참조되는 가장 양호하게 매칭되는 블록들을 발견할 것이다. 템플릿 매칭 동작은, 생성된 템플릿과 기준 화상에서의 (초기 예측 블록 주위의) 샘플 구역 사이의 비용 척도들을 산출하는 것을 포함한다. 2개의 기준 화상들 각각에 대해, 최소 템플릿 비용을 산출하는 MV가 원래의 것을 대체할 그 목록의 업데이트된 MV로 간주된다. 현재의 개발에서, 각각의 목록에 대해 9개의 MV 후보가 탐색된다. 9개의 MV 후보는, 원래의 MV, 및 수평 또는 수직 방향 중 어느 하나 또는 둘 모두에서 원래의 MV에 대해 오프셋된 하나의 루마 샘플을 갖는 8개의 주변 MV를 포함한다. 마지막으로, 2개의 새로운 MV, 즉, MV0' 및 MV1'가 최종 양방향-예측 결과들을 생성하는 데 사용된다. 절대 차이 합(SAD)이 비용 척도로서 사용된다. DMVR은, 부가적인 구문 요소들의 송신 없이, 과거의 기준 화상으로부터의 하나의 MV 및 장래의 기준 화상으로부터의 다른 하나의 MV를 이용하여 양방향-예측의 병합 모드에 적용된다.
다양한 실시예들에서, 2개의 움직임 보상된 기준 패치 사이의 차이는 미리 결정된 코딩 단위 크기 의존적 임계 값에 대하여 비교되거나 측정되고, 비교 또는 측정 결과에 기반하여 정밀화가 건너뛰어진다. 2개의 움직임 보상된 기준 패치 사이의 차이는, 사전 보간 샘플들을 사용하거나 이중선형 보간된 샘플들의 서브세트를 사용하여 수행된다. 또한, 일부 실시예들에서, 패치들의 평균-제거된 절대 차이 합(MR-SAD; mean-removed sum of absolute differences)은 정밀화에 대한 오차 척도로서 사용될 수 있고, 패치들의 간단한 절대 차이 합은, 대체로 평균 계산들의 절약을 허용하고, 또한, 최악의 경우의 타이밍 요건들을 돕기 위해 건너뜀 확인이 수행되는 척도로서 사용될 수 있다. 미리 결정된 임계 값은, 버퍼 크기 및 처리 요건들을 감소시키기 위해 보간 동안 또는 그 후에 이용될 수 있는 더 낮은 비트 심도들에 적응된다.
디코더-측 움직임 벡터 정밀화/도출이 코딩 시스템의 규범적 양상이라는 것을 고려할 때, 인코더의 재구성과 디코더의 재구성 사이에 어떠한 드리프트도 갖지 않기 위해 인코더가 또한 동일한 오차 표면 기법을 수행해야 할 것이다. 그러므로, 모든 실시예들의 모든 양상들이 인코딩 및 디코딩 시스템들 둘 모두에 적용가능하다. 아래에 제공되는 실시예들은 단지 본 개시내용을 이해하기 위한 일부 예들이며, 그에 따라, 제한하도록 의도된 것으로 이해되지 않아야 한다.
실시예 1
이 실시예에서, 병합 움직임 벡터들이 가장 가까운 정수 위치로 반올림된다. 이러한 반올림된 정수 그리드 움직임 벡터들을 양방향-예측에 사용되는 2개의 기준에서의 현재 코딩 단위 위치에 관한 오프셋으로서 사용하여, 코딩 단위 크기 샘플들의 블록들 사이의 절대 차이 합(SAD)이 계산된다. 이러한 절대 차이 합은 코딩 단위(CU) 크기 의존적 임계 값에 대하여 비교되고, 절대 차이 합이 임계 값 미만일 때 남은 또는 나머지 디코더-측 움직임 벡터 정밀화 프로세스 단계들이 규범적으로 건너뛰어진다.
원하는 평균 계산 절약들 또는 높은 임계 값으로의 압축 이득들의 저하에 대한 에너지 절약 절충에 기반하여 적절한 미리 결정된 CU 크기 의존적 임계 값이 결정된다.
도 4는 본 발명의 실시예에 따른, 움직임 보상된 패치들 사이의 정렬 수준의 디코더-측 검증 또는 결정을 사용하는 방법의 간략화된 흐름도이며, 여기서, 나머지 정밀화 프로세스 단계들의 조건부 건너뜀은 반올림된 정수 위치 기반 비용 함수에 기반한다. 흐름도에 도시된 단계들은, 인코더-측 또는 디코더-측에서, 하나 이상의 프로세서 상에서 실행가능한 프로그램 코드들 또는 명령어들로서 구현될 수 있다. 흐름도에 도시된 단계들은, 전자 부품들, 디지털 및/또는 아날로그 회로, 논리 소자들, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들을 사용하여 구현될 수 있다. 방법은, 단계(401)에서, 비디오 디코더(비디오 디코더 및 디코더는 본원에서 상호교환가능하게 사용됨)가 2개의 움직임 보상된 기준 패치 사이에서 반올림되지 않은 병합 움직임 벡터들을 획득하는 것을 포함할 수 있다. 패치는, M x N 픽셀의 미리 결정된 크기의 현재 블록을 갖고, M 및 N은 각각 양의 정수들이다. 일부 실시예들에서, M은 N과 동일할 수 있다. 다른 실시예들에서, M 및 N은 상이할 수 있다. 패치는 예측 단위 또는 코딩 단위일 수 있고, 화상(프레임) 내의 샘플들의 블록으로 지칭된다. 반올림되지 않은 병합 움직임 벡터들은, 양측 매칭, 템플릿 매칭, 또는 다른 기법들을 사용하여 획득될 수 있다. 반올림되지 않은 병합 움직임 벡터들은, 정수 픽셀 정밀도 또는 분수 픽셀 정밀도를 갖는 병합 움직임 벡터들일 수 있다. 단계(402)에서, 디코더는, 반올림된 움직임 벡터들을 획득하기 위해, 반올림되지 않은 병합 움직임 벡터들을 반올림한다. 반올림 연산은, 반올림되지 않은 움직임 벡터를 정수 픽셀 정밀도 움직임 벡터로 변환하는 것 또는 움직임 벡터의 픽셀 정밀도를 감소시키는 것을 포함할 수 있다. 예컨대, 분수 정밀도 움직임 벡터는 정수 픽셀 정밀도 움직임 벡터로 반올림될 수 있다. 반올림 연산은, 벡터 값을 하나 이상의 비트만큼 우측으로 편이시키는 것을 포함할 수 있다. 일 실시예에서, 비디오 디코더는, 반올림되지 않은 병합 움직임 벡터들을 가장 가까운 정수 샘플 위치들로 반올림할 수 있다. 다른 실시예에서, 비디오 디코더는, 반올림되지 않은 병합 움직임 벡터들을 가장 가까운 절반-픽셀 샘플 위치들로 반올림할 수 있다.
단계(403)에서, 비디오 디코더는, 반올림된 움직임 벡터들을 사용하여 간단한 움직임 보상을 수행함으로써 2개의 움직임 보상된 기준 패치 사이의 절대 차이 합(SAD)을 계산(산출)한다. 개개의 기준 화상들(Ref0, Ref1)에서의 차이 합(SAD)(제1 패치, 제2 패치)은 개개의 탐색 공간들에서의 가장 양호한 템플릿 매치를 결정하기 위한 비용 함수이다. 단계(404)에서, 디코더는, SAD가 코딩 단위(CU) 크기 의존적 임계 값 미만인지 또는 미만이 아닌지(즉, 이상인지)를 결정하기 위해 SAD를 CU 크기 의존적 임계 값과 비교한다. SAD가 CU 크기 의존적 임계 값 미만인 것으로 결정될 때(단계(405)에서 "예"), 디코더는 디코더-측 움직임 벡터 정밀화(DMVR) 프로세스 단계들을 건너뛰고(단계(406)), 반올림되지 않은 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다(단계(408)). SAD가 CU 크기 의존적 임계 값 미만이 아닌 것으로 결정될 때(단계(405)에서 "아니오"), 디코더는 디코더-측 움직임 벡터 정밀화(DMVR) 프로세스 단계들을 수행하고(단계(407)), 최종 움직임 보상을 수행한다(단계(408)). 디코더는, 현재 블록에 근접하게 매칭되는 탐색 윈도우 내의 기준 블록에 기반하여 움직임 벡터 후보들을 정밀화할 수 있는데, 즉, 디코더는, SAD가 CU 크기 의존적 임계 값 미만이 아닐 때 (예컨대, 이중선형 보간을 사용하여) 현재 블록에 대한 새로운 보간된 움직임 벡터를 결정할 수 있고, 그 후, 디코더는 이어서, 현재 블록에 대한 최종 움직임 보상을 수행한다. 일 실시예에서, 최종 움직임 보상을 수행하는 것은, 정수 위치 샘플들을 획득하기 위해, 반올림되지 않은 병합 움직임 벡터들을 수평 방향 및 수직 방향에서 가장 가까운 정수 샘플 위치로 반올림하는 것, 및 정수 위치 샘플들에 대해 평균화 연산을 수행하는 것을 포함할 수 있다. 다른 실시예에서, 최종 움직임 보상을 수행하는 것은, 절반-픽셀 위치 샘플들을 획득하기 위해, 반올림되지 않은 병합 움직임 벡터들을 수평 방향 및 수직 방향에서 가장 가까운 절반-픽셀 샘플 위치로 반올림하는 것, 및 절반-픽셀 위치 샘플들에 대해 평균화 연산을 수행하는 것을 포함할 수 있다.
이러한 실시예는, 다른 이점들 중에서도, 평가된 척도가 임계 값 미만일 때에는 언제나, 상이한 위치들에서의 디코더-측 움직임 벡터 정밀화의 모든 다른 양상들, 이를테면, 이중선형 보간, 평균 값 결정, 및 정밀화 비용 함수 평가들이 건너뛰어질 수 있고, 최종 규범적 움직임 보상이 수행될 수 있다는 점에서 유리하다. 하드웨어 구현들에서, 일부 실시예들에서는, 타이밍 제약을 개선하기 위해(즉, 정밀화 작업들을 수행할 더 많은 시간 또는 클록 사이클들을 획득하기 위해) 정밀화를 건너뛰기 위한 척도의 평가와 병행하여 이중선형 보간을 추측으로 수행하는 것이 가능하다는 것이 유의되어야 한다.
실시예 2
이 실시예에서, 디코더는 서브-픽셀 정밀도 병합 움직임 벡터들을 사용하여 수행되는 이중선형 움직임 보상된 보간으로부터의 샘플들의 서브세트를 사용하여 양방향-예측에서 수반되는 2개의 기준에서의 움직임 보상된 패치들 사이의 절대 차이 합을 계산한다. 이러한 절대 차이 합은 이어서, 미리 결정된 코딩 단위 크기 의존적 임계 값에 대하여 비교되고, 절대 차이 합이 임계 값 미만이라고 디코더가 결정할 때, 남은 정밀화 단계들이 규범적으로 건너뛰어진다.
일 예시적인 구현에서, 이중선형 움직임 보상된 보간이 기준 패치들 둘 모두에 대해 병행하여(동시에) 수행된다. 다른 실시예에서, 2개의 기준에 걸친 보간된 샘플들의 생성은 인터리빙된다. 이러한 경우들 둘 모두에서, 절대 차이 합의 산출은 유리하게, 모든 보간된 샘플들이 생성되는 것을 대기하는 것이 아니라 가장 빠른 가능한 시간에 계산된다. 이러한 프로세스는 또한 보간된 샘플들을 다시 로딩하는 것을 피한다. 이는 하드웨어 레이턴시를 감소시키고, 최악의 경우의 경로에 요구되는 나머지 정밀화 계산들을 수행하는 데 이용가능한 시간을 개선한다.
일부 구현들에서, 코딩 단위 치수들과 동일한 치수들(크기)을 갖는 샘플들의 블록이 절대 차이 합을 계산하는 데 사용된다. 그러한 실시예들에서, 중심 위치 이외의 정밀화 위치들에 요구되는 보간된 샘플들의 계산은, 절대 차이 합이 임계 값 미만인 것으로 결정될 때 건너뛰어질 수 있다. 다른 실시예들에서, 절대 차이 합을 계산하는 데 있어 보간된 샘플들의 서브세트만이 활용된다. 이러한 경우들에서, 미리 결정된 임계 값은 절대 차이 합에 사용되는 샘플들의 수의 함수이도록 수정된다. 절대 차이 합이 임계 값 미만이라고 디코더가 결정할 때, 나머지 보간이 또한 건너뛰어질 수 있다. 일 실시예에서, 보간된 샘플들의 서브세트는, 일 실시예에서, 샘플일 수 있다. 다른 실시예에서, 보간된 샘플들의 서브세트는, 다른 실시예에서, 샘플일 수 있고, 여기서, coding_unit_width는 코딩 단위의 폭이고, coding_unit_height는 코딩 단위의 높이이다.
이중선형 보간이 보간된 샘플들의 비트 심도를 제약할 때, 미리 결정된 임계치는 또한, 보간된 샘플들의 제약되지 않은 비트 심도에서 도출된 임계 값을 하향 편이시킴으로써 그에 따라 조정된다.
도 5는 본 발명의 실시예에 따른, 움직임 보상된 패치들 사이의 정렬 수준의 디코더-측 검증, 확인, 또는 결정을 사용하는 방법의 간략화된 흐름도를 도시하며, 여기서, 디코더-측 움직임 벡터 정밀화 프로세스 단계들의 조건부 건너뜀은 이중선형 움직임 보상된 보간된 샘플들의 서브세트에 기반한다. 흐름도에 도시된 단계들은, 인코더-측 또는 디코더-측에서, 하나 이상의 프로세서 상에서 실행가능한 프로그램 코드들 또는 명령어들로서 구현될 수 있다. 흐름도에 도시된 단계들은 또한, 전자 부품들, 디지털 및/또는 아날로그 회로, 논리 소자들, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들을 사용하여 구현될 수 있다. 방법은, 단계(501)에서, 비디오 디코더가 2개의 움직임 보상된 기준 패치 사이에서 반올림되지 않은 병합 움직임 벡터들을 획득하는 것을 포함할 수 있다. 패치는, M x N 픽셀의 미리 결정된 크기의 현재 블록을 갖고, M 및 N은 각각 양의 정수들이다. 일부 실시예들에서, M 및 N은 동일할 수 있다. 다른 실시예들에서, M 및 N은 상이할 수 있다. 반올림되지 않은 병합 움직임 벡터들은, 양측 매칭, 템플릿 매칭, 또는 다른 기법들을 사용하여 획득될 수 있다. 단계(502)에서, 디코더는 또한, 서브-픽셀 정밀도 병합 움직임 벡터들에 기반하여, 움직임 보상된 보간된 샘플들을 획득한다.
단계(503)에서, 비디오 디코더는, 움직임 보상된 보간된 샘플들의 서브세트를 사용하여 2개의 움직임 보상된 기준 패치 사이의 절대 차이 합(SAD)을 계산(산출)한다. 일부 실시예들에서, SAD는 보간 프로세스와 함께 병행하여 또는 동시에 계산될 수 있다. 단계(504)에서, 디코더는, SAD가 코딩 단위(CU) 크기 의존적 임계 값 미만인지 또는 미만이 아닌지를 결정하기 위해 SAD를 CU 크기 의존적 임계 값과 비교한다. 일 실시예에서, CU 크기 의존적 임계 값은, 보간된 샘플들의 서브세트에서의 샘플들의 수의 함수이다. SAD가 CU 크기 의존적 임계 값 미만인 것으로 결정될 때(단계(505)에서 "예"), 디코더는 디코더-측 움직임 벡터 정밀화(DMVR) 프로세스 단계들을 건너뛰고(단계(506)), 반올림되지 않은 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다(단계(508)). SAD가 CU 크기 의존적 임계 값 미만이 아닌 것으로(즉, 그 이상인 것으로) 결정될 때(단계(505)에서 "아니오"), 디코더는 반올림되지 않은 병합 움직임 벡터들을 사용하여 디코더-측 움직임 벡터 정밀화(DMVR) 프로세스 단계들을 수행하고(단계(507)), 이어서, 반올림되지 않은 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다(단계(508)). 디코더는, 현재 블록에 근접하게 매칭되는 탐색 윈도우 내의 기준 블록에 기반하여 움직임 벡터 후보들을 정밀화할 수 있는데, 즉, 디코더는, SAD가 CU 크기 의존적 임계 값 미만이 아닐 때 (예컨대, 이중선형 보간을 사용하여) 현재 블록에 대한 새로운 보간된 움직임 벡터를 결정할 수 있고, 그 후, 디코더는 이어서, 반올림되지 않은 병합 움직임 벡터들을 사용하여 현재 블록에 대한 최종 움직임 보상을 수행한다.
제2 실시예(실시예 2)는, 보존적인 임계치가 여전히, 많은 코딩 단위들이 정밀화 프로세스의 나머지 단계들을 건너뛸 수 있게 할 수 있기 때문에, 더 적은 코딩 이득 감소를 허용한다. 타이밍 관점에서, 임계치에 대한 SAD의 결정 또는 검증에 요구되는 절대 차이 합 연산들은 이중선형 보간 단계에 대하여 실질적으로 은닉될 수 있으며, 그에 따라, 최악의 경우의 타이밍 제약에 영향을 주지 않을 것이다.
실시예 3
이 실시예에서, 정밀화가 시작되는 중심 위치에 대해 계산된 평균-제거된 절대 차이 합(MR-SAD)을 사용하여 조기 퇴장 확인(결정)이 수행된다. 일부 실시예들에서, 중심 위치의 MR-SAD가 먼저 평가되고 코딩 단위 크기 의존적 임계치에 대하여 비교된다. 중심 위치에 대한 MR-SAD가 임계 값 미만인 경우, 남은 정밀화 프로세스가 규범적으로 건너뛰어진다.
일부 실시예들에서, 중심 위치 이외의 위치들(예컨대, 제1 반복 정밀화 지점들 내의 특정 위치들)에서의 MR-SAD 평가들이 중심 위치의 MR-SAD 평가와 함께 평가될 수 있다는 것이 가능하다. 그러나, 이러한 평가된 MR-SAD들은, 중심 위치의 MR-SAD가 미리 결정된 임계 값 미만일 때 어떠한 효과도 없을 것이다.
보간이 보간된 샘플들의 비트 심도를 제약할 때, 미리 결정된 임계 값은 또한, 보간된 샘플들의 제약되지 않은 비트 심도에서 도출된 임계 값을 하향 편이시킴으로써 그에 따라 조정된다.
도 6은 본 발명의 실시예에 따른, 움직임 보상된 패치들 사이의 정렬 수준의 디코더-측 검증, 확인, 또는 결정을 사용하는 방법의 간략화된 흐름도를 도시하며, 여기서, 디코더-측 움직임 벡터 정밀화 프로세스 단계들의 조건부 건너뜀은 정밀화 시작 위치의 평균-제거된 절대 차이 합에 기반한다. 흐름도에 도시된 단계들은, 인코더-측 또는 디코더-측에서, 하나 이상의 프로세서 상에서 실행가능한 프로그램 코드들 또는 명령어들로서 구현될 수 있다. 흐름도에 도시된 단계들은 또한, 전자 부품들, 디지털 및/또는 아날로그 회로, 논리 소자들, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들을 사용하여 구현될 수 있다. 방법은, 단계(602)에서, 비디오 디코더가 2개의 움직임 보상된 기준 패치 사이의 서브-픽셀 정밀도 병합 움직임 벡터들에 기반하여 움직임 보상된 보간된 샘플들을 획득하는 것으로 시작할 수 있다. 단계(603)에서, 디코더는, 정밀화가 시작되는 중심 위치에 대한 패치들 각각의 평균 값을 계산(산출)한다. 디코더는 또한, (603에서) 중심 위치에 대한 평균-제거된 절대 차이 합(MR-SAD)을 계산한다.
604에서, 디코더는, MR-SAD가 코딩 단위(CU) 크기 의존적 임계 값 미만인지 또는 미만이 아닌지(이상인지)를 결정하기 위해 MR-SAD를 CU 크기 의존적 임계 값에 대하여 비교한다. 일 실시예에서, CU 크기 의존적 임계 값은, 서브-픽셀 정밀도 병합 움직임 벡터들의 비트 심도의 함수이다. MR-SAD가 CU 크기 의존적 임계 값 미만인 것으로 결정될 때(단계(605)에서 "예"), 디코더는 디코더-측 움직임 벡터 정밀화(DMVR) 프로세스 단계들을 건너뛰고(단계(606)), 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다(단계(608)). MR-SAD가 CU 크기 의존적 임계 값 미만이 아닌 것으로 결정될 때(단계(605)에서 "아니오"), 디코더는 병합 움직임 벡터들을 사용하여 디코더-측 움직임 벡터 정밀화(DMVR) 프로세스 단계들을 수행하고(단계(607)), 이어서, 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다(단계(608)). 디코더는, 현재 블록에 근접하게 매칭되는 탐색 윈도우 내의 기준 블록에 기반하여 움직임 벡터 후보들을 정밀화할 수 있는데, 즉, 디코더는, MR-SAD가 CU 크기 의존적 임계 값 미만이 아닐 때 (예컨대, 이중선형 보간을 사용하여) 현재 블록에 대한 새로운 보간된 움직임 벡터를 결정할 수 있고, 그 후, 디코더는 이어서, 병합 움직임 벡터들을 사용하여 현재 블록에 대한 최종 움직임 보상을 수행한다.
일부 실시예들에서, 패치의 평균 값을 계산하는 것은, 대응하는 기준 패치 내의 모든 픽셀들의 루마 강도를 평균하는 것을 포함할 수 있다. 평균-제거된 절대 차이 합(MR-SAD)은 다음의 표현식을 사용하여 계산될 수 있다.
여기서, first_sample은 제1 움직임 보상된 기준 패치의 중심에서의 제1 움직임 보상된 보간된 샘플을 표현하고, 제2 움직임 보상된 기준 패치의 중심에서의 제2 움직임 보상된 보간된 샘플이고, mean(first_block)은 first_block의 샘플 값들의 평균화 연산을 표현하고, mean(second_block)은 second_block의 샘플 값들의 평균화 연산을 표현하고, (제1, 제2) 패치는 샘플들의 관점에서 (제1, 제2) 블록의 폭 및 높이를 가질 수 있고, SAD는 제1 패치의 샘플들 및 제2 패치의 샘플들의 값들의 절대 차이들의 합 연산이다.
이러한 실시예는, 정밀화 확인의 조건부 건너뜀을 수행하는데 있어 그러한 확인 없이 요구되는 것에 비해 어떠한 부가적인 계산들도 발생되지 않음을 보장할 수 있다. 통계적으로, 정밀화 반복들의 계산들이 절약되고, 이것의 결과는, 전력 절약들 및 소프트웨어에서의 평균 사이클 감소일 수 있다.
도시되고 위에 설명된 흐름도들은, 본 발명에 따른, 움직임 보상된 패치들 사이의 정렬의 결정, 확인, 또는 검증의 예시적인 실시예들을 예시하도록 의도된다. 관련 기술분야의 통상의 기술자는, 본원에 설명된 정렬 확인 및 결정 단계들이 본 발명의 범위를 벗어나지 않으면서 본 발명을 실시하도록 재-배열, 수정, 또는 조합될 수 있다는 것을 알고 있다.
본 개시내용에 따른 실시예들은, 하드웨어 회로, 하나 이상의 프로세서 또는 CPU에 의해 실행가능한 소프트웨어 프로그램 코드들, 컴퓨터 명령어들, 또는 이들의 조합으로 구현될 수 있다. 예컨대, 본 발명의 실시예들은, 본원에 설명된 단계들을 수행하는 하나 이상의 집적 회로 또는 디바이스일 수 있다. 프로그램 코드들은 디지털 신호 프로세서(DSP; digital signal processor) 상에서 실행될 수 있다. 실시예들은 또한, 하나의 마이크로프로세서 또는 마이크로프로세서들, 하나 이상의 필드 프로그래밍가능 게이트 어레이(FPGA)에 의해 구현될 수 있다.
본 개시내용에 따른 실시예들은, 미리 결정된 CU 크기 의존적 임계 값에 대하여 움직임 보상된 기준 패치들(코딩 단위들, 블록들) 사이의 정렬의 수준을 결정하기 위한 장치를 제공한다. 장치는, 2개의 움직임 보상된 기준 패치 사이에서 반올림되지 않은 병합 움직임 벡터들을 획득하고; 반올림된 움직임 벡터들을 획득하기 위해, 반올림되지 않은 병합 움직임 벡터들을 가장 가까운 정수 샘플 위치로 반올림하고; 반올림된 움직임 벡터들을 사용하여 2개의 움직임 보상된 기준 패치 사이의 절대 차이 합(SAD)을 계산하고; SAD가 CU 크기 의존적 임계 값 미만인지 여부를 결정하도록 구성되는 회로를 포함할 수 있다. SAD가 CU 크기 의존적 임계 값 미만인 경우에, 장치의 회로는 디코더-측 움직임 벡터 정밀화 프로세스의 나머지 단계들을 건너뛰고, 반올림되지 않은 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다. SAD가 CU 크기 의존적 임계 값 미만이 아닌 경우에, 장치의 회로는 디코더-측 움직임 벡터 정밀화 프로세스의 나머지 단계들을 수행하고, 이어서, 반올림되지 않은 병합 움직임 벡터들을 사용하여 최종 움직임 보상을 수행한다.
일 실시예에서, 장치의 회로는, 반올림된 움직임 벡터들을 사용하는 것 대신, 움직임 보상된 보간된 샘플들의 서브세트를 사용하여 SAD를 도출한다.
일 실시예에서, 장치의 회로는, 정수 픽셀 움직임 탐색을 위해 평균-제거된 절대 차이 합(MR-SAD)을 계산하고, MR-SAD를 CU 크기 의존적 임계 값에 대하여 비교한다.
일부 실시예들에서, 장치의 회로는 집적 반도체 디바이스 또는 칩을 포함할 수 있다. 다른 실시예들에서, 회로는, 하드웨어 구성요소들 또는 디바이스 또는 하드웨어와 소프트웨어의 조합, 예컨대, 명령어들 또는 프로그램 코드들로 동작가능한 하나 이상의 프로세서, 프로그래밍가능 디바이스, 또는 DSP를 포함할 수 있다.
다음은, 위에 언급된 실시예들에서 나타낸 바와 같은 인코딩 방법뿐만 아니라 디코딩 방법의 적용들, 및 그들을 사용하는 시스템의 설명이다.
도 7은 콘텐츠 배포 서비스를 실현하기 위한 콘텐츠 공급 시스템(3100)을 도시하는 블록도이다. 이러한 콘텐츠 공급 시스템(3100)은, 포착 디바이스(3102), 단말기 디바이스(3106)를 포함하고, 디스플레이(3126)를 임의적으로 포함한다. 포착 디바이스(3102)는 통신 링크(3104)를 통해 단말기 디바이스(3106)와 통신한다. 통신 링크는 위에 설명된 통신 채널(13)을 포함할 수 있다. 통신 링크(3104)는, WIFI, 이더넷, 케이블(Cable), 무선(3G/4G/5G), USB, 또는 임의의 종류의 이들의 조합 등을 포함하지만 이에 제한되지 않는다.
포착 디바이스(3102)는 데이터를 생성하고, 위의 실시예들에서 나타낸 바와 같은 인코딩 방법에 의해 데이터를 인코딩할 수 있다. 대안적으로, 포착 디바이스(3102)는 데이터를 스트리밍 서버(도면들에 도시되지 않음)에 배포할 수 있고, 서버는 데이터를 인코딩하여 인코딩된 데이터를 단말기 디바이스(3106)에 송신한다. 포착 디바이스(3102)는, 카메라, 스마트 폰 또는 패드, 컴퓨터 또는 랩톱, 비디오 화상회의 시스템, PDA, 차량 탑재 디바이스, 또는 이들 중 임의의 것의 조합 등을 포함하지만 이에 제한되지 않는다. 예컨대, 포착 디바이스(3102)는 위에 설명된 바와 같은 소스 디바이스(12)를 포함할 수 있다. 데이터가 비디오를 포함할 때, 포착 디바이스(3102)에 포함되는 비디오 인코더(20)는 실제로 비디오 인코딩 처리를 수행할 수 있다. 데이터가 오디오(즉, 음성)를 포함할 때, 포착 디바이스(3102)에 포함되는 오디오 인코더는 실제로 오디오 인코딩 처리를 수행할 수 있다. 일부 실제 시나리오들의 경우, 포착 디바이스(3102)는 인코딩된 비디오 및 오디오 데이터를 함께 다중화함으로써 이들을 배포한다. 다른 실제 시나리오들의 경우, 예컨대, 비디오 화상회의 시스템에서, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터는 다중화되지 않는다. 포착 디바이스(3102)는, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 단말기 디바이스(3106)에 별개로 배포한다.
콘텐츠 공급 시스템(3100)에서, 단말기 디바이스(310)는 인코딩된 데이터를 수신하여 재생한다. 단말기 디바이스(3106)는, 데이터 수신 및 복원 능력을 갖는 디바이스, 이를테면, 스마트 폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR; network video recorder)/디지털 비디오 레코더(DVR; digital video recorder)(3112), TV(3114), 셋톱 박스(STB; set top box)(3116), 비디오 화상회의 시스템(3118), 비디오 감시 시스템(3120), 개인 휴대 정보 단말기(PDA; personal digital assistant)(3122), 차량 탑재 디바이스(3124), 또는 이들 중 임의의 것의 조합, 또는 위에 언급된 인코딩된 데이터를 디코딩하는 것이 가능한 것 등일 수 있다. 예컨대, 단말기 디바이스(3106)는 위에 설명된 바와 같은 목적지 디바이스(14)를 포함할 수 있다. 인코딩된 데이터가 비디오를 포함할 때, 단말기 디바이스에 포함되는 비디오 디코더(30)는 비디오 디코딩을 수행하도록 우선순위화된다. 인코딩된 데이터가 오디오를 포함할 때, 단말기 디바이스에 포함되는 오디오 디코더는 오디오 디코딩 처리를 수행하도록 우선순위화된다.
자신의 디스플레이를 갖는 단말기 디바이스, 예컨대, 스마트 폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), 개인 휴대 정보 단말기(PDA)(3122), 또는 차량 탑재 디바이스(3124)의 경우, 단말기 디바이스는 디코딩된 데이터를 자신의 디스플레이에 공급할 수 있다. 어떠한 디스플레이도 구비하지 않은 단말기 디바이스, 예컨대, STB(3116), 비디오 화상회의 시스템(3118), 또는 비디오 감시 시스템(3120)의 경우, 외부 디스플레이(3126)가 그에 접촉되어 디코딩된 데이터를 수신하고 보여준다.
이러한 시스템에서의 각각의 디바이스가 인코딩 또는 디코딩을 수행할 때, 위에 언급된 실시예들에서 나타낸 바와 같은 화상 인코딩 디바이스 또는 화상 디코딩 디바이스가 사용될 수 있다.
도 8은 단말기 디바이스(3106)의 예의 구조를 도시하는 도면이다. 단말기 디바이스(3106)가 포착 디바이스(3102)로부터 스트림을 수신한 후에, 프로토콜 진행 유닛(3202)은 스트림의 송신 프로토콜을 분석한다. 프로토콜은, 실시간 스트리밍 프로토콜(RTSP; Real Time Streaming Protocol), 하이퍼텍스트 전송 프로토콜(HTTP; Hyper Text Transfer Protocol), HTTP 라이브 스트리밍 프로토콜(HLS; HTTP Live streaming protocol), MPEG-DASH, 실시간 전송 프로토콜(RTP; Real-time Transport protocol), 실시간 메시징 프로토콜(RTMP; Real Time Messaging Protocol) 또는 임의의 종류의 이들의 조합 등을 포함하지만 이에 제한되지 않는다.
프로토콜 진행 유닛(3202)이 스트림을 처리한 후에, 스트림 파일이 생성된다. 파일은 역다중화 유닛(3204)에 출력된다. 역다중화 유닛(3204)은 다중화된 데이터를 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터로 분리할 수 있다. 위에 설명된 바와 같이, 일부 실제 시나리오들의 경우, 예컨대, 비디오 화상회의 시스템에서, 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터는 다중화되지 않는다. 이러한 상황에서, 인코딩된 데이터는 역다중화 유닛(3204)을 통하지 않고 비디오 디코더(3206) 및 오디오 디코더(3208)에 송신된다.
역다중화 처리를 통해, 비디오 기본 스트림(ES; elementary stream), 오디오 ES, 및 임의적으로는 자막이 생성된다. 위에 언급된 실시예들에서 설명된 바와 같은 비디오 디코더(30)를 포함하는 비디오 디코더(3206)는, 위에 언급된 실시예들에서 나타낸 바와 같은 디코딩 방법에 의해 비디오 ES를 디코딩하여 비디오 프레임을 생성하고, 이러한 데이터를 동기 유닛(3212)에 공급한다. 오디오 디코더(3208)는 오디오 ES를 디코딩하여 오디오 프레임을 생성하고, 이러한 데이터를 동기 유닛(3212)에 공급한다. 대안적으로, 비디오 프레임은, 비디오 프레임이 동기 유닛(3212)에 공급되기 전에 버퍼(도 Y에 도시되지 않음)에 저장될 수 있다. 유사하게, 오디오 프레임은, 오디오 프레임이 동기 유닛(3212)에 공급되기 전에 버퍼(도 Y에 도시되지 않음)에 저장될 수 있다.
동기 유닛(3212)은 비디오 프레임 및 오디오 프레임을 동기화하고, 비디오/오디오를 비디오/오디오 디스플레이(3214)에 공급한다. 예컨대, 동기 유닛(3212)은 비디오 및 오디오 정보의 프리젠테이션을 동기화한다. 정보는, 코딩된 오디오 및 시각 데이터의 프리젠테이션에 관한 타임 스탬프들 및 데이터 스트림 그 자체의 전달에 관한 타임 스탬프들을 사용하여 구문으로 코딩될 수 있다.
자막이 스트림에 포함되는 경우, 자막 디코더(3210)는 자막을 디코딩하고, 그것을 비디오 프레임 및 오디오 프레임과 동기화하며, 비디오/오디오/자막을 비디오/오디오/자막 디스플레이(3216)에 공급한다.
본 발명은 위에 언급된 시스템으로 제한되지 않으며, 위에 언급된 실시예들에서의 화상 인코딩 디바이스 또는 화상 디코딩 디바이스는 다른 시스템, 예컨대 자동차 시스템에 포함될 수 있다.
Claims (30)
- 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법으로서,
디코더에 의해, 이중선형 움직임 보상된 보간으로부터의 서브-픽셀 정밀도 병합 움직임 벡터들에 기반하여, 움직임 보상된 보간된 샘플들을 획득하는 단계;
상기 디코더에 의해, 상기 움직임 보상된 보간된 샘플들의 서브세트를 사용하여 2개의 움직임 보상된 기준 패치 사이의 절대 차이 합(SAD)을 계산하는 단계;
상기 디코더에 의해, 상기 SAD가 코딩 단위(CU) 크기 의존적 임계 값 미만인지 여부를 결정하는 단계 - 상기 CU 크기 의존적 임계 값은, 상기 움직임 보상된 보간된 샘플들의 서브세트에서의 샘플들의 수의 함수임 -;
상기 SAD가 상기 CU 크기 의존적 임계 값 미만일 때,
나머지 디코더-측 움직임 벡터 정밀화(DMVR) 프로세스 단계들을 건너뛰는 단계 - 상기 DMVR 프로세스에서, 양방향-예측의 2개의 움직임 벡터는 양측 템플릿 매칭 프로세스에 의해 추가로 정밀화되고; 정밀화된 MV를 획득하기 위해, 상기 움직임 보상된 기준 패치들에서 상기 움직임 보상된 보간된 샘플들 및 양측 템플릿 사이의 왜곡 기반 탐색을 수행하기 위해 양측 템플릿 매칭이 디코더에 적용되고; MV 정밀화의 왜곡 기반 탐색 범위는 8개의 루마 샘플과 동일하게 설정됨 -, 및
최종 움직임 보상을 수행하는 단계; 및
상기 SAD가 상기 CU 크기 의존적 임계 값 미만이 아닐 때,
상기 나머지 DMVR 프로세스 단계들을 수행하는 단계, 및
상기 최종 움직임 보상을 수행하는 단계를 포함하는, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제1항에 있어서,
상기 움직임 보상된 보간된 샘플들의 서브세트는, 상기 2개의 움직임 보상된 기준 패치 사이의 반올림되지 않은 병합 움직임 벡터들인, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제1항에 있어서,
이중선형 움직임 보상된 보간 프로세스는 상기 움직임 보상된 기준 패치들에 대해 병행하여 수행되는, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제1항에 있어서,
상기 움직임 보상된 보간된 샘플들은 인터리빙 방식으로 상기 2개의 움직임 보상된 기준 패치로부터 도출되는, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제1항에 있어서,
상기 움직임 보상된 보간된 샘플들의 서브세트는 코딩 단위(CU)의 치수와 동일한 치수를 갖는 샘플들의 블록을 포함하는, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제5항에 있어서,
상기 움직임 보상된 보간된 샘플들의 서브세트는 샘플을 포함하며, CU_width는 상기 코딩 단위의 폭이고, CU-height는 상기 코딩 단위의 높이인, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제5항에 있어서,
상기 움직임 보상된 보간된 샘플들의 서브세트는 샘플을 포함하며, CU_width는 상기 코딩 단위의 폭이고, CU-height는 상기 코딩 단위의 높이인, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제1항에 있어서,
상기 이중선형 움직임 보상된 보간은 상기 2개의 움직임 보상된 기준 패치에 대해 병행하여 수행되는, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 제1항에 있어서,
상기 이중선형 움직임 보상된 보간은 상기 2개의 움직임 보상된 기준 패치에 대해 인터리빙 방식으로 수행되는, 움직임 보상된 기준 패치들 사이의 정렬 수준을 결정하는 방법. - 상호간 예측 장치로서,
프로세서 실행가능 명령어들이 저장되는 비-일시적인 메모리; 및
상기 메모리에 결합되는 프로세서를 포함하며, 상기 프로세서는, 제1항 내지 제9항 중 어느 한 항에 따른 방법을 가능하게 하도록 상기 프로세서 실행가능 명령어들을 실행하게 구성되는, 상호간 예측 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020247001919A KR20240014594A (ko) | 2018-09-19 | 2019-09-18 | 이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201831035309 | 2018-09-19 | ||
IN201831035309 | 2018-09-19 | ||
PCT/CN2019/106308 WO2020057524A1 (en) | 2018-09-19 | 2019-09-18 | Method for skipping refinement based on patch similarity in bilinear interpolation based decoder-side motion vector refinement |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247001919A Division KR20240014594A (ko) | 2018-09-19 | 2019-09-18 | 이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210009349A KR20210009349A (ko) | 2021-01-26 |
KR102627844B1 true KR102627844B1 (ko) | 2024-01-23 |
Family
ID=69888368
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247001919A KR20240014594A (ko) | 2018-09-19 | 2019-09-18 | 이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법 |
KR1020207035742A KR102627844B1 (ko) | 2018-09-19 | 2019-09-18 | 이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247001919A KR20240014594A (ko) | 2018-09-19 | 2019-09-18 | 이중선형 보간 기반 디코더-측 움직임 벡터 정밀화에서 패치 유사성에 기반하여 정밀화를 건너뛰기 위한 방법 |
Country Status (12)
Country | Link |
---|---|
US (3) | US11178426B2 (ko) |
EP (1) | EP3841751B1 (ko) |
JP (1) | JP7516725B2 (ko) |
KR (2) | KR20240014594A (ko) |
CN (2) | CN112889288A (ko) |
AU (1) | AU2019341277B2 (ko) |
BR (1) | BR112020025830A2 (ko) |
CA (1) | CA3111679C (ko) |
MX (1) | MX2021000686A (ko) |
PH (1) | PH12021550444A1 (ko) |
SG (1) | SG11202101823XA (ko) |
WO (1) | WO2020057524A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12113987B2 (en) * | 2020-12-22 | 2024-10-08 | Qualcomm Incorporated | Multi-pass decoder-side motion vector refinement |
US20230021722A1 (en) * | 2021-07-20 | 2023-01-26 | Mediatek Inc. | Apparatus and method for performing motion vector refinement to get more precise motion vectors |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7580456B2 (en) * | 2005-03-01 | 2009-08-25 | Microsoft Corporation | Prediction-based directional fractional pixel motion estimation for video coding |
US8437396B2 (en) * | 2006-08-10 | 2013-05-07 | Vixs Systems, Inc. | Motion search module with field and frame processing and methods for use therewith |
US8494056B2 (en) * | 2009-05-21 | 2013-07-23 | Ecole De Technologie Superieure | Method and system for efficient video transcoding |
US8724022B2 (en) * | 2009-11-09 | 2014-05-13 | Intel Corporation | Frame rate conversion using motion estimation and compensation |
US20110176611A1 (en) | 2010-01-15 | 2011-07-21 | Yu-Wen Huang | Methods for decoder-side motion vector derivation |
CN102215386B (zh) * | 2010-04-09 | 2013-03-27 | 华为技术有限公司 | 视频图像块处理方法及装置 |
PL400344A1 (pl) | 2012-08-13 | 2014-02-17 | Politechnika Poznanska | Sposób wyznaczania predyktora wektora ruchu |
US10531116B2 (en) * | 2014-01-09 | 2020-01-07 | Qualcomm Incorporated | Adaptive motion vector resolution signaling for video coding |
US10484721B2 (en) * | 2014-03-17 | 2019-11-19 | Qualcomm Incorporated | Method for motion estimation of non-natural video data |
US9924191B2 (en) * | 2014-06-26 | 2018-03-20 | Qualcomm Incorporated | Filters for advanced residual prediction in video coding |
US20150381994A1 (en) * | 2014-06-27 | 2015-12-31 | Futurewei Technologies, Inc. | Advanced screen content coding with improved palette table and index map coding methods |
US10511835B2 (en) * | 2015-09-02 | 2019-12-17 | Mediatek Inc. | Method and apparatus of decoder side motion derivation for video coding |
CN109155847A (zh) * | 2016-03-24 | 2019-01-04 | 英迪股份有限公司 | 用于编码/解码视频信号的方法和装置 |
CA3024900C (en) | 2016-05-17 | 2021-02-16 | Arris Enterprises Llc | Template matching for jvet intra prediction |
EP3264768A1 (en) * | 2016-06-30 | 2018-01-03 | Thomson Licensing | Method and apparatus for video coding with adaptive motion information refinement |
US11638027B2 (en) * | 2016-08-08 | 2023-04-25 | Hfi Innovation, Inc. | Pattern-based motion vector derivation for video coding |
US10034320B2 (en) * | 2016-09-15 | 2018-07-24 | Qualcomm Incorporated | System and methods for performing an adaptive access procedure on a multi-SIM wireless communication device |
US10750203B2 (en) * | 2016-12-22 | 2020-08-18 | Mediatek Inc. | Method and apparatus of adaptive bi-prediction for video coding |
CN110115032B (zh) | 2016-12-22 | 2021-07-20 | 联发科技股份有限公司 | 用于视频编解码的运动细化的方法以及装置 |
CN110140355B (zh) * | 2016-12-27 | 2022-03-08 | 联发科技股份有限公司 | 用于视频编解码的双向模板运动向量微调的方法及装置 |
US12063387B2 (en) * | 2017-01-05 | 2024-08-13 | Hfi Innovation Inc. | Decoder-side motion vector restoration for video coding |
US20180199057A1 (en) * | 2017-01-12 | 2018-07-12 | Mediatek Inc. | Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding |
GB2564133B (en) * | 2017-07-04 | 2021-03-17 | Canon Kk | Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement |
US10785494B2 (en) * | 2017-10-11 | 2020-09-22 | Qualcomm Incorporated | Low-complexity design for FRUC |
US11750832B2 (en) * | 2017-11-02 | 2023-09-05 | Hfi Innovation Inc. | Method and apparatus for video coding |
US11310526B2 (en) * | 2018-01-26 | 2022-04-19 | Mediatek Inc. | Hardware friendly constrained motion vector refinement |
US10863193B2 (en) * | 2018-06-29 | 2020-12-08 | Qualcomm Incorporated | Buffer restriction during motion vector prediction for video coding |
-
2019
- 2019-09-18 EP EP19861709.4A patent/EP3841751B1/en active Active
- 2019-09-18 JP JP2020564570A patent/JP7516725B2/ja active Active
- 2019-09-18 BR BR112020025830-0A patent/BR112020025830A2/pt unknown
- 2019-09-18 KR KR1020247001919A patent/KR20240014594A/ko active Application Filing
- 2019-09-18 SG SG11202101823XA patent/SG11202101823XA/en unknown
- 2019-09-18 MX MX2021000686A patent/MX2021000686A/es unknown
- 2019-09-18 CA CA3111679A patent/CA3111679C/en active Active
- 2019-09-18 AU AU2019341277A patent/AU2019341277B2/en active Active
- 2019-09-18 CN CN201980058699.8A patent/CN112889288A/zh active Pending
- 2019-09-18 CN CN202311459710.6A patent/CN117915109A/zh active Pending
- 2019-09-18 WO PCT/CN2019/106308 patent/WO2020057524A1/en unknown
- 2019-09-18 KR KR1020207035742A patent/KR102627844B1/ko active IP Right Grant
-
2020
- 2020-11-24 US US17/103,822 patent/US11178426B2/en active Active
-
2021
- 2021-02-26 PH PH12021550444A patent/PH12021550444A1/en unknown
- 2021-08-05 US US17/394,598 patent/US11722691B2/en active Active
-
2023
- 2023-07-04 US US18/346,795 patent/US20240007666A1/en active Pending
Non-Patent Citations (1)
Title |
---|
Jianle Chen, et. al., "Algorithm Description of Joint Exploration Test Model 7 (JEM 7)", Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT,* |
Also Published As
Publication number | Publication date |
---|---|
CA3111679A1 (en) | 2020-03-26 |
CN112889288A (zh) | 2021-06-01 |
KR20210009349A (ko) | 2021-01-26 |
EP3841751B1 (en) | 2024-04-17 |
US20240007666A1 (en) | 2024-01-04 |
MX2021000686A (es) | 2021-03-25 |
JP2022524246A (ja) | 2022-05-02 |
SG11202101823XA (en) | 2021-04-29 |
AU2019341277B2 (en) | 2023-01-12 |
AU2019341277A1 (en) | 2021-03-18 |
US11722691B2 (en) | 2023-08-08 |
US11178426B2 (en) | 2021-11-16 |
CN117915109A (zh) | 2024-04-19 |
WO2020057524A1 (en) | 2020-03-26 |
EP3841751A1 (en) | 2021-06-30 |
CA3111679C (en) | 2023-10-03 |
PH12021550444A1 (en) | 2021-09-27 |
KR20240014594A (ko) | 2024-02-01 |
EP3841751A4 (en) | 2021-10-27 |
US20210368202A1 (en) | 2021-11-25 |
JP7516725B2 (ja) | 2024-07-17 |
US20210084328A1 (en) | 2021-03-18 |
BR112020025830A2 (pt) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110581997B (zh) | 运动矢量精度细化 | |
US11425417B2 (en) | Techniques for using a decoder side motion vector refinement tool | |
CN110419217B (zh) | 用于图像处理的方法和图像处理装置 | |
KR102450443B1 (ko) | 다중 참조 예측을 위한 움직임 벡터 개선 | |
US20240007666A1 (en) | Decoder-side motion vector refinement (dmvr) process method and apparatus | |
CN111083485B (zh) | 仿射模式的运动信息的利用 | |
Kim et al. | An efficient scheme for motion estimation using multireference frames in H. 264/AVC | |
US20240275979A1 (en) | Method, device, and medium for video processing | |
JP2024001288A (ja) | 画像復号装置、画像復号方法、及び画像復号プログラム | |
RU2786383C2 (ru) | Способ пропуска уточнения на основании подобия вставки при уточнении вектора движения на стороне декодера на основании билинейной интерполяции | |
WO2020063598A1 (en) | A video encoder, a video decoder and corresponding methods | |
JP2011205212A (ja) | 動画像符号化装置及び動きベクトル検出方法 | |
JP7318686B2 (ja) | 画像復号装置、画像復号方法、及び画像復号プログラム | |
US20240073438A1 (en) | Motion vector coding simplifications | |
CN117529913A (zh) | 视频处理的方法、设备和介质 | |
CN118575476A (zh) | 用于视频处理的方法、装置和介质 | |
CN118285098A (zh) | 用于视频处理的方法、装置和介质 | |
WO2021007133A1 (en) | Methods and apparatuses for decoder-side motion vector refinement in video coding | |
CN118592027A (zh) | 用于视频处理的方法、装置和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |