KR102606778B1 - 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩 - Google Patents

모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩 Download PDF

Info

Publication number
KR102606778B1
KR102606778B1 KR1020217001104A KR20217001104A KR102606778B1 KR 102606778 B1 KR102606778 B1 KR 102606778B1 KR 1020217001104 A KR1020217001104 A KR 1020217001104A KR 20217001104 A KR20217001104 A KR 20217001104A KR 102606778 B1 KR102606778 B1 KR 102606778B1
Authority
KR
South Korea
Prior art keywords
motion vector
window
sample
block
predictor
Prior art date
Application number
KR1020217001104A
Other languages
English (en)
Other versions
KR20210019097A (ko
Inventor
세미 에센리크
이반 크라스노프
즈제 자오
젠러 첸
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Priority to KR1020237040298A priority Critical patent/KR20230165870A/ko
Publication of KR20210019097A publication Critical patent/KR20210019097A/ko
Application granted granted Critical
Publication of KR102606778B1 publication Critical patent/KR102606778B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

템플릿 또는 쌍방 매칭을 사용한 모션 벡터 결정 및 모션 벡터에 기초한 예측자 생성을 위한 방법 및 장치. 템플릿 또는 쌍방 매칭 및/또는 예측자 생성은 보간 필터링을 사용한다. 보간 필터링 동작은 윈도우 내의 정수 샘플 위치들에 액세스하고, 상기 윈도우 내의 적어도 하나의 샘플에 기초하는, 윈도우 외부의 정수 샘플 위치들에 대한 패딩된 샘플 값들을 추가로 사용하고, 액세스된 정수 샘플 위치 값들뿐만 아니라 패딩된 샘플 값들을 사용하여 템플릿 또는 쌍방 매칭 및/또는 예측자 생성을 수행한다.

Description

모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩
본 발명의 실시예들은 비디오의 인코딩 및 디코딩 동안 이용될 수 있는 모션 보상을 위한 예측자 결정뿐만 아니라 모션 벡터 결정 및 리파인먼트에 관한 것이다.
현재의 하이브리드 비디오 코덱들은 예측 코딩(predictive coding)을 이용한다. 비디오 시퀀스의 화상은 픽셀들의 블록들로 세분화되고 그 후 이들 블록들은 코딩된다. 픽셀마다(pixel by pixel) 블록을 코딩하는 대신에, 블록의 공간적 또는 시간적 근접에 있는 이미 인코딩된 픽셀들을 사용하여 전체 블록이 예측된다. 인코더는 블록과 그의 예측 간의 차이들만을 추가로 처리한다. 추가 처리는 전형적으로 블록 픽셀들을 변환 도메인에서 계수들로 변환하는 것을 포함한다. 그 후, 계수들은 양자화에 의하여 더 압축되고 엔트로피 코딩에 의해 더 콤팩트화되어 비트스트림을 형성할 수 있다. 비트스트림은 디코더가 인코딩된 비디오를 디코딩할 수 있게 하는 임의의 시그널링 정보를 추가로 포함한다. 예를 들어, 시그널링은 입력 화상의 크기, 프레임 레이트, 양자화 스텝 지시, 화상들의 블록들에 적용되는 예측 등과 같은 인코더 설정들에 관한 설정들을 포함할 수 있다.
시간적 예측은 비디오의, 프레임들이라고도 지칭되는 화상들 간의 시간적 상관을 이용한다. 시간적 예측은 인터-예측(inter-prediction)이라고도 불리는데, 그 이유는 그것이 상이한 비디오 프레임들 간의(inter) 종속성들을 사용하는 예측이기 때문이다. 따라서, 현재 블록이라고도 지칭되는, 인코딩되는 블록이 참조 화상(들)이라고 지칭되는 하나 이상의 이전에 인코딩된 화상(들)으로부터 예측된다. 참조 화상은 반드시, 현재 블록이 비디오 시퀀스의 디스플레이 순서에서 위치하는 현재 화상에 선행하는 화상일 필요는 없다. 인코더는 디스플레이 순서와 상이한 코딩 순서로 화상들을 인코딩할 수 있다. 현재 블록의 예측으로서, 참조 화상에서의 동위치 블록(co-located block)이 결정될 수 있다. 동위치 블록은 현재 화상에서의 현재 블록과 동일한 위치에 있는 참조 화상에 위치하는 블록이다. 그러한 예측은 모션 없는 화상 영역들, 즉, 하나의 화상으로부터 다른 화상으로의 움직임이 없는 화상 영역들에 대해 정확하다.
움직임, 즉, 모션 보상된 예측자를 고려하는 예측자를 획득하기 위해, 현재 블록의 예측을 결정할 때 모션 추정이 전형적으로 이용된다. 따라서, 현재 블록은 동위치 블록의 위치로부터 모션 벡터에 의해 주어진 거리에 위치하는, 참조 화상에서의 블록에 의해 예측된다. 디코더가 현재 블록의 동일한 예측을 결정할 수 있게 하기 위해, 모션 벡터가 비트스트림에서 시그널링될 수 있다. 블록들 각각에 대한 모션 벡터를 시그널링하는 것에 의해 야기되는 시그널링 오버헤드를 추가로 감소시키기 위해, 모션 벡터 자체가 추정될 수 있다. 모션 벡터 추정은 공간 및/또는 시간 도메인에서 이웃 블록들의 모션 벡터들에 기초하여 수행될 수 있다.
현재 블록의 예측은 하나의 참조 화상을 사용하여 또는 2개 이상의 참조 화상으로부터 획득된 예측들을 가중하는 것에 의해 계산될 수 있다. 참조 화상은 인접 화상, 즉, 디스플레이 순서에서 현재 화상에 바로 선행하는 화상 및/또는 현재 화상 바로 다음의 화상일 수 있는데, 그 이유는 인접 화상들이 현재 화상과 유사할 가능성이 가장 높기 때문이다. 그러나, 일반적으로, 참조 화상은 또한 디스플레이 순서에서 현재 화상에 선행하거나 다음에 오고 비트스트림에서(디코딩 순서에서) 현재 화상에 선행하는 임의의 다른 화상일 수 있다. 이는, 예를 들어, 비디오 콘텐츠에서의 폐색(occlusion)들 및/또는 비-선형 움직임의 경우에 이점들을 제공할 수 있다. 따라서, 참조 화상 식별도 비트스트림에서 시그널링될 수 있다.
인터 예측의 특수 모드는 2개의 참조 화상이 현재 블록의 예측을 생성하는 데 사용되는 소위 양방향 예측(bi-prediction)이다. 특히, 각각의 2개의 참조 화상에서 결정된 2개의 예측은 현재 블록의 예측 신호가 되도록 조합된다. 양방향 예측은 단방향 예측(uni-prediction), 즉, 단일 참조 화상만을 사용하는 예측보다 현재 블록의 더 정확한 예측을 야기할 수 있다. 더 정확한 예측은 현재 블록과 예측 블록의 픽셀들 간의 더 작은 차이들(또한 "잔차들(residuals)"이라고도 지칭됨)로 이어지고, 이는 더 효율적으로 인코딩될 수 있고, 즉, 더 짧은 비트스트림으로 압축될 수 있다. 일반적으로, 현재 블록을 예측하기 위해 각각의 2개보다 많은 참조 블록을 찾기 위해 2개보다 많은 참조 화상이 이용될 수 있는데, 즉, 다중 참조 인터 예측(multi-reference inter prediction)이 적용될 수 있다. 따라서, 다중 참조 예측이라는 용어는 양방향 예측뿐만 아니라 2개보다 많은 참조 화상을 사용하는 예측을 포함한다.
더 정확한 모션 추정을 제공하기 위해, 참조 화상의 해상도는 픽셀들 사이에 샘플들을 보간하는 것에 의해 향상될 수 있다. 분수 픽셀 보간(Fractional pixel interpolation)은 가장 가까운 픽셀들의 가중 평균에 의해 수행될 수 있다. 1/2-픽셀 해상도의 경우에, 예를 들어, 쌍선형 보간(bilinear interpolation)이 전형적으로 사용된다. 다른 분수 픽셀들은 예측되는 픽셀에 대한 각각의 가장 가까운 픽셀들 간의 거리의 역에 의해 가중되는 가장 가까운 픽셀들의 평균으로서 계산된다.
모션 벡터 추정은, 현재 블록과 참조 화상에서의 후보 모션 벡터들이 가리키는 대응하는 예측 블록들(예측자들) 간에 유사도가 계산되는 계산적으로 복잡한 작업이다. 전형적으로, 탐색 영역은 이미지의 M x M 샘플들을 포함하고, M x M 후보 위치들의 샘플 위치 각각이 테스트된다. 테스트는 탐색 영역의 테스트된 후보 위치에 위치한, N x N 참조 블록 C와 블록 R 간의 유사도 측정의 계산을 포함한다. 그것의 단순성을 위해, 절대 차이들의 합(sum of absolute differences)(SAD)이 이 목적을 위해 빈번히 사용되는 측정이고, 다음과 같이 주어진다:
위의 공식에서, x 및 y는 탐색 영역 내의 후보 위치를 정의하는 한편, 인덱스들 i 및 j는 참조 블록 C 및 후보 블록 R 내의 샘플들을 표시한다. 후보 위치는 종종 블록 변위 또는 오프셋이라고 지칭되고, 이는 블록 매칭의 표현을 탐색 영역 내의 참조 블록의 시프팅으로서 반영하고 참조 블록 C와 탐색 영역의 중첩된 부분 간의 유사도를 계산한다. 복잡도를 감소시키기 위해, 후보 모션 벡터들의 수는 통상적으로 후보 모션 벡터들을 특정 탐색 공간으로 제한하는 것에 의해 감소된다. 탐색 공간은, 예를 들어, 현재 이미지에서의 현재 블록의 위치에 대응하는 참조 화상에서의 위치를 둘러싸는 픽셀들의 수 및/또는 위치들에 의해 정의될 수 있다. 모든 M x M 후보 위치들 x 및 y에 대해 SAD를 계산한 후에, 최상의 매칭 블록 R은, 참조 블록 C와의 가장 큰 유사도에 대응하는, 최저 SAD를 야기하는 위치 상의 블록이다. 다른 한편으로, 후보 모션 벡터들은 이웃 블록들의 모션 벡터들에 의해 형성된 후보 모션 벡터들의 리스트에 의해 정의될 수 있다.
모션 벡터들은 통상적으로 적어도 부분적으로 인코더 측에서 결정되고 코딩된 비트스트림 내에서 디코더에 시그널링된다. 그러나, 모션 벡터는 또한 디코더에서 도출될 수 있다. 그러한 경우에, 현재 블록은 디코더에서 이용가능하지 않고, 후보 모션 벡터들이 참조 화상에서 가리키는 블록들에 대한 유사도를 계산하기 위해 사용될 수 없다. 따라서, 현재 블록 대신에, 이미 디코딩된 블록들의 픽셀들로부터 구성되는 템플릿이 사용된다("템플릿 매칭"). 예를 들어, 현재 블록에 인접한 이미 디코딩된 픽셀들이 사용될 수 있다. 그러한 모션 추정은 시그널링을 감소시키는 이점을 제공한다: 모션 벡터는 인코더 및 디코더 둘 다에서 동일한 방식으로 도출되고, 따라서 어떤 시그널링도 필요하지 않다. 다른 한편으로, 그러한 모션 추정의 정확도는 더 낮을 수 있다.
양방향 예측의 경우에, 템플릿을 이용하는 것에 대안적으로, 아래에 더 상세히 설명되는 바와 같이, 후보 모션 벡터들이 가리키는 상이한 참조 화상들 내의 후보 코딩 블록들 간의 비교도 사용될 수 있다("쌍방 매칭(bilateral matching)").
정확도와 시그널링 오버헤드 간의 절충을 제공하기 위해, 모션 벡터 추정은 2개의 단계: 모션 벡터 도출 및 모션 벡터 리파인먼트로 분할될 수 있다. 예를 들어, 모션 벡터 도출은 후보들의 리스트로부터의 모션 벡터의 선택을 포함할 수 있다. 그러한 선택된 모션 벡터는, 예를 들어, 탐색 공간 내에서의 탐색에 의해 더 리파인될 수 있다. 탐색 공간에서의 탐색은 각각의 후보 모션 벡터에 대한, 즉, 후보 모션 벡터가 가리키는 블록의 각각의 후보 위치에 대한 비용 함수를 계산하는 것에 기초한다.
문서 JVET-D0029: Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching, X. Chen, J. An, J. Zheng(이 문서는 http://phenix.it-sudparis.eu/jvet/ 사이트에서 발견될 수 있음)은 정수 픽셀 해상도에서의 제1 모션 벡터가 발견되고, 제1 모션 벡터 주위의 탐색 공간에서 1/2-픽셀 해상도를 갖는 탐색에 의해 추가로 리파인되는 모션 벡터 리파인먼트를 보여준다.
모션 벡터 리파인먼트를 수행하기 위해, 적어도 현재 블록이 리파인먼트를 수행할 필요가 있는 해당 샘플들, 즉, 탐색 공간에 대응하는 샘플들 및 탐색 공간에서 템플릿 매칭 또는 쌍방 매칭이 수행될 때 액세스될 수 있는 샘플들을 메모리에 저장하는 것이 필요하다.
외부 메모리 액세스는 현재 하드웨어 아키텍처들 및/또는 소프트웨어 구현들에서 중요한 설계 파라미터이다. 이는 외부 메모리 액세스가 내부 메모리 이용과 비교하여 처리를 느리게 한다는 사실에 의해 야기된다. 다른 한편으로, 칩 상의 내부 메모리는, 예를 들어, 칩 크기 구현으로 인해 제한된다.
본 개시는, 예를 들어, 분수 보간과 조합하여 구현될 때 모션 벡터 리파인먼트가 온-칩 메모리 크기의 추가의 증가 또는 심지어 외부 메모리 액세스를 요구할 수 있다는 관찰에 기초한다. 양쪽 옵션들이 바람직하지 않을 수 있다. 분수 샘플 위치들을 포함하는 것에 의해 예측자의 해상도를 향상시키기 위해 보간이 적용될 때에도 동일하게 적용된다.
위에 언급된 문제를 고려하여, 본 개시는 외부 메모리에 대한 액세스들의 수 및 코딩 블록을 위한 모션 벡터의 모션 벡터 리파인먼트 및 블록에 대한 예측자를 계산하기 위해 액세스 가능할 필요가 있는 샘플들의 수를 고려하는 것을 가능하게 하는 모션 벡터 예측을 제공한다.
이는 모션 벡터 리파인먼트 및/또는 분수 보간의 목적을 위해 미리 정의된 메모리 액세스 윈도우 외부에 위치하는 값들을 메모리 액세스 윈도우 내로부터의 하나 이상의 샘플에 기초하는 대체 값들로 패딩(대체)하는 것에 의해 달성된다.
이는 독립 청구항들의 특징들에 의해 달성된다.
본 발명의 양태에 따르면, 비디오 이미지의 블록을 인코딩하기 위한 예측자를 결정하기 위한 인코딩 장치가 제공된다. 이 인코딩 장치는 상기 블록에 대한 초기 모션 벡터를 획득하고, 상기 초기 모션 벡터에 기초하여 상기 블록에 대한 리파인된 모션 벡터를 획득하고, 상기 리파인된 모션 벡터에 따라 상기 블록에 대한 예측자를 결정하도록 구성된 처리 회로를 포함한다. 이 처리 회로는 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하고 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하도록 구성되고, 여기서 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 샘플의 적어도 하나의 샘플 값에 기초한다.
본 발명의 다른 양태에 따르면, 비디오 이미지의 블록을 디코딩하기 위한 예측자를 결정하기 위한 디코딩 장치가 제공된다. 이 디코딩 장치는 상기 블록에 대한 초기 모션 벡터를 획득하고, 상기 초기 모션 벡터에 기초하여 상기 예측 블록에 대한 리파인된 모션 벡터를 획득하고, 상기 리파인된 모션 벡터에 따라 상기 블록에 대한 예측자를 결정하도록 구성된 처리 회로를 포함한다. 이 처리 회로는 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하고 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하도록 구성되고, 여기서 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 샘플의 적어도 하나의 샘플 값에 기초한다.
본 발명의 추가 양태에 따르면, 비디오 이미지의 블록을 인코딩하기 위한 예측자를 결정하기 위한 인코딩 방법이 제공된다. 이 인코딩 방법은 상기 블록에 대한 초기 모션 벡터를 획득하는 단계, 상기 초기 모션 벡터에 기초하여 상기 블록에 대한 리파인된 모션 벡터를 획득하는 단계, 및 상기 리파인된 모션 벡터에 따라 상기 블록에 대한 예측자를 결정하는 단계를 포함하고, 여기서 상기 결정하는 단계는 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하고, 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하고, 여기서 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 정수 샘플의 적어도 하나의 샘플 값에 기초한다.
본 발명의 또 다른 추가 양태에 따르면, 비디오 이미지의 블록을 디코딩하기 위한 예측자를 결정하기 위한 디코딩 방법이 제공된다. 이 디코딩 방법은 상기 블록에 대한 초기 모션 벡터를 획득하는 단계, 상기 초기 모션 벡터에 기초하여 상기 예측 블록에 대한 리파인된 모션 벡터를 획득하는 단계, 및 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하고, 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하는 단계를 포함하고, 여기서 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 정수 샘플의 적어도 하나의 샘플 값에 기초한다.
그러한 방법들 및 장치들은 보간 필터링에 의한 예측자 결정의 목적을 위해 이용가능해야 하는 샘플들의 수를 제한하면서도 전체 참조 화상들을 저장하는 스토리지/(외부) 메모리에 대한 추가적인 액세스들을 회피하는 이점을 제공한다.
상기 양태들의 실시예들에서, 상기 윈도우는 보간 필터링을 위한 윈도우이다.
실시예들에 따르면, 상기 보간은 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하는 것 및/또는 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 패딩 값으로 패딩하는 것 및/또는 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 패딩된 샘플 값들을 사용하여 보간 필터링을 수행하는 것을 포함할 수 있다.
예를 들어, 상기 처리 회로는 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하고 상기 초기 모션 벡터 및 상기 리파인먼트에 기초하여 상기 리파인된 모션 벡터를 결정하도록 구성될 수 있다.
또한, 예를 들어, 상기 처리 회로는 상기 초기 모션 벡터에 기초하여 상기 탐색 공간을 결정하도록 구성될 수 있다. 더 구체적으로, 상기 탐색 공간은 상기 초기 모션 벡터에 의해 정의되는 위치에 위치할 수 있다. 예를 들어, 상기 탐색 공간은 상기 초기 모션 벡터 주위에 중심을 둘 수 있다. 더 구체적으로, 예에 따르면, 상기 탐색 공간은 9개의 정수 샘플 모션 벡터 후보들, 즉, 상기 초기 모션 벡터 및 주위에 위치한 8개의 모션 벡터 후보들을 포함할 수 있다.
실시예들에서, 상기 처리 회로는 상기 예측자에 기초하여 블록을 재구성하도록 추가로 구성된다. 재구성은 디코딩 장치에서뿐만 아니라 인코딩 장치의 디코딩 루프에서도 수행될 수 있다. 방법에 관한 본 개시의 양태들은 상기 예측자에 기초하여 상기 블록의 각각의 재구성 단계를 포함할 수 있다.
예를 들어, 상기 처리 회로는 상기 블록과 "잔차(residual)"라고도 불리는 상기 예측자 간의 차이를 획득하도록 구성될 수 있다. 더 구체적으로, 상기 처리 회로는 상기 예측자 및 상기 잔차에 기초하여, 훨씬 더 구체적으로, 상기 예측자와 상기 잔차의 합으로서 상기 블록을 재구성하도록 구성될 수 있다.
예를 들어, 상기 패딩된 샘플 값(대체 값)은 대응하는 사용된(평가된) 정수 샘플 위치의 값을 상기 보간 필터의 축에 대해 미러링하는 것에 의해 결정된다. 상기 보간 필터링은 1차원 또는 분리가능 2차원 필터링일 수 있다.
하나의 예시적인 구현에서, 상기 윈도우는 상기 초기 모션 벡터에 의해 특정된 위치에서의 상기 예측자를 획득하기 위해 액세스 가능한 모든 정수 샘플 위치들에 의해 형성된다.
상기 윈도우는, 예를 들어, 상기 초기 모션 벡터 위치 상에 위치한 블록의 크기를 갖는 블록, 또는 상기 초기 모션 벡터 위치, 또는 상기 예측자를 결정하기 위해 사용되는 보간 필터의 수직 및 수평 길이에 대해 그것의 수직 및/또는 수평 크기에 의해 정의된다. 블록이 특정 위치 "상에 위치"한다는 것의 정의는, 실시예들에서, 예를 들어, 블록의 좌측 상단 샘플 위치를 지칭하기 위해 의도되어 있다. 대안적으로, 다른 샘플 위치가 참조될 수 있거나, 블록 위치가 상기 특정 위치 주위에 중심을 두는 것에 의해 정의될 수 있다. 상기 처리 회로는 상기 초기 모션 벡터 위치, 상기 블록의 크기 및/또는 상기 예측자를 결정하기 위해 사용되는 보간 필터의 수직 및 수평 길이에 따라 상기 윈도우의 위치 및/또는 크기를 정의 또는 결정하도록 구성될 수 있다.
다른 예로서, 상기 윈도우 외부의 정수 위치에 대한 패딩된 샘플 값은 상기 윈도우 외부에 위치한 정수 샘플 위치에 가장 가까운, 상기 윈도우 내부에 위치한 적어도 하나의 사용된 정수 샘플 위치의 샘플 값과 동등한 것으로 결정된다. 특정 예에서, 1차원 보간 필터의 경우에, 상기 윈도우 외부에 위치한 복수의 정수 샘플 위치에 대한 패딩된 샘플 값들은 보간 필터에 의한 보간을 사용하여 예측자를 결정하기 위해 사용되고, 상기 윈도우 외부의 모든 정수 샘플 위치들에 대한 패딩된 샘플 값들은, 상기 윈도우 외부에 위치한 정수 샘플 위치들에 가장 가까운, 상기 윈도우 내부에 위치한 적어도 하나의 사용된 정수 샘플 위치의 샘플 값과 동등한 것으로 결정된다.
실시예들에 따르면, 패딩될 샘플링된 값들의 수는 상기 초기 모션 벡터와 상기 리파인된 모션 벡터 간의 차이에 의존한다.
실시예들에 따르면, 상기 처리 회로는 템플릿에 의한 템플릿 매칭 또는 쌍방 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하도록 구성된다. 상기 템플릿 또는 쌍방 매칭은 추가 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스한다. 상기 추가 윈도우는 상기 탐색 공간 및 상기 템플릿 또는 쌍방 매칭을 위해 액세스 가능한 추가 정수 샘플 위치들을 포함하고, 상기 템플릿 또는 쌍방 매칭은 추가로 상기 추가 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 추가 윈도우 내의 적어도 하나의 샘플에 기초하는 패딩된 샘플(대체) 값으로 패딩하고 상기 액세스된 정수 샘플 위치 값들뿐만 아니라 상기 패딩된 샘플 값들을 사용하여 상기 템플릿 또는 쌍방 매칭을 수행한다.
일 실시예에서, 상기 탐색 공간은 미리 정의된 탭-크기의 필터에 의한 보간 필터링에 의해 획득된 값을 갖는 적어도 하나의 분수 샘플 위치를 포함하고; 상기 보간 필터링은 상기 액세스된 정수 샘플 위치 값들 및 상기 적어도 하나의 대체(패딩된 샘플) 값을 사용하여 상기 적어도 하나의 분수 샘플 위치 값을 획득한다.
더 구체적으로, 상기 템플릿 또는 쌍방 매칭에서 사용된 패딩된 샘플 값은 대응하는 평가된 정수 샘플 위치의 값을 필터의 축에 대해 미러링하는 것에 의해 결정된다.
대안적으로, 상기 템플릿 또는 쌍방 매칭에서 사용된 패딩된 샘플 값은 액세스된 정수 샘플 위치들 중 가장 가까운 것에 대한 값과 동등한 것으로 결정된다.
실시예들에 따르면, 상기 추가 윈도우는 상기 탐색 공간, 상기 초기 모션 벡터 위치 상에 위치한 블록의 크기를 갖는 블록, 및 상기 초기 모션 벡터 위치 중 적어도 하나에 대한 그것의 수직 및/또는 수평 크기에 의해 정의된다.
바람직하게는, 상기 추가 윈도우는 상기 윈도우와 동일하다.
실시예들에 따르면, 상기 리파인먼트는 쌍방 매칭에 의해 결정되고 상기 처리 회로는 상이한 참조 화상들에서의 위치들을 가리키고 초기 모션 벡터들의 쌍을 형성하는 적어도 2개의 초기 모션 벡터를 획득하도록 구성된다.
다른 실시예들에 따르면, 상기 리파인먼트는 템플릿 매칭에 의해 결정되고 상기 처리 회로는 상기 블록에 대한 템플릿을 획득하고 상기 탐색 공간에서의 상기 템플릿에 의한 템플릿 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하도록 추가로 구성된다.
일 실시예에서, 상기 탐색 공간은 미리 정의된 탭-크기의 필터에 의한 보간 필터링에 의해 획득된 값을 갖는 적어도 하나의 분수 샘플 위치를 포함하고; 상기 보간 필터링은 상기 사용된 정수 샘플 위치 값들 및 상기 적어도 하나의 패딩된 샘플 값을 사용하여 상기 적어도 하나의 분수 샘플 위치 값을 획득한다.
본 발명의 양태에 따르면, 프로세서/처리 회로에 의해 실행될 때 상기 양태들 또는 실시예들 또는 그것들의 조합들 중 임의의 것에 따른 단계들을 수행하는 명령어들을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체가 제공된다.
본 발명의 추가의 특정 양태에 따르면, 예측 블록들로 분할된 비디오 이미지들을 비트스트림으로 인코딩하기 위한 또는 각각 비디오 이미지의 예측 블록을 비트스트림으로 인코딩하기 위한 인코딩 장치가 제공된다. 이 인코딩 장치는 예측 블록에 대한 모션 벡터의 결정을 위한 처리 회로를 포함한다. 상기 처리 회로는 적어도 하나의 초기 모션 벡터를 획득하고 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하여, 리파인된 모션 벡터를 획득하도록 구성된다. 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치에 위치한다. 상기 인코딩 장치는 예측 블록과 상기 결정된 모션 벡터에 기초한 위치에서의 예측 블록에 의해 주어진 예측자 간의 차이를 인코딩하기 위한 그리고 상기 인코딩된 차이 및 상기 초기 모션 벡터를 포함하는 비트스트림을 생성하기 위한 인코딩 회로(상기 처리 회로에 포함될 수 있음)를 추가로 포함한다. 상기 인코딩 장치는 보간 필터에 의한 보간 필터링을 사용하여 상기 모션 벡터에 따라 상기 예측자를 결정하기 위한 모션 예측 유닛(상기 처리 회로에 포함될 수 있음)을 추가로 포함한다. 상기 보간 필터링은 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고, 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간 필터링을 수행한다.
본 발명의 또 다른 특정 양태에 따르면, 비트스트림으로부터 예측 블록들로 분할된 비디오 이미지들을 디코딩하기 위한 디코딩 장치가 제공된다. 이 디코딩 장치는 상기 비트스트림으로부터 초기 모션 벡터 및 예측 블록과 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자 간의 인코딩된 차이를 파싱하기 위한 파싱 유닛(상기 디코딩 장치의 처리 회로에 포함될 수 있음)을 포함한다. 상기 디코딩 장치는 예측 블록에 대한 모션 벡터의 결정을 위한 처리 회로(예를 들어, 상기 디코딩 장치의 처리 회로)를 포함한다. 상기 처리 회로는 적어도 하나의 초기 모션 벡터를 획득하고 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하여, 리파인된 모션 벡터를 획득하도록 구성된다. 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치에 위치한다. 또한 추가로, 상기 디코딩 장치는 모션 벡터를 결정하기 위해 상기 처리 회로에 의해 결정된 상기 리파인된 모션 벡터에 의해 특정된 위치에서의 상기 예측 블록에 의해 주어진 예측자와 파싱된 차이의 합으로서 상기 예측 블록을 재구성하기 위한 디코딩 회로(상기 디코딩 장치의 처리 회로에 포함될 수 있음)를 포함한다. 상기 디코딩 회로는 보간 필터에 의한 보간 필터링을 사용하여 상기 모션 벡터에 따라 상기 예측자를 결정하도록 추가로 구성된다. 상기 보간 필터링은 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고, 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간 필터링을 수행한다.
본 발명의 또 다른 추가 양태에 따르면, 예측 블록들로 분할된 비디오 이미지들을 비트스트림으로 인코딩하기 위한 인코딩 방법이 제공된다. 이 인코딩 방법은 예측 블록에 대한 모션 벡터를 결정하는 단계를 포함한다. 모션 벡터를 결정하는 단계는 적어도 하나의 초기 모션 벡터를 획득하는 단계 및 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하여, 리파인된 모션 벡터를 획득하는 단계를 포함한다. 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치에 위치한다. 이 인코딩 방법은 예측 블록과 상기 결정된 모션 벡터에 기초한 위치에서의 예측 블록에 의해 주어진 예측자 간의 차이를 인코딩하는 단계 및 상기 인코딩된 차이 및 상기 초기 모션 벡터를 포함하는 비트스트림을 생성하기 위한 단계를 추가로 포함한다. 이 방법은 보간 필터에 의한 보간 필터링을 사용하여 상기 모션 벡터에 따라 상기 예측자를 결정하는 단계를 추가로 포함한다. 상기 보간 필터링은 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고, 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간 필터링을 수행한다.
본 발명의 또 다른 추가 양태에 따르면, 비트스트림으로부터 예측 블록들로 분할된 비디오 이미지들을 디코딩하기 위한 디코딩 방법이 제공된다. 이 디코딩은 상기 비트스트림으로부터 초기 모션 벡터 및 예측 블록과 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자 간의 인코딩된 차이를 파싱하는 단계를 포함한다. 이 방법은 예측 블록에 대한 모션 벡터를 결정하는 단계를 추가로 포함한다. 모션 벡터를 결정하는 단계는 적어도 하나의 초기 모션 벡터를 획득하는 단계 및 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하여, 리파인된 모션 벡터를 획득하는 단계를 포함한다. 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치에 위치한다. 이 디코딩 방법은 모션 벡터를 결정하는 단계에 의해 결정된 상기 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자와 파싱된 차이의 합으로서 상기 예측 블록을 재구성하는 단계를 추가로 포함한다. 더욱이, 이 방법은 보간 필터에 의한 보간 필터링을 사용하여 상기 모션 벡터에 따라 상기 예측자를 결정하는 단계를 포함한다. 상기 보간 필터링은 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고, 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간 필터링을 수행한다.
본 발명의 추가 이점들 및 실시예들은 종속 청구항들에서 제시된다.
이하에서는 첨부 도면들 및 그림들을 참조하여 예시적인 실시예들이 더 상세히 설명된다.
도 1은 모션 벡터 도출 및 리파인먼트가 이용될 수 있는 인코더의 예시적인 구조를 보여주는 블록도이다.
도 2는 모션 벡터 도출 및 리파인먼트가 이용될 수 있는 디코더의 예시적인 구조를 보여주는 블록도이다.
도 3은 양방향 예측에 적합한 예시적인 템플릿 매칭을 예시하는 개략도이다.
도 4는 단방향 및 양방향 예측에 적합한 예시적인 템플릿 매칭을 예시하는 개략도이다.
도 5는 비트스트림에서 리파인될 초기 모션 벡터들을 제공하지 않고 동작하는 모션 벡터 도출의 스테이지들을 예시하는 블록도이다.
도 6은 쌍방 매칭의 개념을 예시하는 개략도이다.
도 7은 본 발명의 실시예를 구현하기 위한 예시적인 하드웨어를 예시하는 블록도이다.
도 8은 코딩 블록에 대해, 액세스되기 위해 이용가능해야 하는 샘플들을 갖는 예시적인 윈도우를 예시하는 개략도이다.
도 9는 반복 탐색 공간을 예시하는 개략도이다.
도 10은 보간 필터링으로 인한 수평 방향으로의 메모리 액세스 윈도우의 확장을 예시하는 개략도이다.
도 11은 탐색 공간에 기초하여 모션 벡터 리파인먼트를 수행하고 보간에 의해 예측을 획득하는 종래의 방식의 예시이다.
도 12는 도 11의 종래의 예에 따른 모션 벡터 도출 및 예측 획득을 예시하는 흐름도이다.
도 13은 본 발명의 예시적인 실시예들에 따른 탐색 공간에 기초하여 모션 벡터 리파인먼트를 수행하고 보간에 의해 예측을 획득하기 위한 방식의 예시이다.
도 14는 분수 위치 계산을 가능하게 하기 위한 2개의 샘플의 패딩을 예시하는 개략도이다.
도 15는 탐색 공간 경계들 상의 템플릿 매칭을 가능하게 하기 위한 4개의 샘플의 패딩을 예시하는 개략도이다.
도 16은 그것을 보간하는 데 패딩이 필요하지 않은 예시적인 분수 위치들을 예시하는 개략도이다.
도 17은 도 13의 예시적인 실시예들에 따른 모션 벡터 리파인먼트 및 예측 획득을 예시하는 흐름도이다.
도 18은 예측 유닛에 대한 메모리 액세스 윈도우의 정의를 예시하는 개략도이다.
도 19는 실시예에 따른 방법을 설명한다.
도 20은 본 발명의 추가 예시적인 실시예들에 따른 탐색 공간에 기초하여 모션 벡터 리파인먼트를 수행하고 보간에 의해 예측을 획득하기 위한 방식의 예시이다.
도 21은 도 20의 예시적인 실시예들에 따른 모션 벡터 리파인먼트 및 예측 획득을 예시하는 흐름도이다.
본 개시는 참조 화상에서뿐만 아니라 예측자에서 분수 위치들을 획득하기 위해 모션 벡터 리파인먼트 및 보간을 수행하기 위해 액세스 가능해야 하는 샘플들의 수의 조정에 관한 것이다.
위에 언급된 바와 같이, 외부 메모리 액세스는 오늘날의 하드웨어 및 소프트웨어 아키텍처들에서 가장 중요한 설계 고려사항들 중 하나이다. 모션 벡터 추정은, 특히, 템플릿 매칭 또는 쌍방 매칭을 포함할 때, 예를 들어, 모션 벡터 리파인먼트의 경우에, 탐색 공간의 분수 위치들을 획득하기 위해 보간 필터링과 함께 사용될 수도 있다. 보간 필터링의 사용은 메모리로부터 액세스될 필요가 있는 샘플들의 수의 증가를 요구할 수 있다. 그러나, 이는 비싼 온-칩 메모리의 증가 또는, 다른 한편으로는, 구현을 느리게 하는, 외부 메모리 액세스의 수의 증가로 이어질 수 있다. 특히 디코더 측에서, 이들 문제는 바람직하지 않은 더 비싼 또는 더 느린 응용들로 이어질 수 있다.
그러한 상황을 방지하기 위해, 본 개시는 미리 결정된 윈도우들로의 외부 메모리 액세스들에 대한 제한을 제공한다.
윈도우들은 미리 정의된 크기를 가질 수 있다. 예를 들어, 모션 벡터 리파인먼트에서, 윈도우는 적어도 모든 탐색 공간 위치들을 포함할 수 있다. 액세스되는 샘플들은 템플릿 또는 쌍방 매칭을 수행하기 위해 특정 블록 및 그것의 탐색 공간에 대해 실제로 사용되는 샘플들, 예를 들어, 템플릿에 의한 비용 함수 또는 쌍방 비용 함수를 계산하기 위해 사용되는 모든 샘플들이다. 액세스 가능한 샘플들은 또한 특정 블록에 대한 특정 템플릿 또는 쌍방 매칭 동안 반드시 액세스되지는 않는 샘플들을 포함하는데, 예를 들어 그 이유는 탐색 공간이 상이한 샘플들을 포함하는 것으로 반복적으로 결정되었고 해당 샘플들에 대한 템플릿 또는 쌍방 매칭이 모든 액세스 가능한 픽셀들을 필요로 하지는 않기 때문이다. 액세스 가능한 샘플들은 또한 임의의 반복적으로 결정된 탐색 공간으로부터 생겼을 수도 있는 샘플들(즉, 임의의 블록 콘텐츠를 가정함) 및 어쩌면 또한 그러한 가능한 탐색 공간들에서 템플릿 매칭을 수행하기 위해 액세스될 샘플들을 포함한다.
보간 필터링에 의해 최종 예측을 생성하는 경우에, 종래의 접근법에서 필요한 메모리 액세스 윈도우의 확장의 양은 결정된 리파인된 모션 벡터와 초기 모션 벡터 간의 최대 차이에 의존한다.
윈도우는 모든 액세스 가능한 샘플들보다 더 작게 정의될 수 있다는 점에 유의한다. 그러한 윈도우 정의는 온-칩 메모리에 저장되고 외부 메모리로부터 페치될 더 적은 수의 샘플들을 유지하는 것을 가능하게 한다. 따라서, 본 개시는 특정 블록에 대한 템플릿 또는 쌍방 매칭과 관련된 동작들의 목적을 위해 저장/캐싱/버퍼링될 정수 샘플들의 수를 제한한다. 이는 다른 샘플들이 일반적으로 다른 메모리 또는 스토리지에 존재하지/이용가능하지 않는 것을 의미하지 않는다. 위에 논의된 바와 같이, 전형적으로 전체 참조 화상들은 외부 메모리에 저장될 수 있다. 그러나, 템플릿 또는 쌍방 매칭의 목적을 위해, 그것들 중 일부만, 즉, 윈도우 내의 샘플들만이 로딩되어 템플릿 매칭에 이용될 수 있다.
그러한 제한된 윈도우의 제공은 그것을 이용하고 사실상 윈도우 샘플들만을 로딩하는 구현들을 가능하게 한다. 인코더 및 디코더의 유사한 동작을 보장하기 위해, 윈도우 정의는 표준에서 미리 정의되거나 비트스트림에서 시그널링될 수 있다. 특히 리파인된 모션 벡터들이 참조 화상들을 형성하기 위해 사용되는 경우, 인코더 및 디코더 둘 다는 동일한 접근법을 사용해야 한다.
도 1은 비디오 스트림의 프레임들 또는 화상들의 입력 이미지 샘플들을 수신하기 위한 입력 및 인코딩된 비디오 비트스트림을 생성하기 위한 출력을 포함하는 인코더(100)를 보여준다. 본 개시에서 "프레임"이라는 용어는 화상에 대한 동의어로서 사용된다. 그러나, 본 개시는 인터레이싱이 적용되는 경우의 분야들에도 적용가능하다는 점에 유의한다. 일반적으로, 화상은 m x n개의 픽셀을 포함한다. 이는 이미지 샘플들에 대응하고 하나 이상의 색 성분을 포함할 수 있다. 단순성을 위해, 다음 설명은 휘도의 샘플들을 의미하는 픽셀들을 지칭한다. 그러나, 본 발명의 모션 벡터 탐색은 RGB 등과 같은 탐색 공간의 성분들 또는 색차(chrominance)를 포함하는 임의의 색 성분에 적용될 수 있다는 점에 유의한다. 다른 한편으로, 하나의 성분에 대한 모션 벡터 추정만을 수행하고 결정된 모션 벡터를 더 많은(또는 모든) 성분들에 적용하는 것이 유익할 수 있다.
코딩될 입력 블록들은 반드시 동일한 크기를 갖는 것은 아니다. 하나의 화상은 상이한 크기들의 블록들을 포함할 수 있고 상이한 화상들의 블록 래스터도 상이할 수 있다.
설명적 실현에서, 인코더(100)는 비디오 스트림에 예측, 변환, 양자화, 및 엔트로피 코딩을 적용하도록 구성된다. 변환, 양자화, 및 엔트로피 코딩은 각각 변환 유닛(106), 양자화 유닛(108), 및 엔트로피 인코딩 유닛(170)에 의해 수행되어, 인코딩된 비디오 비트스트림을 출력으로서 생성한다.
비디오 스트림은 복수의 프레임을 포함할 수 있고, 여기서 각각의 프레임은 인트라 또는 인터 코딩되는 특정 크기의 블록들로 분할된다. 예를 들어, 비디오 스트림의 제1 프레임의 블록들이 인트라 예측 유닛(154)에 의해 인트라 코딩된다. 인트라 프레임은 동일한 프레임 내의 정보만을 사용하여 코딩되어, 그것이 독립적으로 디코딩될 수 있고 또한 그것이 랜덤 액세스를 위해 비트스트림에서 엔트리 포인트를 제공할 수 있도록 한다. 비디오 스트림의 다른 프레임들의 블록들은 인터 예측 유닛(144)에 의해 인터 코딩될 수 있다: 이전에 코딩된 프레임들(참조 프레임들)로부터의 정보는 시간 중복성을 감소시키기 위해 사용되어, 인터 코딩된 프레임의 각각의 블록이 참조 프레임에서의 블록으로부터 예측되도록 한다. 모드 선택 유닛(160)은 프레임의 블록이 인트라 예측 유닛(154)에 의해 처리되어야 하는지 또는 인터 예측 유닛(144)에 의해 처리되어야 하는지를 선택하도록 구성된다. 이 모드 선택 유닛(160)은 또한 인트라 또는 인터 예측의 파라미터들을 제어한다. 이미지 정보의 리프레싱을 가능하게 하기 위해, 인트라 코딩된 블록들이 인터 코딩된 프레임들 내에 제공될 수 있다. 더욱이, 인트라 코딩된 블록들만을 포함하는 인트라 프레임들은 디코딩을 위한 엔트리 포인트들, 즉, 디코더가 이전에 코딩된 프레임들로부터의 정보를 갖지 않고 디코딩을 시작할 수 있는 포인트들을 제공하기 위해 비디오 시퀀스 내에 규칙적으로 삽입될 수 있다.
인트라 추정 유닛(152) 및 인트라 예측 유닛(154)은 인트라 예측을 수행하는 유닛들이다. 특히, 인트라 추정 유닛(152)은 원래 이미지의 지식에도 기초하여 예측 모드를 도출할 수 있는 반면 인트라 예측 유닛(154)은, 차이 코딩에 대해, 대응하는 예측자, 즉, 선택된 예측 모드를 사용하여 예측되는 샘플들을 제공한다. 공간적 또는 시간적 예측을 수행하기 위해, 코딩된 블록들은 역양자화 유닛(110) 및 역변환 유닛(112)에 의해 더 처리될 수 있다. 블록의 재구성 후에, 디코딩된 이미지의 품질을 더 개선하기 위해 루프 필터링 유닛(120)이 적용된다. 그 후 필터링된 블록들은 참조 프레임들을 형성하고 이것들은 그 후 디코딩된 화상 버퍼(130)에 저장된다. 인코더 측에서의 그러한 디코딩 루프(디코더)는 디코더 측에서 재구성된 참조 화상들과 동일한 참조 프레임들을 생성하는 이점을 제공한다. 따라서, 인코더 및 디코더 측은 대응하는 방식으로 동작한다. 여기서 "재구성"이라는 용어는 디코딩된 잔차 블록에 예측 블록을 추가하는 것에 의해 재구성된 블록을 획득하는 것을 지칭한다.
인터 추정 유닛(142)은 인터 코딩될 현재 프레임 또는 화상의 블록 및 디코딩된 화상 버퍼(130)로부터의 하나 또는 수 개의 참조 프레임을 입력으로서 수신한다. 모션 추정은 인터 추정 유닛(142)에 의해 수행되는 반면 인터 예측 유닛(144)에 의해 모션 보상이 적용된다. 모션 추정은, 예를 들어, 코딩될 원래 이미지를 또한 사용하여, 특정 비용 함수에 기초하여 모션 벡터 및 참조 프레임을 획득하기 위해 사용된다. 예를 들어, 모션 추정 유닛(142)은 초기 모션 벡터 추정을 제공할 수 있다. 그 후 초기 모션 벡터는 비트스트림 내에서 직접적으로 벡터의 형식으로 또는 인코더 및 디코더에서 동일한 방식으로 미리 결정된 규칙에 기초하여 구성된 후보들의 리스트 내의 모션 벡터 후보를 참조하는 인덱스로서 시그널링될 수 있다. 그 후 모션 보상은 현재 블록의 예측자를, 참조 프레임에서의 현재 블록과 동위치의 블록의 참조 프레임에서의 참조 블록으로의 병진 이동으로서, 즉, 모션 벡터에 의해 도출한다. 인터 예측 유닛(144)은 현재 블록에 대한 예측 블록을 출력하고, 여기서 상기 예측 블록은 비용 함수를 최소화한다. 예를 들어, 비용 함수는 코딩될 현재 블록과 그것의 예측 블록 간의 차이일 수 있고, 즉, 비용 함수는 잔차 블록을 최소화한다. 잔차 블록의 최소화는 예를 들어 현재 블록의 모든 픽셀들(샘플들)과 후보 참조 화상에서의 후보 블록 간의 절대 차이들의 합(SAD)을 계산하는 것에 기초한다. 그러나, 일반적으로, 평균 제곱 오차(mean square error)(MSE) 또는 구조적 유사도 메트릭(structural similarity metric)(SSIM)과 같은 임의의 다른 유사도 메트릭이 이용될 수 있다.
그러나, 비용 함수는 또한 그러한 인터 블록을 코딩하기 위해 필요한 비트들의 수 및/또는 그러한 코딩으로부터 생기는 왜곡일 수 있다. 따라서, 레이트-왜곡 최적화 절차를 사용하여 모션 벡터 선택 및/또는 일반적으로 블록에 대해 인터 예측을 사용할지 또는 인트라 예측을 사용할지 및 어느 설정들로 할지와 같은 인코딩 파라미터들에 대해 결정할 수 있다.
인트라 추정 유닛(152) 및 인트라 예측 유닛(154)은 입력으로서 현재 프레임 또는 인트라 코딩될 화상의 블록 및 현재 프레임의 이미 재구성된 영역으로부터의 하나 또는 수 개의 참조 샘플을 수신한다. 그 후 인트라 예측이 현재 프레임의 참조 샘플들의 함수의 관점에서 현재 프레임의 현재 블록의 픽셀들을 설명한다. 인트라 예측 유닛(154)은 현재 블록에 대한 예측 블록을 출력하고, 여기서 상기 예측 블록은 유리하게는 코딩될 현재 블록과 그것의 예측 블록 간의 차이를 최소화하고, 즉, 그것은 잔차 블록을 최소화한다. 잔차 블록의 최소화는 예를 들어 레이트-왜곡 최적화 절차에 기초할 수 있다. 특히, 예측 블록은 참조 샘플들의 방향성 보간으로서 획득된다. 그 방향은 레이트-왜곡 최적화에 의해 및/또는 인터 예측과 관련하여 위에 언급된 바와 같은 유사도 측정을 계산하는 것에 의해 결정될 수 있다.
인터 추정 유닛(142)은 현재 프레임 또는 인터 코딩될 화상의 블록 또는 보다 범용으로 형성된 이미지 샘플 및 2개 이상의 이미 디코딩된 화상(231)을 입력으로서 수신한다. 그 후 인터 예측은 참조 화상들의 참조 이미지 샘플들에 대한 모션 벡터들의 관점에서 현재 프레임의 현재 이미지 샘플을 설명한다. 인터 예측 유닛(142)은 현재 이미지 샘플에 대한 하나 이상의 모션 벡터를 출력하고, 여기서 모션 벡터들이 가리키는 상기 참조 이미지 샘플들은 코딩될 현재 이미지 샘플과 그것의 참조 이미지 샘플들 간의 차이를 유리하게 최소화하고, 즉, 그것은 잔차 이미지 샘플을 최소화한다. 그 후 현재 블록에 대한 예측자는 차이 코딩을 위해 인터 예측 유닛(144)에 의해 제공된다.
그 후 현재 블록과 그것의 예측, 즉, 잔차 블록(105) 간의 차이는 변환 유닛(106)에 의해 변환된다. 변환 계수들(107)은 양자화 유닛(108)에 의해 양자화되고 엔트로피 인코딩 유닛(170)에 의해 엔트로피 코딩된다. 그렇게 생성된 인코딩된 화상 데이터(171), 즉, 인코딩된 비디오 비트스트림은 인트라 코딩된 블록들 및 인터 코딩된 블록들 및 대응하는 시그널링(모드 지시, 모션 벡터의 지시, 및/또는 인트라 예측 방향과 같은 것)을 포함한다. 변환 유닛(106)은 푸리에 또는 이산 코사인 변환(DFT/FFT 또는 DCT)과 같은 선형 변환을 적용할 수 있다. 공간 주파수 도메인으로의 그러한 변환은 결과적인 계수들(107)이 전형적으로 더 낮은 주파수들에서 더 높은 값들을 갖는다는 이점을 제공한다. 따라서, 유효 계수 스캐닝(지그-재그와 같은) 및 양자화 후에, 결과적인 값들의 시퀀스는 처음에는 전형적으로 어떤 더 큰 값들을 가지며 0들의 런(run)으로 끝난다. 이는 더 효율적인 코딩을 가능하게 한다. 양자화 유닛(108)은 계수 값들의 해상도를 감소시킴으로써 실제의 손실 압축을 수행한다. 그 후 엔트로피 코딩 유닛(170)은 계수 값들에 이진 코드워드들을 할당하여 비트스트림을 생성한다. 엔트로피 코딩 유닛(170)은 또한 시그널링 정보(도 1에 도시되지 않음)를 코딩한다.
도 2는 비디오 디코더(200)를 보여준다. 비디오 디코더(200)는 특히, 디코딩된 화상 버퍼(230), 인터 예측 유닛(244), 및 블록 예측 유닛인 인트라 예측 유닛(254)을 포함한다. 디코딩된 화상 버퍼(230)는 인코딩된 비디오 비트스트림으로부터 재구성된 적어도 하나(단방향 예측을 위한 것) 또는 적어도 2개(양방향 예측을 위한 것) 참조 프레임들을 저장하도록 구성되고, 상기 참조 프레임들은 인코딩된 비디오 비트스트림의 현재 프레임(현재 디코딩된 프레임)과 상이하다. 인트라 예측 유닛(254)은 디코딩될 블록의 추정인 예측 블록을 생성하도록 구성된다. 인트라 예측 유닛(254)은 디코딩된 화상 버퍼(230)로부터 획득되는 참조 샘플들에 기초하여 이 예측을 생성하도록 구성된다.
디코더(200)는 비디오 인코더(100)에 의해 생성된 인코딩된 비디오 비트스트림을 디코딩하도록 구성되고, 바람직하게는 디코더(200) 및 인코더(100) 둘 다는 인코딩될/디코딩될 각각의 블록에 대한 동일한 예측들을 생성한다. 디코딩된 화상 버퍼(230), 재구성된 블록(215), 버퍼(216) 및 인트라 예측 유닛(254)의 특징들은 도 1의 디코딩된 화상 버퍼(130), 재구성된 블록(115), 버퍼(116) 및 인트라 예측 유닛(154)의 특징들과 유사하다.
비디오 디코더(200)는, 예를 들어, 각각의 비디오 코더(100)의 역양자화 유닛(110), 역변환 유닛(112), 및 루프 필터링 유닛(120)에 대응하는, 역양자화 유닛(210), 역변환 유닛(212), 및 루프 필터링 유닛(220)과 같은, 비디오 인코더(100)에 또한 존재하는 추가 유닛들을 포함한다.
엔트로피 디코딩 유닛(204)은 수신된 인코딩된 비디오 비트스트림을 디코딩하고, 양자화된 잔차 변환 계수들(209) 및 시그널링 정보를 대응하여 획득하도록 구성된다. 양자화된 잔차 변환 계수들(209)은 역양자화 유닛(210) 및 역변환 유닛(212)에 공급되어 잔차 블록을 생성한다. 잔차 블록이 예측 블록(265)에 추가되고, 이러한 추가는 루프 필터링 유닛(220)에 공급되어 디코딩된 비디오를 획득한다. 디코딩된 비디오의 프레임들은 디코딩된 화상 버퍼(230)에 저장될 수 있고 인터 예측을 위해 디코딩된 화상(231)으로서 역할을 할 수 있다.
일반적으로, 도 1 및 도 2의 인트라 예측 유닛들(154 및 254)은 인코딩될 필요가 있거나 디코딩될 필요가 있는 블록들에 대한 예측 신호들을 생성하기 위해 이미 인코딩된 영역으로부터의 참조 샘플들을 사용할 수 있다.
엔트로피 디코딩 유닛(204)은 그 입력으로서 인코딩된 비트스트림(171)을 수신한다. 일반적으로, 비트스트림은 먼저 파싱되는데, 즉, 시그널링 파라미터들 및 잔차들이 비트스트림으로부터 추출된다. 전형적으로, 비트스트림의 구문 및 시맨틱은 인코더들 및 디코더들이 상호운용가능한 방식으로 작업할 수 있도록 표준에 의해 정의된다. 상기 배경기술 부분에서 설명된 바와 같이, 인코딩된 비트스트림은 예측 잔차들을 포함할 뿐만이 아니다. 모션 보상된 예측의 경우, 모션 벡터 지시가 또한 비트스트림에서 코딩되고 디코더에서 그로부터 파싱된다. 모션 벡터 지시는 모션 벡터가 제공되는 참조 화상에 의해 그리고 모션 벡터 좌표들에 의해 주어질 수 있다. 지금까지, 완전한 모션 벡터들을 코딩하는 것이 고려되었다. 그러나, 또한 비트스트림에서의 현재 모션 벡터와 이전 모션 벡터 간의 차이만이 인코딩될 수 있다. 이 접근법은 이웃 블록들의 모션 벡터들 간의 중복성을 이용하는 것을 허용한다.
참조 화상을 효율적으로 코딩하기 위해, H.265 코덱(ITU-T, H265, Series H: Audiovisual and multimedia systems: High Efficient Video Coding)이 리스트 인덱스들에 각각의 참조 프레임들을 할당하는 참조 화상들의 리스트를 제공한다. 그 후 참조 프레임은 대응하는 할당된 리스트 인덱스를 그 안에 포함시킴으로써 비트스트림에서 시그널링된다. 그러한 리스트는 표준에서 정의되거나 비디오의 처음에 또는 다수의 프레임들의 세트에서 시그널링될 수 있다. H.265에서, L0 및 L1이라고 불리는 정의된 참조 화상들의 2개의 리스트가 있다는 점에 유의한다. 그 후 참조 화상은 리스트(L0 또는 L1)를 지시하고 원하는 참조 화상과 연관된 해당 리스트에서의 인덱스를 지시하는 것에 의해 비트스트림에서 시그널링된다. 2개 이상의 리스트를 제공하는 것은 더 양호한 압축을 위한 이점들을 가질 수 있다. 예를 들어, L0은 단방향 인터 예측 슬라이스들 및 양방향 인터 예측 슬라이스들 둘 다에 대해 사용될 수 있는 반면, L1은 양방향 인터 예측 슬라이스들에 대해서만 사용될 수 있다. 그러나, 일반적으로 본 개시는 L0 및 L1 리스트들의 임의의 내용에 제한되지 않는다.
리스트 L0 및 L1은 표준에서 정의되고 고정될 수 있다. 그러나, 비디오 시퀀스의 처음에 그것들을 시그널링하는 것에 의해 코딩/디코딩에서 더 많은 유연성이 달성될 수 있다. 따라서, 인코더는 인덱스에 따라 정렬된 특정 참조 화상으로 리스트 L0 및 L1을 구성할 수 있다. L0 및 L1 리스트는 동일한 고정 크기를 가질 수 있다. 일반적으로 2개보다 많은 리스트가 있을 수 있다. 모션 벡터는 참조 화상에서의 좌표들에 의해 직접 시그널링될 수 있다. 대안적으로, H.265에서 또한 특정된 바와 같이, 후보 모션 벡터들의 리스트가 구성될 수 있고, 특정 모션 벡터를 갖는 리스트에 연관된 인덱스가 송신될 수 있다.
현재 블록의 모션 벡터들은 통상적으로 현재 화상에서의 또는 더 이른 코딩된 화상들에서의 이웃 블록들의 모션 벡터들과 상관된다. 이는 이웃 블록들이 유사한 모션을 갖는 동일한 움직이는 대상에 대응할 가능성이 있고 또한 대상의 모션은 시간 경과에 따라 갑자기 변화할 가능성이 적기 때문이다. 결과적으로, 이웃 블록들에서의 모션 벡터들을 예측자들로서 사용하는 것은 시그널링된 모션 벡터 차이의 크기를 감소시킨다. 모션 벡터 예측자(MVP)들은 통상적으로 공간적으로 이웃들로부터 또는 참조 화상에서의 시간적으로 이웃하는 또는 동위치 블록들로부터, 이미 인코딩된/디코딩된 모션 벡터들로부터 도출된다. H.264/AVC에서, 이는 3개의 공간적으로 이웃하는 모션 벡터들의 성분별(component wise) 중앙값을 행하는 것에 의해 행해진다. 이러한 접근법을 사용하여, 예측자의 어떤 시그널링도 요구되지 않는다. 참조 화상에서의 동위치 블록으로부터의 시간적 MVP들은 H.264/AVC의 소위 시간적 직접 모드에서만 고려된다. H.264/AVC 직접 모드들은 또한 모션 벡터 이외의 다른 모션 데이터를 도출하기 위해 사용된다. 따라서, 그것들은 HEVC에서의 블록 병합 개념에 더 관련된다. HEVC에서, MVP를 암시적으로 도출하는 접근법은 MVP들의 리스트로부터 어느 MVP가 모션 벡터 도출을 위해 사용되는지를 명시적으로 시그널링하는 모션 벡터 경쟁으로 알려진 기법으로 대체되었다. HEVC에서의 가변 코딩 쿼드-트리 블록 구조는 모션 벡터들을 갖는 수 개의 이웃 블록들을 잠재적 MVP 후보들로서 갖는 하나의 블록을 야기할 수 있다. 좌측 이웃을 예로 들어, 최악의 경우에 64x64 루마 예측 블록은, 64x64 루마 코딩 트리 블록이 더 분할되지 않고 그리고 좌측의 것이 최대 깊이로 분할될 때 좌측으로 16개의 4x4 루마 예측 블록을 가질 수 있다.
그러한 유연한 블록 구조를 고려하기 위해 모션 벡터 경쟁을 수정하는 AMVP(Advanced Motion Vector Prediction)가 도입되었다. HEVC의 개발 동안, 초기 AMVP 설계는 코딩 효율과 구현 친화적 설계 간의 양호한 절충을 제공하기 위해 상당한 정도로 단순화되었다. AMVP의 초기 설계는 예측자들의 다음 3개의 상이한 부류: 공간적 이웃들로부터의 3개의 모션 벡터, 3개의 공간적 예측자들의 중앙값, 및 동위치의 시간적으로 이웃 블록으로부터의 스케일링된 모션 벡터로부터의 5개의 MVP를 포함했다. 더욱이, 예측자들의 리스트는 가장 확률이 높은 모션 예측자를 제1 위치에 배치하도록 재정렬하는 것에 의해 그리고 최소의 시그널링 오버헤드를 보증하기 위해 중복 후보들을 제거하는 것에 의해 수정되었다. AMVP 후보 리스트 구성의 최종 설계는 다음과 같은 2개의 MVP 후보를 포함한다: a) 5개의 공간적 이웃 블록으로부터 도출되는 2개까지의 공간적 후보 MVP들; b) 양쪽 공간적 후보 MVP가 이용가능하지 않거나 그것들이 동일하지 않을 때 2개의 시간적, 동위치 블록으로부터 도출된 하나의 시간적 후보 MVP들; 및 c) 공간적, 시간적 또는 양쪽 후보들이 이용가능하지 않을 때의 제로 모션 벡터들. 모션 벡터 결정에 관한 상세 사항들은 인용에 의해 본 명세서에 포함된 V. Sze 등(Ed.)의 저술, High Efficiency Video Coding (HEVC): Algorithms and Architectures, Springer, 2014, 특히 Chapter 5에서 발견될 수 있다.
시그널링 오버헤드에서의 추가적인 증가 없이 모션 벡터 추정을 더 개선하기 위해, 인코더 측에서 도출되고 비트스트림에서 제공되는 모션 벡터들을 더 리파인하는 것이 유익할 수 있다. 모션 벡터 리파인먼트는 인코더로부터의 도움 없이 디코더에서 수행될 수 있다. 인코더는 그것의 디코더 루프에서 대응하는 모션 벡터들을 획득하기 위해 동일한 리파인먼트를 이용할 수 있다. 모션 벡터 리파인먼트는 참조 화상의 정수 픽셀 위치들 및 분수 픽셀 위치들을 포함하는 탐색 공간에서 수행된다. 예를 들어, 분수 픽셀 위치들은 1/2-픽셀 위치들 또는 1/4-픽셀 또는 추가의 분수 위치들일 수 있다. 분수 픽셀 위치들은 쌍-선형 보간과 같은 보간에 의해 정수(풀-픽셀(full-pixel)) 위치들로부터 획득될 수 있다. 그러나, 본 개시는 분수 픽셀 위치들을 포함하지 않는 탐색 공간들에 동등하게 적용가능하다.
현재 블록의 양방향 예측에서, 리스트 L0의 각각의 제1 모션 벡터 및 리스트 L1의 제2 모션 벡터를 사용하여 획득된 2개의 예측 블록은 단일 예측 신호로 조합되고, 이는 단방향 예측보다 원래의 신호에 더 양호한 적응을 제공할 수 있어, 더 적은 잔차 정보 및 어쩌면 더 효율적인 압축을 야기할 수 있다.
디코더에서, 현재 블록은 디코딩되고 있기 때문에 이용가능하지 않기 때문에, 모션 벡터 리파인먼트의 목적을 위해, 현재 블록의 추정인 그리고 이미 처리된(즉, 인코더 측에서 코딩되고 디코더 측에서 디코딩된)이미지 부분들에 기초하여 구성되는 템플릿이 사용된다.
먼저, 제1 모션 벡터 MV0의 추정 및 제2 모션 벡터 MV1의 추정이 디코더(200)에서 입력으로서 수신된다. 인코더 측(100)에서, 모션 벡터 추정들 MV0 및 MV1은 블록 매칭에 의해 및/또는 (동일한 화상에서 또는 인접한 화상들에서) 현재 블록에 이웃하는 블록들의 모션 벡터들에 의해 형성된 (병합 리스트와 같은) 후보들의 리스트에서의 탐색에 의해 획득될 수 있다. 그 후 MV0 및 MV1은 유리하게는 비트스트림 내에서 디코더 측에 시그널링된다. 그러나, 일반적으로, 인코더에서의 제1 결정 스테이지도 템플릿 매칭에 의해 수행될 수 있고 이는 시그널링 오버헤드를 감소시키는 이점을 제공할 것이라는 점에 유의한다.
디코더 측(200)에서, 모션 벡터들 MV0 및 MV1은 유리하게는 비트스트림에서의 정보에 기초하여 획득된다. MV0 및 MV1은 직접 시그널링되거나, 또는 차동 시그널링되거나, 및/또는 모션 벡터의 리스트(병합 리스트)에서의 인덱스가 시그널링된다. 그러나, 본 개시는 비트스트림에서 모션 벡터들을 시그널링하는 것에 제한되지 않는다. 오히려, 모션 벡터는, 인코더의 동작에 대응하여, 제1 스테이지에서 이미 템플릿 매칭에 의해 결정될 수 있다. 제1 스테이지(모션 벡터 도출)의 템플릿 매칭은 제2의 리파인먼트 스테이지의 탐색 공간과 상이한 탐색 공간에 기초하여 수행될 수 있다. 특히, 리파인먼트는 더 높은 해상도(즉, 탐색 위치들 간의 더 짧은 거리)를 갖는 탐색 공간 상에서 수행될 수 있다.
각각의 MV0 및 MV1이 가리키는 2개의 참조 화상 RefPic0 및 RefPic1의 지시가 또한 디코더에 제공된다. 참조 화상들은 이전 처리, 즉, 각각의 인코딩 및 디코딩의 결과로서 인코더 및 디코더 측에서 디코딩된 화상 버퍼에 저장된다. 이들 참조 화상들 중 하나는 탐색에 의한 모션 벡터 리파인먼트를 위해 선택된다. 인코더 및 디코더 각각의 참조 화상 선택 유닛은 MV0이 가리키는 제1 참조 화상 및 MV1이 가리키는 제2 참조 화상을 선택하도록 구성된다. 선택에 이어서, 참조 화상 선택 유닛은 모션 벡터 리파인먼트를 수행하기 위해 제1 참조 화상이 사용되는지 또는 제2 참조 화상이 사용되는지를 결정한다. 모션 벡터 리파인먼트를 수행하기 위해, 제1 참조 화상에서의 탐색 영역은 모션 벡터 MV0이 가리키는 후보 위치 주위에 정의된다. 탐색 영역 내의 후보 탐색 공간 위치들은, 탐색 공간 내의 템플릿 매칭을 수행하고 및 절대 차이들의 합(SAD)과 같은 유사도 메트릭을 결정하는 것에 의해 템플릿 블록과 가장 유사한 블록을 찾기 위해 분석된다. 탐색 공간의 위치들은 템플릿의 좌측 상단 모서리가 매칭되는 위치들을 나타낸다. 이미 위에 언급된 바와 같이, 좌측 상단 모서리는 단지 관례이고, 중심 포인트와 같은 탐색 공간의 임의의 포인트가 일반적으로 매칭 위치를 나타내기 위해 사용될 수 있다.
위에 언급된 문서 JVET-D0029에 따르면, 디코더 측 모션 벡터 리파인먼트(DMVR)는 2개의 각각의 참조 화상 RefPict0 및 RefPict1을 가리키는 초기 모션 벡터들 MV0 및 MV1을 입력으로서 갖는다. 이들 초기 모션 벡터들은 RefPict0 및 RefPict1에서의 각각의 탐색 공간들을 결정하기 위해 사용된다. 더욱이, 모션 벡터들 MV0 및 MV1을 사용하여, 다음과 같이 MV0 및 MV1이 가리키는 각각의 블록들(샘플들의) A 및 B에 기초하여 템플릿이 구성된다:
Template = function ((Block A, Block B)).
함수는 샘플별(sample-wise) 가중 합산과 조합되는 샘플 클리핑 동작일 수 있다. 그 후 템플릿은 각각의 참조 화상들 0 및 1에서 MV0 및 MV1에 기초하여 결정된 탐색 공간들에서 템플릿 매칭을 수행하기 위해 사용된다. 각각의 탐색 공간들에서 최상의 템플릿 매칭을 결정하기 위한 비용 함수는 SAD(Template, Block candA')이고, 여기서 블록 candA'는 MV0에 의해 주어진 위치 상에서 스패닝(span)되는 탐색 공간에서 후보 MV가 가리키는 후보 코딩 블록이다. 도 3은 최상으로 매칭된 블록 A'의 결정 및 결과적인 리파인된 모션 벡터 MV0'을 예시한다. 대응하여, 도 3에 도시된 바와 같이, 최상으로 매칭된 블록 B' 및 블록 B'을 가리키는 대응하는 모션 벡터 MV1'을 찾기 위해 동일한 템플릿이 이용된다. 다시 말해서, 초기 모션 벡터들 MV0 및 MV1이 가리키는 블록 A 및 B에 기초하여 템플릿이 구성된 후에, 리파인된 모션 벡터들 MV0' 및 MV1'은 템플릿에 의한 RefPic0 및 RefPic1에 대한 탐색을 통해 발견된다.
모션 벡터 도출 기법들은 때때로 프레임 레이트 상향 변환(frame rate up-conversion, FRUC)이라고도 지칭된다. 초기 모션 벡터들 MV0 및 MV1은 일반적으로 인코더 및 디코더가 모션 벡터 리파인먼트를 위해 동일한 초기 포인트를 사용할 수 있도록 보장하기 위해 비트스트림에서 지시될 수 있다. 대안적으로, 초기 모션 벡터들은 하나 이상의 초기 후보를 포함하는 초기 후보들의 리스트를 제공하는 것에 의해 획득될 수 있다. 그것들 각각에 대해, 리파인된 모션 벡터가 결정되고, 끝에서, 비용 함수를 최소화하는 리파인된 모션 벡터가 선택된다.
본 발명은 도 3을 참조하여 위에 설명된 바와 같은 템플릿 매칭에 제한되지 않는다는 것에 추가로 유의한다. 도 4는 단방향 예측에도 적용가능한 대안의 템플릿 매칭을 예시한다. 상세 사항들은 문서 JVET-A1001에서, 특히 Jianle Chen 외에 의한 "Algorithm Description of Joint Exploration Test Model 1"이라는 제목을 갖고 또한 http://phenix.it-sudparis.eu/jvet/에서 액세스 가능한 문서 JVET-A1001의 섹션 "2.4.6. Pattern matched motion vector derivation"에서 발견될 수 있다. 이 템플릿 매칭 접근법에서의 템플릿은 현재 프레임에서의 현재 블록에 인접한 샘플들로서 결정된다. 도 1에 도시된 바와 같이, 현재 블록의 상단 및 좌측 경계에 인접한 이미 재구성된 샘플들이 취해질 수 있고, "L-형상 템플릿"이라고 지칭된다.
도 5는 또한 사용될 수 있는 다른 유형의 모션 벡터 도출을 예시한다. 모션 벡터 도출 프로세스에 대한 입력은 모션 벡터 도출이 적용되는지 여부를 지시하는 플래그이다. 암시적으로, 도출 프로세스에 대한 다른 입력은 이웃하는(시간적으로 또는 공간적으로)이전에 코딩된/재구성된 블록의 모션 벡터이다. 복수의 이웃 블록의 모션 벡터들은 모션 벡터 도출의 초기 탐색 단계에 대한 후보들로서 사용된다. 프로세스의 출력은 각각의 MV0'(양방향 예측이 사용되는 경우, 어쩌면 또한 MV1') 및 대응하는 참조 화상 인덱스들 refPict0 및 어쩌면 refPict1이다. 그 후 모션 벡터 리파인먼트 스테이지는 위에 설명된 바와 같은 템플릿 매칭을 포함한다. 리파인된 하나(단방향 예측) 또는 더 많은(양방향 예측/다중 프레임 예측) 모션 벡터들을 찾은 후에, 현재 블록의 예측자가 구성된다(가중 샘플 예측에 의해 단방향/다중 예측에 대해, 그렇지 않으면 리파인된 MV가 가리키는 샘플들을 참조하는 것에 의해).
본 발명은 위에 설명된 2개의 매칭 방법(템플릿 매칭의 예들)에 제한되지 않는다. 예로서, 쌍방 매칭(또한 문서 JVET-A1001에 설명됨)이라고 불리는 제3 매칭 방법이 또한 모션 벡터 리파인먼트를 위해 사용될 수 있고, 본 발명은 유사하게 적용된다. 도 6을 참조하여 쌍방 매칭이 설명된다.
쌍방 매칭에 따르면, 2개의 상이한 참조 화상에서 현재 블록의 모션 궤적을 따른 2개의 블록 간의 최상의 매칭이 탐색된다. 도 6에 도시된 바와 같이, 쌍방 매칭은 2개의 상이한 참조 화상에서 현재 블록의 모션 궤적을 따라 2개의 블록 간의 가장 가까운 매칭을 찾는 것에 의해 현재 블록의 모션 정보를 도출하기 위해 사용된다. 쌍방 매칭에서, SAD(Block cand0', Block cand1')와 같은 비용 함수가 사용될 수 있고, 여기서 Block cand0'은 MV0이 가리키고 Block cand1'은 MV1이 가리킨다.
계산 비용을 감소시키기 위해, 비용 함수들이 계산되고 비교되는 모션 벡터들의 적합한 후보들(후보 쌍들)을 선택하기 위해, 다음의 조건의 이행을 고려하는 것이 의미가 있을 수 있다. 연속 모션 궤적의 가정 하에서, 2개의 참조 블록을 가리키는 모션 벡터들 MV0 및 MV1은 현재 화상과 2개의 참조 화상 간의 시간 거리들, 즉, TD0 및 TD1에 비례할 것이다. 특수한 경우로서, 현재 화상이 시간적으로 2개의 참조 화상 사이에 있고 현재 화상으로부터 2개의 참조 화상까지의 시간 거리가 동일할 때, 하나의 참조 화상을 참조하는 복수의 쌍의 모션 벡터들과 다른 참조 화상을 참조하는 쌍들의 각각의 모션 벡터들 간의 모션 벡터 차이들은 서로 미러링할 것이다.
도 7에 처리 회로(600)가 예시되어 있다. 처리 회로는 임의의 하드웨어를 포함할 수 있고, 구성은 둘 다의 조합의 임의의 종류의 프로그래밍 또는 하드웨어 설계에 의해 구현될 수 있다. 예를 들어, 처리 회로는 상기 단계들을 구현하는 대응하는 소프트웨어를 갖는 범용 프로세서와 같은 단일 프로세서에 의해 형성될 수 있다. 다른 한편으로, 처리 회로는 DSP(Digital Signal Processor)의 ASIC(Application-Specific Integrated Circuit) 또는 FPGA(Field-Programmable Gate Array) 등과 같은 특수 하드웨어에 의해 구현될 수 있다.
처리 회로는 상기 모션 벡터 도출을 수행하기 위해 상호접속된 위에 언급된 하드웨어 컴포넌트들 중 하나 이상을 포함할 수 있다. 처리 회로(600)는 2개의 기능성을 구현하는 계산 로직을 포함한다: 초기 모션 벡터(또는 양방향/다중 예측이 사용되는 경우 복수의 초기 모션 벡터) 및 템플릿 매칭이 사용된다면 템플릿을 획득하는 것(610) 및 모션 벡터 리파인먼트(620). 이들 2개의 기능성은 동일한 하드웨어 피스 상에 구현될 수 있거나, 또는 초기 모션 벡터 및 템플릿 결정 유닛(610) 및 모션 벡터 리파인먼트 유닛(620)과 같은 별개의 하드웨어 유닛들에 의해 수행될 수 있다. 처리 회로(600)는 재구성된 참조 화상 샘플들이 저장되는 외부 메모리(650)에 통신가능하게 접속될 수 있다. 더욱이, 처리 회로(600)는 외부 메모리로부터 전송되고 현재 처리된 블록에 대한 모션 벡터 결정을 위해 사용되는 윈도우에서 샘플들을 버퍼링하는 내부 메모리(640)를 추가로 포함할 수 있다. 처리 회로는 단일 칩 상에 집적 회로로서 구현될 수 있다.
처리 회로는 도 1 및 도 2를 참조하여 설명된 인코더 및/또는 디코더의 추가 기능들을 구현할 수 있다는 점에 유의한다. 내부 메모리는 캐시 또는 라인 메모리와 같은 온-칩 메모리일 수 있다. 칩 메모리는 유리하게는 계산 속도를 올리기 위해 인코더/디코더 칩 상에 구현된다. 칩의 크기가 제한되므로, 온-칩 메모리는 통상적으로 작다. 다른 한편으로, 외부 메모리는 크기가 매우 클 수 있지만, 외부 메모리에 대한 액세스는 더 많은 에너지를 소비하고 액세스는 훨씬 더 느리다. 통상적으로 모든 필요한 정보는 계산들이 수행되기 전에 외부 메모리로부터 온-칩 메모리로 검색된다. 최악의 경우의 외부 메모리 액세스(또는 메모리 버스를 설계할 때 제공될 필요가 있는 대역폭)는, 프레임 또는 코딩 유닛을 디코딩하면서, 외부 메모리와 칩 간의 메모리 전송의 가능한 최대량을 나타낸다. 메모리(특히 외부 메모리)는 통상적으로 미리 정의된 블록 단위들로만 액세스될 수 있다. 다시 말해서, 일반적으로 단일 픽셀에 액세스하는 것이 가능하지 않고, 대신에 최소 단위(예를 들어, 8x8)가 액세스되어야 한다. 온-칩 메모리 크기는 또한 더 큰 온 칩 메모리가 비용을 증가시킴에 따라 중요한 설계 고려사항이다.
다시 말해서, 위에 언급된 장치는 집적 회로 내에 내장된 내부 메모리 및 상기 윈도우 내에 위치한 정수 샘플들을 외부 메모리로부터 내부 메모리로 페치하기 위한 메모리 액세스 유닛(인터페이스)을 추가로 포함하는 집적 회로일 수 있다.
위에서 이용된 용어 "예측 블록(prediction block)"은 예측되어야 하는 현재 블록을 지칭한다. 이는 이미지를 동등하게 크기가 정해지거나 상이하게 크기가 정해진(예를 들어, 코딩 트리 단위(coding tree unit), CTU를 더 작은 단위들로 계층적 분할하는 것에 의해) 블록들로 리파인하는 것에 의해 획득될 수 있는 이미지 내의 블록이다. 블록은 정사각형 또는 더 일반적으로 직사각형일 수 있는데, 그 이유는 이들이 현재의 인코더/디코더에서도 이용되는 전형적인 형상들이기 때문이다. 그러나, 본 개시는 블록의 임의의 크기/형상에 의해 제한되지 않는다.
처리 회로를 포함하는 장치는 인코더 또는 디코더 또는 심지어 그러한 인코더 또는 디코더를 포함하는 장치, 예를 들어, 기록 디바이스 및/또는 재생 디바이스일 수 있다.
분수 샘플 위치들은 도 1에 도시된 바와 같이 코딩된 참조 화상을 재구성하는 것에 의해 획득된 실제 화상 샘플 위치들 간의 위치들이다. 따라서, 분수 위치들은 가장 가까운 정수 위치들에 기초한 보간에 의해 획득되어야 한다. 보간 필터링의 상세 사항들은 V. Sze 등의 저술, High Efficiency Video Coding(HEVC), Springer, 2014의 섹션 "5.3 Fractional Sample Interpolation"에서 발견될 수 있다.
보간 필터링은 상이한 분수 펠(pel)(샘플) 위치들을 생성하기 위해 상이한 필터들을 통상적으로 적용한다. 일 예로서, 이하의 1D 분리가능 필터들이 H.265 비디오 압축 표준에서 1/4 펠 및 1/2 펠 위치들을 생성하기 위해 적용된다:
Figure 112021004416170-pct00002
상기 표로부터 알 수 있는 바와 같이, 보간 필터링은 필터 탭들(표에서 계수들의 수)에 대응하는 분수 펠 위치 주위의 수 개의 샘플들을 필요로 한다. 좌측/상단 및 우측/하단으로부터 1/2 펠 위치 4개의 정수 샘플을 생성하기 위해 위의 예시적인 필터들을 사용하는 것이 요구된다. 보간 필터의 길이는 1/2 펠 샘플 위치들(이는 8 탭임)보다 1/4 펠 샘플 위치들(이는 7 탭임)에 대해 상이하다는 점에 유의해야 한다. 샘플, 펠 및 픽셀이라는 용어들은, 주어진 시간 인스턴스에서 이미지 샘플을 나타내는(하나 이상의 색 성분으로) 본 출원에서 상호교환가능하게 사용된다. 샘플은 원칙적으로 강도 값이다.
본 발명의 일부 실시예들에서, 미리 정의된 탭-크기의 보간 필터는 상기 탐색 공간에서 템플릿 매칭을 위해 액세스 가능한 정수 샘플들에 의해 주어진 윈도우 내에서만 정수 샘플들을 평가한다. 윈도우는 특정 예측 블록의 계산들에서 실제로 사용되는 것들보다 훨씬 더 많은 샘플들을 포함할 수 있다. 이는 리파인먼트 탐색 동작이 고속 탐색 방법을 이용하여 통상적으로 구현되고(무차별 탐색 방법과는 대조적으로), 그에 따라 샘플들 중 일부가 탐색 동작의 점진적 진행에 의존하여 평가되지 않는다는 사실에 기인한다. 결과적으로, 리파인먼트 탐색 동작을 위한 계산들에 사용되는 샘플들뿐만 아니라 템플릿 매칭 반복들의 횟수는 각각의 예측 블록에 대해 변화될 수 있다.
도 8은 코딩 블록(예측 블록) 및 윈도우의 대응하는 샘플들을 예시한다. 도 8에 도시된 샘플들은 참조 화상 샘플들이고, 여기서의 코딩 블록은 실제로는 모션 벡터가 참조 화상에서 도출될 현재 프레임에서의 현재 블록에 크기 및 위치에 있어서 대응하는 블록이라는 점에 유의한다. 따라서, 사실상, 도 8의 코딩 블록은 사실상 예측자가 탐색되는 블록에 대해 동위치의 블록이다. 그러나, 단순성의 이유로, 이 블록은 이하에서 "코딩 블록"이라고 지칭된다.
이 예에서, 리파인되지 않은 모션 벡터 MV0은 정수 샘플 위치를 가리킨다. 모션 벡터 리파인먼트 탐색 입도는 1 정수 샘플이고, 이는 시작 포인트가 정수 샘플이기 때문에, 정수 샘플 포인트들만이 탐색된다는 것을 의미한다. 이 예에서, 탐색은 점진적으로 성장하는 탐색 공간에서 수행된다. 이는 탐색 공간이 이전에 테스트된 위치들에 대한 비용 함수의 관점에서 최상의 방향에 의존하여 새로운 탐색 위치들을 추가하는 것에 의해 진보된 각각의 반복에 있다는 것을 의미한다.
그러한 접근법은 도 9에서 단순화된 방식으로 예시된다. 도 9에서, 초기 모션 벡터가 중심 포인트(810)를 가리킨다. 탐색 공간은 초기 모션 벡터 위치 주위에서 점진적으로 구성된다. 제1 단계에서, 초기 모션 벡터가 가리키는 위치(810)에서 상단, 하단, 좌측 및 우측에 바로 인접한 4개의 위치뿐만 아니라 초기 모션 벡터가 가리키는 위치(810)도 테스트된다. 테스트된 5개의 포인트 중에서 최저 비용 함수를 야기하는 방향에 기초하여, 테스트될 추가 위치들이 탐색 공간에 추가된다. 이 예에서, 최저 비용 함수는 우측 포인트에서 보일 수 있고, 따라서 탐색 공간은 제2 단계에서 수평 우측 방향으로의 3개의 추가 포인트에 의해 확장되었다. 제2 단계에서, 최저 비용 함수는 우측 포인트에서 보일 수 있어(제1 단계의 최저 비용 포인트에 대해), 수평 우측 방향으로의 3개 포인트에 의해 탐색 공간의 추가 확장을 야기한다. 제3 단계에서, 최저 비용 함수가 단계 2의 최저 비용 포인트에 대해 우측 포인트에서 다시 관찰되고, 수평 우측 방향으로의 3개 더 많은 포인트에 의해 탐색 공간의 확장을 야기한다. 도 9의 예에 따르면, 상단, 상단 및 우측 방향들에서 그 순서로 3개 더 많은 단계가 수행된다. 이 예에서, 다이아몬드 형상 패턴(5개의 탐색 포인트로 이루어짐)이 각각의 반복에 대해 사용되고, 각각의 단계에서 누락된 탐색 포인트들을 완성하기 위해 탐색 공간이 확장된다.
탐색 공간 결정의 각각의 반복에서, 탐색 공간은 하나 이상의 정수 샘플 위치에 의해 성장할 수 있다. 이제, 도 8로 돌아가면, 탐색 반복들의 최대 횟수가 4인 예가 있다. 최대 4개의 반복 횟수가 가능하기 때문에, 탐색 공간의 점진적인 성장이 좌측으로 진행하는 경우, 탐색 동작을 수행하기 위해 좌측에 묘사된 모든 샘플들이 메모리로부터 검색될 필요가 있다. 유사하게, 상단에 대한 4개의 샘플 확장이 필요하다. 따라서, 리파인된 MV가 어느 방향으로든 이동할 수 있고 하드웨어 구현들이 요구될 수 있는 샘플들 모두가 리파인먼트 탐색의 적용 전에 외부 메모리로부터 페치되는 것을 요구할 수 있기 때문에 탐색 공간은 양쪽 방향(좌측-우측 및 상단-하단)으로 확장된다. 탐색 공간이 하단 또는 우측 방향으로 성장되는 경우, 코딩 블록(예측 블록)의 크기에 대응하는 템플릿에 의한 템플릿 매칭이 해당 샘플들 중 일부에 액세스할 필요가 있기 때문에 4개의 추가적인 샘플에 의한 확장이 필요하다. 더욱이, 하드웨어 구현들은 전형적으로 불규칙한 형상들을 페치할 수 없기 때문에(직사각형 액세스가 더 실현가능함) 코너 샘플들(예를 들어, 상단-우측)이 또한 메모리로부터 페치되어야 한다.
위에 설명된 반복 탐색 공간 성장은 단지 예시적인 것이고, 각각의 반복에서 탐색 공간을 확장하기 위한 포인트들의 수 및 규칙들은 상이할 수 있는데, 즉, 상이한 방식으로 특정될 수 있다는 점에 유의한다.
도 9는 또한 위에 설명된 외부 메모리 액세스 규칙들로 인해 발생할 수 있는 시나리오를 보여준다. 외부 메모리로부터 페치되는 샘플들의 수는 계산 단계에서 실제로 사용되는 샘플들보다 훨씬 더 많다. 여기서의 템플릿이 단지 하나의 큰 샘플인 것으로 가정하면(단순성의 이유로), 백색 원들은 외부 메모리로부터 검색되는 샘플들을 표현하고 음영 샘플들은 실제로 사용되는 것들이다. 그러나, 현재 블록이 처리되기 시작할 때, 실제로 필요한 샘플들이 아직 알려져 있지 않기 때문에 외부 메모리에의 액세스 횟수가 낮게 유지되는 경우에 그러한 중복성이 필요하다.
탐색 공간은 또한 상이한 방식으로, 예를 들어, 초기 모션 벡터가 가리키는 위치에 위치하는 안정된 형상으로서 정의될 수 있다는 점에 유의한다. 형상은 정사각형, 직사각형, 다이아몬드 등과 같은 임의의 형상일 수 있다.
도 10은 탐색 공간이 또한 분수 샘플들을 포함할 수 있는 예를 예시한다. 도 8 및 도 9에서, 모션 벡터 탐색이 정수 샘플들에 대해 수행되어, 액세스 윈도우에 포함된 실선의 더 큰 도트들에 의해 지시되는 위치들을 야기한다. 이제 1/2-펠(half-pel) 해상도(더 작은 실선 도트)를 갖는 샘플에 대해 탐색이 수행되는 경우, 왼쪽 측에 묘사된 분수 샘플을 생성하기 위해, 보간 필터가 대칭적이고 8개의 탭을 갖는다고 가정하면, 3개 더 많은 샘플들의 열들이 마찬가지로 메모리로부터 검색될 필요가 있다. 더욱이, 동일한 것이, 분수 픽셀이 윈도우의 좌측에 위치할 수 있도록 탐색 동작이 대칭적(좌측 및 우측으로 반복적으로 이동할 수 있음)이라는 사실로 인해 좌측에 적용되어야 한다(3개의 열의 픽셀들에 의한 확장).
그 결과 보간 필터링으로 인해, 메모리로부터 검색되는 데 필요한 샘플들의 수가 더 증가되고, 분수 보간으로 인해 추가된 위치들을 표현하는 점선 원들이 이제 또한 포함되는 파선으로 지시된 바와 같다. 유사하게, 수직 방향으로의 위치들 당 1/2가 또한 탐색되는 것을 허용하는 경우, 메모리로부터 액세스될 샘플들의 윈도우는 수직 방향으로도(도 10의 예에 도시되지 않음), 상단 및 하단 측들에서 확장될 필요가 있다.
메모리 액세스의 윈도우는 예측 블록(코딩 블록)에 대한 모션 벡터 탐색을 수행하기 위해 메모리로부터 검색될 필요가 있는 샘플들 모두를 둘러싸는 직사각형으로서 정의된다. 메모리 액세스의 윈도우는 요구되는 실제 샘플들뿐만 아니라 모션 벡터 탐색 동작 동안 액세스될 가능성을 갖는 나머지 샘플들 모두를 포함한다. 도 9의 예에서, 모션 벡터 탐색은 우측으로 이동하였다. 그러나, 그것은 사전에 알려지지 않은 좌측 방향으로 이동되었을 수도 있다. 따라서, 외부 메모리에 여러 번 액세스하지 않기 위해, 메모리 액세스의 윈도우(또는 액세스 윈도우)는 각각의 처리에 의해 액세스 가능한 모든 샘플들을 포함한다.
이를 달성하기 위해, 본 개시는, 예를 들어, 분수 샘플들을 보간하기 위해 이들이 필요한 경우, 메모리 액세스 윈도우 외부에 위치하는 샘플들의 패딩을 수행한다.
대체 샘플들(패딩 샘플들)의 제공은 분수 샘플들을 또한 포함하는 탐색 공간들에 대한 템플릿 매칭과 관련하여 더 유리할 수 있다. 다시 말해서, 예측 블록에 대한 탐색 공간은 미리 정의된 탭-크기의 필터에 의한 보간 필터링에 의해 획득된 값을 갖는 적어도 하나의 분수 샘플 위치를 포함할 수 있다. 보간 필터링은 윈도우로부터의 샘플 위치 값들 및 적어도 하나의 대체 값을 사용하여 적어도 하나의 분수 샘플 위치 값을 획득한다.
도 11은 전에 개략적으로 기술된 바와 같은 모션 벡터 도출/리파인먼트를 수행하는 알려된 방식의 기본 단계들을 예시한다. 제1 단계(단계 1)에서, 적어도 2개의 후보 모션 벡터의 "탐색 공간"(예시된 예에서는, 9개의 후보 모션 벡터가 존재함)이 획득된다. 옵션으로, 탐색 공간을 형성하는 후보 모션 벡터들 중 하나(본 출원에서 사용되는 용어에 따라 "앵커" 모션 벡터 또는 앵커 후보 모션 벡터라고도 불림)가 초기 모션 벡터로서 간주될 수 있다. 초기 또는 앵커 모션 벡터는, 예를 들어, 비트스트림에 포함되고 디코더에 명시적으로 또는 암시적으로 시그널링되는 모션 벡터일 수 있다.
다음 단계(단계 2)에서, 탐색 공간의 최상의 매칭 포인트(다시 말해서, 가장 적절한 후보 모션 벡터에 대응하는, 비용 함수를 최소화하는 탐색 공간의 포인트)를 찾기 위해 탐색 공간에 대해 매칭 프로세스가 적용된다. 예시된 예에서, 쌍방 매칭이 적용되지만, 템플릿 매칭과 같은 비용 함수를 결정하기 위한 다른 방식들이 동등하게 적용될 수 있다.
도면의 최종 단계(단계 3)에서, 단계 2에서의 처리에 따라 선택된 가장 적절한 후보 모션 벡터에 기초하여 보간에 의해 최종 예측이 획득된다.
도 11의 개념은 도 12의 흐름도에서 더 설명된다. 도 12에서, 후보 모션 벡터 쌍들의 경우에 대해, 즉, 쌍방 매칭에 대해 구체적으로 예시가 주어진다(예를 들어, 도 3을 참조하여 위에서 예시된 바와 같은, 템플릿 매칭이 양방향 예측에서 사용될 때에도 적용가능함).
제1 단계(1310)에서, 후보 모션 벡터 쌍들의 탐색 공간이 구성된다. 이 단계는 도 11의 "단계 1"에 대응한다.
다음 단계(1320)에서, 보간 필터링을 적용하는 것에 의해, 탐색 공간에서의 각각의 모션 벡터 쌍에 대해 예측이 생성된다. 다음 단계(1330)에서, 탐색 공간 내의 각각의 모션 벡터 쌍에 대해, 템플릿이 구성(획득) 된다. 위에 설명된 바와 같이, 이 단계는 옵션이고, 즉, 그것은 템플릿 매칭의 경우에만 필요하고 쌍방 매칭에 대해서는 필요하지 않다. 다음 단계(1340)에서, 탐색 공간의 각각의 모션 벡터 쌍에 대해, 쌍의 2개의 모션 벡터가 가리키는 예측 블록들(또는 템플릿 및 하나의 후보 모션 벡터의 예측 블록)을 비교하는 것에 의해 템플릿 매칭 비용(또는 쌍방 매칭 비용)이 계산된다. 다음 단계(1370)에서, 템플릿 또는 쌍방 비용 함수를 최소화하는 결과적인 모션 벡터 쌍(더 일반적으로: 최상의 매칭, 즉, 매칭 프로세스에 의해 가장 적절한 것으로 획득된 것)이 선택되고 예측 블록에 대한 모션 벡터 쌍으로서 출력된다. 위에 설명된 용어에 따르면, 이는 "리파인된 모션 벡터 쌍"이라고 불릴 수 있다. 전술한 단계들 1320, 1330, 1340 및 1370은 도 11의 "단계 2"에 대응한다.
다음 단계(1380)는 단계 1370에서 선택된 모션 벡터 쌍을 사용하여 보간에 의해 최종 예측을 생성한다. 이 단계는 도 11의 "단계 3"에 대응한다.
도 13은 본 발명의 예시적인 실시예들에 따른 모션 벡터 리파인먼트 및 최종 예측 생성에 대한 처리를 예시한다. 도 13의 접근법과 도 11에 예시된 종래의 접근법 간의 주요 차이는 본 발명의 도 13에 따른 접근법이 보간 필터링을 사용하는 예측자의 최종 생성 및 모션 벡터 리파인먼트 둘 다에 대해 샘플 패딩을 이용한다는 점에 있다.
모션 벡터 리파인먼트(옵션)를 위해 패딩된 샘플들을 사용하는 것은 추가적인 단계 2에서 예시되고, 이는 도 14 내지 18을 참조하여 아래에 더 상세히 설명될 것이다. 그에 의해, 분수 좌표들(즉, 탐색 공간 분수 좌표들)을 갖는 후보 모션 벡터들의 경우에도, 쌍방 또는 템플릿 매칭을 수행하기 위한 원하는 후보 블록들은, 정수 포인트들만을 포함하는 탐색 공간의 경우와 동일하게, 미리 정의된 제한된 액세스 윈도우를 사용하여 수행될 수 있다. 쌍방 또는 템플릿 매칭을 적용하는 것에 의한 비용 함수의 실제 도출은 도 11의 단계 2와 동일한 단계 3에서 수행된다.
또한, 샘플들의 패딩은 실제 예측자 생성을 수행하기 위해 최종 단계 4(에서도 또는 에서만) 사용된다. 이 단계는 일반적으로 도 11의 단계 3에 대응하지만 패딩의 개념을 사용하는 것에 의해 그와는 상이하다. 구체적으로, 주어진 예에서 2개의 최우측 열에 그리고 하단 행에 위치한 샘플 값들은 액세스되지 않지만 액세스된 다른 샘플 값들에 기초하여 패딩 샘플 값들로 패딩된다.
패딩될(이용가능하지 않음으로 인해 대체 값들로 대체될) 샘플들의 양은 최종적으로 선택된("리파인된") 모션 벡터와 초기("앵커") 모션 벡터 간의 차이에 의존한다. 예시된 예에서, 이 차이는 수직으로 2개의 픽셀이고 수평 방향으로 하나의 픽셀이다. 그에 따라, 단계 5의 예시에서 2개의 직사각형의 교차점에서 픽셀을 수평으로 및 수직으로 보간하기 위해, 픽셀들의 하단 행들뿐만 아니라 픽셀들의 2개의 오른쪽 열의 샘플 값들은 이용가능하지 않고, 위에 설명되고 아래에 더 상세히 논의되는 바와 같이 미리 결정된 규칙들에 따라 대체 값들에 의해 대체(패딩)되어야 한다.
유리하게는, 패딩이 단계 2에서도 탐색을 위해 사용되는 경우에, 동일한 액세스 윈도우가 단계 2 및 단계 4에서의 보간 필터링 동작들 둘 다를 위해 사용된다.
유리하게는, 도 13의 단계 2 및 단계 4에서 사용되는 메모리 액세스 윈도우들은 탐색 공간 내의 특정 후보 모션 벡터에 기초하여 결정된다. 특정 모션 벡터(앵커 모션 벡터라고 불림)는, 예를 들어, 비트스트림에 포함되고 디코더에 명시적으로 또는 암시적으로 시그널링되는 모션 벡터일 수 있다. 앵커 모션 벡터의 선택 결정은 인코더 및 디코더 둘 다에 알려진 미리 정의된 규칙에 따라 수행된다.
도 14는 모션 벡터 리파인먼트의 목적을 위한 메모리 액세스의 윈도우를 보여준다. 윈도우는 초기 모션 벡터가 가리키는 위치인 중심에서 포인트(1010) 주위에 걸쳐 있다. 더욱이, 분수 위치(1020)는 또한 탐색 공간에 속한다. 그러나, 분수 위치(1020)는 분수 위치의 좌측의 3개의 정수 샘플 위치 및 분수 위치의 우측의 3개의 정수 샘플 위치를 사용하는 6 탭 필터에 의해 보간될 것이다. 분수 위치(1020)가 정수 샘플 위치들을 갖는 라인 상에 위치하기 때문에, 보간을 위해 1차원 필터, 예를 들어, 도 10을 참조하여 설명된 상기 예에 도시된 바와 같은 것이 적용될 수 있다. 도 14에서 알 수 있는 바와 같이, 분수 샘플(1020)을 보간하기 위해, 윈도우의 외부에 위치하는 2개의 추가 샘플 위치(1030)가 필요할 것이다. 본 개시에 따라, 외부 메모리로부터의 이들 샘플의 추가적인 로딩을 회피하기 위해, 윈도우 외부 위치들(1030)의 값들은 윈도우 내의 샘플들에 기초하여 획득되는 값들로 대체된다.
도 14는 2개의 정수 샘플 위치들 간의 중간에 있고 따라서 1/2-픽셀(1/2-펠) 위치에 있는 분수 샘플 위치(1020)를 예시한다. 그러나, 본 개시는 1/4 또는 1/8 위치들과 같은 다른 분수 위치들에 동등하게 적용될 수 있다. 더욱이, 샘플 위치(1020)는 수평 1D 필터링이 그의 보간을 위해 사용될 수 있도록 정수 샘플 위치들의 행에 대응하는 수평 라인 상에 위치한다. 그러나, 본 개시는 그러한 분수 위치들로 제한되지 않는다. 오히려, 분수 위치들은 정수 샘플 위치들의 열에 대응하는 수직선 상에 위치할 수 있고, 따라서 수직 1D 필터링이 그의 보간을 위해 사용될 수 있다. 더욱이, 분수 위치들은 정수 샘플들과 동일한 픽셀 라인 상에 전혀 위치할 필요가 없다. 그러한 경우에, 그러한 샘플들을 보간하기 위해 2차원 필터링이 사용될 수 있다; 그러한 2D 필터링은 수직 및 수평 1D 필터링과 분리가능할 수 있다.
다양한 분수 위치들의 예들이 도 16에 도시되어 있다. 특히, 분수 위치 1은 그것을 보간하는 데 수평 및 수직 필터링 둘 다가 적용될 수 있는 위치인데, 그 이유는 그것이 정수 샘플 위치들의 행들 및 열들과 일렬로 위치하지 않기 때문이다. 위치 2는 그것을 보간하는 데 수평 필터링만이 사용되는 위치인 반면, 위치 6은 그것을 보간하는 데 수직 필터링만이 사용되는 위치이다. 도 16에 도시된 모든 분수 위치들은 윈도우 내의 정수 위치들만을 이용하여 획득될 수 있다.
메모리 액세스를 위한 윈도우는 다양한 방식들로 정의될 수 있다. 도 18은 메모리 액세스 윈도우가 (초기 모션 벡터에 의해 주어지는 코딩 블록의 위치에 대응하는) 코딩 블록의 좌측/우측 또는 위/아래에서 확장들 EXT로서 정의되는 예를 예시한다. 확장 양들은 코딩 또는 예측 블록의 크기 및 형상에 의존할 수 있다. 도 18에서, 확장은 각각의 방향(상단, 하단, 좌측, 우측)으로 길이가 4 샘플이다. 그러나, EXT는 또한 (수직 및 수평 방향으로 상이한 크기를 가질 수 있는) 블록 크기 및/또는 탐색 공간 형식 및 크기에 의존하여, 상이한 방향들에 대해 상이한 값들을 취할 수 있다는 점에 유의한다.
예를 들어, 예에 따르면, 윈도우는 예측 블록 초기 모션 벡터에 대해 N개의 정수 샘플 열 및 M개의 정수 샘플 행으로서 정의되고, N 및 M은 0이 아닌 정수 값들이다. 도 18에서, N 및 M은 지시되지만 동일한 크기를 갖는다. 위에 언급된 바와 같이, N과 M은 상이한 크기를 가질 수 있다. N 및 M은 정수들이고, 그것들 중 적어도 하나는 0이 아니다. 파라미터들 N과 M 및 템플릿 형식 및 크기를 취하면, 액세스 윈도우의 크기가 결정될 수 있다. 특히, 템플릿이 T1개의 행 및 T2개의 열을 갖는 경우, 메모리 액세스 윈도우의 크기는 (N+T1+N)개의 행 및 (M+T2+M)개의 열로서 계산될 수 있다. 이는 탐색이 좌측 또는 우측으로 N개의 샘플을 갈 수 있어 수평으로 2N개의 샘플이라는 결과를 야기하고 위 또는 아래로 M개의 샘플을 갈 수 있어 수직으로 2M개의 샘플이라는 결과를 야기하기 때문이다. 또한, 템플릿은 2N x 2M 샘플 위치들 중 임의의 것 상의 T1 x T2 샘플들과 매칭될 수 있다.
다른 한편으로, 도 8 및 9를 참조하여 설명된 것과 같은 탐색 공간 구성들의 특정 접근법들에 대해, 메모리 액세스 윈도우는 최대 개수의 리파인먼트 반복들(탐색 공간 구성 반복들) 및 반복 스텝 크기(각각의 반복에서 달성가능한 최대 샘플 거리의 관점에서)의 관점에서 정의될 수 있고, 이는 나중에 좌측, 우측, 위 및 아래로의 변위의 최대량으로 변환될 수 있다. 따라서 메모리 액세스 윈도우는 각각의 방향으로의 최대 변위로서 정의된다. 예를 들어, 각각의 반복이 최대 하나의 정수 샘플 위치에서 탐색 공간을 전진시킬 수 있는 4회의 반복은 EXT=4인 결과를 야기한다.
다시 말해서, 이 예에 따르면, 처리 회로는 가장 최근의 반복에서 탐색 공간의 더 최상의 매칭 위치들 중 하나(또는 그 이상)에 의해 주어진 방향으로 반복적으로 확장되는 탐색 공간에서 상기 템플릿에 의한 템플릿 매칭에 의해 초기 모션 벡터의 리파인먼트를 결정하도록 구성되고, 윈도우는 반복들의 미리 정의된 최대 수에 의해 정의된다. 이는 쌍방 매칭의 경우에도 필요한 부분만 약간 수정하여 동일하게 적용된다.
일반적으로, 본 개시는 탐색 공간의 결정의 임의의 특정 형상 또는 형식 또는 종류로 제한되지 않는다는 점에 유의한다. 다른 예에서, 탐색 공간은 윈도우의 직사각형 서브-윈도우이거나 윈도우와 동등할 수 있다. 메모리 액세스 윈도우의 정의는 어쩌면 대응하는 시그널링 파라미터를 비트스트림(예를 들어, 파라미터 EXT 또는 파라미터들 N 및 M)에 포함시키기 위해 관련될 수 있다. 그러나, 메모리 액세스 윈도우 크기는 또한 표준에서 정의되거나 또는 다른 코딩 파라미터들(템플릿 크기, 예측 블록 크기, 이미지 해상도 등과 같은 것)에 기초하여 도출가능할 수 있다. 도 14로 돌아가서, 일 실시예에 따르면, 리파인되지 않은 모션 벡터(1010)가 가리키는 위치 주위에 리파인먼트를 위한 메모리 액세스의 윈도우가 정의된다. 윈도우는 모션 벡터 리파인먼트 탐색을 수행하기 위해 메모리로부터 액세스될 필요가 있는 픽셀 샘플들의 최대 수를 식별한다. 여기서 탐색 공간은 액세스 윈도우에 대응한다. 다시 말해서, 단순성을 위해, 이 예에서는 템플릿 크기가 1x1로 간주되지만, 이는 전형적으로 더 클 수 있고, 실제로는 더 클 것이다. 메모리 액세스의 윈도우는 통상적으로 코딩 블록 주위의 확장으로서 정의된다. 이 예에서, 그것은 좌측/우측으로부터의 4개의 샘플 및 상단/하단으로부터의 4개의 샘플이다. 템플릿 또는 쌍방 매칭 동안 현재 테스트되는 탐색 공간 위치가 메모리 액세스의 윈도우의 외부로부터의 샘플들을 필요로 한다면, 코딩 블록의 재구성에 필요한 샘플들이 패딩에 의해 획득된다. 이는 도 14에서 분수 위치(1020)에 대한 경우이다. 템플릿 매칭이 이 위치에 대해 또는 이 위치를 사용하여 수행되어야 하는 경우, 그것은 윈도우 외부에 위치한 추가적인 패딩된 위치들(1030)을 사용하여 보간되어야 한다.
패딩 샘플들은, 예를 들어, 다음의 방법들 중 하나를 이용하여 생성될 수 있다:
- 가장 가까운 샘플 복제.
- 보간 필터링의 축을 따른 미러링
특히, 가장 가까운 샘플 복제는 대체 값이 액세스된 정수 샘플 위치들 중 가장 가까운 것에 대한 값과 동등한 것으로 결정되는 접근법을 지칭한다. 예를 들어, 도 14에서, 2개의 누락된 위치 값(1030)은 보간될 분수 위치(1020)의 우측에 바로 인접한 샘플의 값으로 대체될 것이다. 그러나, 이러한 접근법은 단지 예일 뿐이고, 본 개시는 이웃의 단순한 복제로 제한되지 않는다는 점에 유의한다. 대안적으로, 수 개의 가장 가까운 샘플 위치들이 누락된 샘플들(1030)을 보간하기 위해 사용될 수 있다. 예를 들어, 누락된 샘플에 가장 가까운 경계 상의 3개의 샘플이, 예를 들어, 누락된 샘플로부터의 3개의 샘플의 거리에 반비례하는 가중치 세트를 이용하여 가중 평균하는 것에 의해 누락된 샘플을 보간하기 위해 사용될 수 있다.
미러링은 그에 따라 보간 필터의 축에 대해 대응하는 평가된 정수 샘플 위치의 값을 미러링하는 것에 의해 대체 값이 결정되는 접근법을 지칭한다. 예를 들어 도 14에서, 2개의 누락된 샘플(1030)은 분수 위치(1020)의 좌측에 있는 샘플들의 값들로 대체될 것이다. 특히, 분수 위치(1020)의 우측의 제2 샘플은 분수 위치(1020)의 좌측의 두 번째 위치의 값으로 대체되는 반면, 분수 위치(1020)의 우측의 제3 샘플은 분수 위치(1020)의 좌측의 세 번째 위치의 값으로 대체된다.
누락된 샘플들이 미러링된 샘플들 및 가장 가까운 샘플의 함수인 위에 언급된 두 가지 접근법들의 조합이 또한 적용될 수 있다는 점에 유의한다.
실시예에 따르면, 윈도우는 상기 탐색 공간 내의 정수 샘플 위치들에 대한 템플릿 또는 쌍방 매칭에 대해 액세스 가능한 모든 정수 샘플 위치들에 의해 형성된다. 이는 예를 들어 윈도우 외부의 추가적인 샘플들이 비-정수 분수 샘플 위치들에서의 템플릿 매칭에만 필요한 도 14의 예에 대한 경우이다. 다시 말해서, 도 14에서, 위의 예에서, 탐색될 1/2 펠 좌표는 메모리 액세스 윈도우 외부의 샘플을 필요로 한다. 그 결과 이용가능하지 않은 샘플들을 생성하기 위해 패딩 동작이 적용된다. 그러나, 본 발명은 그것으로 제한되지 않는다.
도 15는 윈도우가 상기 탐색 공간 내의 정수 샘플 위치들에 대한 템플릿 매칭을 위해 액세스 가능한 모든 정수 샘플 위치들을 포함하지 않는 대안적인 접근법을 보여준다. 이전 예들에서, 코딩 블록 크기는 단순성을 위해 1x1로 묘사되었다. 도 15에서 크기는 4x4 정수 샘플이다. 이 예에서, 탐색 좌표(템플릿 또는 쌍방 매칭이 계산될 위치)가 정수 샘플을 가리키는 경우, 블록 내의 샘플들 중 일부가 메모리 액세스 윈도우의 외부에 있는 경우에 패딩이 여전히 적용될 수 있다. 이 접근법은 윈도우 크기를 한층 더 제한할 수 있게 한다.
상세하게는: 도 15는 액세스 가능한 샘플들의 일부를 포함하는 윈도우(1120)를 보여준다. 초기 모션 벡터는 코딩 블록의 좌측 상단 모서리를 표시하는 위치를 가리킨다. 탐색 공간은 여기에서 윈도우와 동등한 것으로 간주될 수 있다. 그러나, 템플릿이 1x1 정수 샘플보다 더 크다면, 반드시 탐색 공간에 포함된 것들로부터 떨어진 샘플들이 템플릿 매칭을 수행하는 데 필요할 것이기 때문에 그것은 일반적으로 윈도우보다 더 작을 수 있고 이것도 이치에 맞을 수 있다는 점에 유의한다. 그럼에도 불구하고, 탐색 공간이 윈도우의 크기를 정의하는 경우, 대안적으로, 누락된 샘플들이 패딩될 수 있다. 도 15에서 윈도우의 제2 행 및 제10 열의 예시적인 탐색 위치가 도시된다. 4x4 정수 샘플 큰 템플릿에 의한 템플릿 매칭은 윈도우 외부의 픽셀들도 필요로 한다. 따라서 이들 샘플은 윈도우 내의 샘플들에 기초하여 결정 또는 계산된 값들로 패딩, 즉, 대체된다. 가장 가까운 이웃 또는 미러링과 같은 위에 언급된 패딩 접근법들이 적용될 수 있다.
윈도우는
- 탐색 공간, 또는
- 초기 모션 벡터 위치 상에 위치한 예측 블록의 크기를 갖는 블록, 또는
- 초기 모션 벡터 위치
에 대한 그것의 수직 및/또는 수평 크기에 의해 정의될 수 있다.
윈도우 정의의 예가 도 18에 도시되고 위에 설명되었다. 이는 초기 모션 벡터 위치 상에 위치하는 예측 블록의 크기에 기초하여 윈도우 크기를 결정하는 것에 대응한다. 대안적으로, 윈도우 크기는 초기 벡터 위치에 대해 x 및 y 방향들 중 하나 또는 둘 다의 크기에 의해 정의될 수 있다. 예를 들어, 윈도우는 초기 모션 벡터가 가리키는 위치 주위에 위치하고 A개의 정수 샘플을 위쪽, 아래쪽, 좌측, 우측 방향 각각으로 확장하는 것으로 정의될 수 있다. 대안적으로, 그것은 A 정수 샘플들을 각각 좌측 및 우측으로 그리고 B 정수 샘플들을 각각 위 및 아래로 확장할 수 있다. 추가 정의들이 가능하다.
상기 예들이 1/2-펠 보간을 위해 제공되었다는 것에 유의한다. 그러나, 본 개시는 그것으로 제한되지 않는다. 일반적으로, 1/4, 1/8 등과 같은 임의의 분수 위치가 사용될 수 있는데, 즉, 이는 대응하는 보간 필터를 이용하여 보간될 수 있다.
윈도우 크기의 동일한 정의가 또한 예측자 생성을 위한 보간 필터링을 위한 패딩의 경우에도 적용가능하다. 특히, 수직 및 수평 크기(즉, x 및 y 방향으로의)는 예측자를 결정하기 위해 사용되는 보간 필터의 수직 및 수평 길이에 의해 결정된다.
도 17은 도 13에 예시된 처리를 더 상세히 보여주는 흐름도이다. 도 17의 흐름도는 단계들 1320 및 1380이 단계들 1720 및 1780으로 각각 대체된다는 점에서 종래의 프로세스를 보여주는 도 12의 흐름도와 상이하다. 이들 단계는, 쌍방 또는 템플릿 매칭을 수행하기 위해 참조 화상(들)에서 후보 예측 블록들을 생성하기 위한 보간 필터링뿐만 아니라 최종 예측을 생성하기 위한 보간 필터링 둘 다에 대해, 대체 샘플들을 사용하는 패딩이 적용된다는 점에서, 도 12의 각각의 단계들과 상이하다.
도 7을 참조하여 설명된 처리 회로는 도 1 및 도 2에 도시된 바와 같은 인코더 및/또는 디코더에서 이용될 수 있다.
특히, 인코딩 장치는 예측 블록들로 분할된 비디오 이미지들을 비트스트림으로 인코딩하기 위해 제공될 수 있고, 인코딩 장치는: 처리 회로를 포함하는 위에 설명된 바와 같은 예측 블록에 대한 모션 벡터의 결정을 위한 장치; 및 예측 블록과 결정된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자 간의 차이를 인코딩하고, 인코딩된 차이 및 초기 모션 벡터를 포함하는 비트스트림을 생성하기 위한 인코딩 회로를 포함한다.
도 1을 참조하여 위에 설명된 인코더의 추가 유닛들 및 기능들도 처리 회로에서 제공 또는 구현될 수 있다.
대응하여, 예측 블록들로 분할된 비트스트림 비디오 이미지들로부터 디코딩하기 위한 디코딩 장치가 제공될 수 있고, 디코딩 장치는: 비트스트림으로부터 초기 모션 벡터 및 예측 블록과 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자 간의 인코딩된 차이를 파싱하기 위한 파싱 유닛; 처리 회로를 포함하는 위에 설명된 바와 같은 예측 블록에 대한 리파인된 모션 벡터의 결정을 위한 장치; 및 파싱된 차이와 리파인된 모션 벡터에 기초하여 위치에서의 예측 블록에 의해 주어진 예측자의 합으로서 예측 블록을 재구성하기 위한 디코딩 회로를 포함한다. 예를 들어, 예측자는 리파인된 모션 벡터의 위치에 의해 직접 주어질 수 있다. 그러나, 모션 벡터를 추가로 변화시킬 수 있는 현재 예측 블록의 모션 벡터를 획득하는 추가적인 처리 단계들이 있을 수 있다(필터링, 클리핑, 추가 리파인먼트 등과 같은 것).
도 2를 참조하여 위에 설명된 디코더의 추가 유닛들 및 기능들도 처리 회로에서 제공 또는 구현될 수 있다.
더욱이, 본 발명의 실시예들은 모션 벡터 리파인먼트를 수행하기 위한 처리 회로를 갖는 장치의 관점에서 설명되었다. 그러나, 본 개시는 그것으로만 제한되지 않고, 또한 위에 설명된 처리 회로가 구성되는 수행에 대한 것들에 대응하는 처리 단계들을 포함하는 대응하는 방법들을 제공한다.
탭들은 필터 계수들에 대응한다. 탭-크기는 필터 순서에 대응한다. 여기서, 필터는 선형 필터인 것으로 가정된다. 일부 예들에서, 필터는 대칭적일 수 있고, 즉, 대칭적 계수들을 가질 수 있다. 그러나, 본 개시는 대칭 필터들 또는 선형 필터들 또는 임의의 종류의 필터들로만 제한되지 않는다. 일반적으로, 분수 위치들은 인접한 샘플들에 기초하여 임의의 방식으로 획득될 수 있다.
실시예에 따른 방법은 도 19에 예시된 다음의 단계들로 예측 블록에 대한 모션 벡터를 결정한다. 단계 1410에서, 초기 모션 벡터 및 예측 블록에 대한 템플릿이 획득되고, 이어서 탐색 공간에서의 상기 템플릿에 의한 템플릿 매칭에 의해 초기 모션 벡터의 리파인먼트를 결정한다. 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치에 위치한다. 메모리 액세스 윈도우가 1420에서 결정된다. 이는 명시적으로 수행될 필요가 없다는 점에 유의한다. 메모리 액세스 윈도우는 미리 정의되고 알려질 수 있다. 따라서 이 단계는 예시를 위해 메모리 액세스 윈도우 크기의 지식이 알려져 있음을 지시하기 위한 것이다. 그 후 단계 1430 내지 1490에서 템플릿 매칭이 수행된다.
템플릿 또는 쌍방 매칭은 미리 결정된 윈도우 내의 정수 샘플 위치들에 액세스하고 - 상기 미리 결정된 윈도우는 상기 탐색 공간 및 상기 템플릿 또는 쌍방 매칭을 위해 액세스 가능한 추가 정수 샘플 위치들을 포함함 -; 상기 윈도우 외부에 위치한 적어도 하나의 정수 샘플 위치를 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체한다. 액세스된 정수 샘플 위치 값들뿐만 아니라 대체 값들은 템플릿 매칭을 수행하기 위해 사용된다. 이는 도 19에 도시된다: 템플릿 또는 쌍방 매칭은 탐색 공간 내의 모든 위치들에 대해 수행된다. 단계 1430에서, 현재 위치 상의 템플릿 또는 쌍방 매칭이 메모리 액세스 윈도우 외부에 있는 샘플 또는 샘플들을 필요로 하는지가 테스트된다. 긍정이면(단계 1430에서 예), 단계 1440에서 샘플 또는 윈도우 외부의 샘플들에 대해 위에 설명된 바와 같은 패딩이 수행된다. 이 단계 후에, 패딩된 샘플들을 사용하여 현재 위치에서 단계 1450에서 템플릿 또는 쌍방 매칭(즉, 탐색)이 수행된다. 대안적으로, 필요한 샘플들 중 어느 것도 윈도우 외부에 있지 않으면(단계 1430에서 아니오), 단계 1450에서 이용가능한 샘플들을 사용하여 현재 위치에서 템플릿 또는 쌍방 매칭(즉, 탐색)이 수행된다. 현재 위치가 테스트될 탐색 공간 내의 마지막 위치이면(단계 1460에서 예), 템플릿 매칭이 종료된다. 그렇지 않으면(단계 1460에서 아니오), 단계 1470에서 다음 위치가 획득되고, 단계 1430에서 새로운 위치에 대해 위에 설명된 바와 같이 템플릿 매칭이 계속된다.
템플릿 매칭의 종료 후에, 최상의 매칭 위치가 식별된다(예를 들어, 최저 비용을 갖는 저장된 위치로서).
도 20은 본 발명의 실시예들의 프레임워크 내에서 적용가능한 모션 벡터 리파인먼트 및 예측자 생성을 위한 대안적인 예시적인 접근법을 예시한다. 이 접근법과 도 13의 접근법 간의 차이는, 도 20의 경우에 패딩에 의한 보간 필터링이 리파인된 모션 벡터(쌍)를 사용하여 예측자의 최종 생성에 대해서만 적용된다는 점에 있다. 이는 도 13의 단계 4에 대응하는 도 20의 단계 5이다.
다른 한편으로, 패딩에 의한 보간 필터링은 모션 벡터 리파인먼트(탐색), 즉, 도 13의 단계 2에서 적용되지 않는다. 대신에, 도 20의 접근법은 가장 가까운 정수 포인트에 대한 초기 모션 벡터(또는 초기 탐색 공간을 형성하는 복수의 초기 후보 모션 벡터들)의 경우에 좌표를 가장 가까운 정수 포인트로 라운딩하기 위해 라운딩 동작을 수행한다(도 20의 단계 2). 이 라운딩 동작은 라운딩 방향을 기술하는 MV_round_diff로서 지시된 미리 결정된 벡터를 갖는 시프트와 동등하다. 라운딩 동작의 수행은 정수 좌표들을 갖는 포인트들만을 갖는 수정된 탐색 공간을 획득하도록 탐색 공간이 수정되는 것을 보장한다. 결과적으로, 쌍방(또는 템플릿) 매칭에 의해 최상의 매칭 정수 포인트를 획득하기 위한 다음의 단계 3은 템플릿/쌍방 매칭을 위한 예측들을 생성하기 위해 보간 필터링이 필요하지 않도록 정수 좌표들에 대해 수행될 수 있다.
또한, 도 20은 단계 4를 포함한다. 이 단계는 옵션이다. 단계 4에서, 수정된 탐색 공간 내의 최상의 매칭 정수 포인트가 단계 3에서 획득된 후에, (초기) 탐색 공간에서 최종 리파인된 모션 벡터를 획득하기 위해 라운딩의 적용이 복귀된다. 다시 말해서, 단계 2의 것과 반대의 시프트 벡터가 단계 3으로부터 생기는 최상의 매칭(리파인된) 모션 벡터에 적용된다. 옵션의 단계 4가 포함되면, 단계 4로부터 생기는 리파인된 모션 벡터에 기초하여 최종 예측이 획득된다. 대안적으로, 단계 3은 스킵되고 단계 3으로부터 생기는 모션 벡터에 직접 단계 5가 적용된다. 또한 대안적으로, 미리 결정된 조건에 기초하여, 단계 4를 포함시킬지 또는 스킵할지를 결정하는 것이 가능하다.
도 20의 접근법에 대응하는 흐름도가 도 21에 도시되어 있다. 다시, 흐름도는 도 20에서 예시 목적의 단순화를 위해 사용되는 단일 모션 벡터들보다는 모션 벡터 쌍의 경우에 대해 이루어졌다.
초기 단계 1310은 도 20에서와 동일하다. 후속 단계 2115는 도 20의 단계 2에서의 라운딩 동작에 대응한다. 본 명세서에 도시된 처리는 일반화인데, 그 이유는 초기 탐색 공간의 수정은 라운딩 동작으로 제한되지 않지만, 여기에서, 더 일반적으로는, 초기 탐색 공간 내의 각각의 모션 벡터 쌍에 대해, 대표 모션 벡터 쌍이 생성된다고 말할 수 있기 때문이다. 도 20의 라운딩 동작은 대표들에 대한 초기 탐색 공간 모션 벡터들의 이러한 매핑의 특수한 경우이다.
다음의 단계들, 2130(템플릿 매칭을 위해 옵션임) 및 2140은 도 17에서와 동일한데, 유일한 차이는 각각의 동작들이 수정된 탐색 공간에서 대표 모션 벡터들로 수행된다는 점이다. 단계들 2150 및 2160은 도 20의 단계 4에 대응한다. 단계 2150은 템플릿 매칭 비용(또는 쌍방 매칭 비용)을 최소화하는 대표 모션 벡터 쌍을 Pair_best_rep로서 설정하는 것을 기술한다.
단계 2160(옵션)은 도 20의 단계 4에 예시된 라운딩 동작의 반전에 대응한다. 다음 단계(1370)에서는, 원래의 탐색 공간의 모션 벡터(쌍)가 예측 블록에 대한 모션 벡터로서 출력된다. 단계들 1370 및 1780은 도 17에서와 동일하다.
더욱이, 예측 블록들로 분할된 비디오 이미지들을 비트스트림으로 인코딩하기 위한 인코딩 방법이 제공되고, 이 인코딩 방법은 위에 설명된 방법들 중 임의의 방법에 따라 예측 블록에 대한 모션 벡터를 결정하는 단계; 뿐만 아니라 예측 블록과 결정된 모션 벡터에 기초한 위치에서의 예측 블록에 의해 주어진 예측자 간의 차이를 인코딩하고 인코딩된 차이 및 초기 모션 벡터를 포함하는 비트스트림을 생성하는 단계를 포함한다.
인코딩 방법은 도 1의 블록들의 기능들을 참조하여 설명된 단계들을 추가로 포함할 수 있다.
또한 추가로, 비트스트림으로부터 예측 블록들로 분할된 비디오 이미지들을 디코딩하기 위한 디코딩 방법이 제공되고, 이 디코딩 방법은: 비트스트림으로부터 초기 모션 벡터 및 예측 블록과 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자 간의 인코딩된 차이를 파싱하는 단계; 위에 언급된 방법들 중 임의의 방법에 따라 예측 블록에 대한 리파인된 모션 벡터를 결정하는 단계; 및 예측 블록을, 파싱된 차이와 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자의 합으로서 재구성하는 단계를 포함한다.
이 디코딩 방법은 도 2의 블록들의 기능들을 참조하여 설명된 단계들을 추가로 포함할 수 있다.
그러나, 도 1 및 도 2가 본 개시를 제한해서는 안 된다는 점에 유의해야 한다. 그것들은 단지 기존의 인코더 및/또는 디코더 내에서의 본 발명의 구현의 비-제한적인 예를 제공할 뿐이다.
위에 설명된 바와 같은 샘플 패딩에 의한 모션 벡터 결정은 비디오 신호(모션 화상)의 인코딩 및/또는 디코딩의 일부로서 구현될 수 있다. 그러나, 모션 벡터 결정은 인코딩/디코딩을 위해 이용되는 것에 제한되는 것이 아니라 움직임 검출, 움직임 분석 등과 같은 이미지 처리에서의 다른 목적을 위해 또한 사용될 수 있다.
모션 벡터 결정은 장치로서 구현될 수 있다. 그러한 장치는 소프트웨어와 하드웨어의 조합일 수 있다. 예를 들어, 모션 벡터 결정은 범용 프로세서, 또는 디지털 신호 프로세서(DSP), 또는 필드 프로그래머블 게이트 어레이(FPGA) 등과 같은 칩에 의해 수행될 수 있다. 그러나, 본 발명은 프로그램 가능 하드웨어 상에서의 구현에만 제한되지는 않는다. 그것은 주문형 집적 회로(ASIC) 상에서 또는 위에 언급된 하드웨어 컴포넌트들의 조합에 의해 구현될 수 있다.
모션 벡터 결정은 또한 컴퓨터 판독가능 매체 상에 저장된 프로그램 명령어들에 의해 구현될 수 있다. 프로그램은, 실행될 때, 컴퓨터로 하여금 위에 설명된 방법들의 단계들을 수행하도록 야기한다. 컴퓨터 판독가능 매체는 DVD, CD, USB(플래시) 드라이브, 하드 디스크, 네트워크를 통해 이용가능한 서버 스토리지 등과 같이 프로그램이 저장되는 임의의 매체일 수 있다.
인코더 및/또는 디코더는 TV 세트, 셋톱 박스, PC, 태블릿, 스마트폰 등, 즉, 임의의 레코딩, 코딩, 트랜스코딩, 디코딩 또는 재생 디바이스를 포함하는 다양한 디바이스들에서 구현될 수 있다. 그것은 방법 단계들을 구현하는 소프트웨어 또는 앱일 수 있고, 위에 언급된 것들과 같은 전자 디바이스에 포함된 프로세서 상에서 저장/실행될 수 있다.
요약하면, 본 개시는 템플릿 또는 쌍방 매칭을 사용한 모션 벡터 결정 및 모션 벡터에 기초한 예측자 생성에 관한 것이다. 템플릿 또는 쌍방 매칭 및/또는 예측자 생성은 보간 필터링을 사용한다. 보간 필터링 동작은 윈도우 내의 정수 샘플 위치들에 액세스하고 - 상기 윈도우는 상기 탐색 공간 및 템플릿 매칭을 위해 액세스 가능한 추가 정수 샘플 위치들을 포함함 -, 상기 윈도우 외부에 위치하는 적어도 하나의 정수 샘플 위치를 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 패딩된 샘플 값으로 패딩하고, 상기 액세스된 정수 샘플 위치 값들뿐만 아니라 상기 패딩된 샘플 값들을 사용하여 상기 템플릿 또는 쌍방 매칭 및/또는 예측자 생성을 수행한다.
본 발명의 추가 실시예들이 이하에서 제공된다. 이하의 섹션에서 사용되는 번호는 이전 섹션들에서 사용되는 번호를 반드시 따를 필요는 없다는 점에 유의해야 한다.
실시예 1. 비디오 이미지의 예측 블록을 비트스트림(171)으로 인코딩하기 위한 인코딩 장치로서, 상기 인코딩 장치는:
처리 회로(600)를 포함하고, 상기 처리 회로는:
적어도 하나의 초기 모션 벡터를 획득하는 것; 및
리파인된 모션 벡터를 획득하기 위해, 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하는 것 - 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치(810) 상에 위치함 -
에 의해 예측 블록(165)에 대한 모션 벡터를 결정하고;
상기 예측 블록과 상기 결정된 모션 벡터에 기초한 위치에서의 예측 블록에 의해 주어진 예측자 간의 차이(105)를 인코딩하고 상기 인코딩된 차이 및 상기 초기 모션 벡터를 포함하는 비트스트림(171)을 생성하고;
보간 필터에 의한 보간 필터링을 사용하여 상기 모션 벡터에 따라 상기 예측자를 결정하도록 구성되고, 상기 보간 필터링은
- 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고,
- 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고,
- 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간 필터링을 수행한다.
실시예 2. 비트스트림(171)으로부터 예측 블록들로 분할된 비디오 이미지들을 디코딩하기 위한 디코딩 장치로서, 상기 디코딩 장치는 처리 회로를 포함하고, 상기 처리 회로는:
상기 비트스트림으로부터 초기 모션 벡터 및 예측 블록과 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자 간의 인코딩된 차이를 파싱하고;
적어도 하나의 초기 모션 벡터를 획득하는 것; 및
리파인된 모션 벡터를 획득하기 위해, 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하는 것 - 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치(810) 상에 위치함 -
에 의해 예측 블록에 대한 모션 벡터를 결정하고;
모션 벡터를 결정하기 위해 상기 처리 회로(600)에 의해 결정된 상기 리파인된 모션 벡터에 의해 특정된 위치에서의 상기 예측 블록에 의해 주어진 예측자와 상기 파싱된 차이의 합으로서 상기 예측 블록을 재구성하도록 구성되고;
상기 처리 회로는 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하도록 추가로 구성되고, 상기 보간은
- 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고,
- 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고,
- 상기 액세스된 정수 샘플 위치 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간을 수행한다.
실시예 3. 실시예 1 또는 실시예 2에 따른 장치로서, 상기 대체 값은 대응하는 평가된 정수 샘플 위치의 값을 상기 보간 필터의 축에 대해 미러링하는 것에 의해 결정된다.
실시예 4. 실시예 1 내지 실시예 3 중 어느 한 실시예에 따른 장치로서, 상기 보간 필터는 1차원 또는 분리가능 2차원 필터이다.
실시예 5. 실시예 1 내지 실시예 4 중 어느 한 실시예에 따른 장치로서, 상기 윈도우는 상기 초기 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자를 획득하기 위해 액세스 가능한 모든 정수 샘플 위치들에 의해 형성된다.
실시예 6. 실시예 1 내지 실시예 5 중 어느 한 실시예에 따른 장치로서, 상기 윈도우는:
- 상기 초기 모션 벡터 위치 상에 위치한 예측 블록의 크기를 갖는 블록,
- 상기 초기 모션 벡터 위치, 및
- 상기 예측자를 결정하기 위해 사용되는 상기 보간 필터의 수직 및 수평 길이
중 적어도 하나에 대한 그것의 수직 및/또는 수평 크기에 의해 정의된다.
실시예 7. 실시예 1, 실시예 2 또는 실시예 4 내지 실시예 6 중 어느 한 실시예에 따른 장치로서, 상기 대체 값은 상기 액세스된 정수 샘플 위치들 중 가장 가까운 것에 대한 값과 동등한 것으로 결정된다.
실시예 8. 실시예 1 내지 실시예 7 중 어느 한 실시예에 따른 장치로서, 대체될 샘플 값들의 수는 상기 초기 모션 벡터와 상기 리파인된 모션 벡터 간의 차이에 의존한다.
실시예 9. 선행 실시예들 중 어느 한 실시예에 따른 장치로서, 상기 처리 회로(600)는 템플릿에 의한 템플릿 매칭 또는 쌍방 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하도록 구성되고,
- 상기 템플릿 또는 쌍방 매칭은:
o 추가 미리 결정된 윈도우(1120) 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고 - 상기 추가 미리 결정된 윈도우(1120)는 상기 탐색 공간 및 상기 템플릿 또는 쌍방 매칭을 위해 액세스 가능한 추가 정수 샘플 위치들을 포함함 -;
o 상기 추가 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값(1030)을 상기 추가 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고,
o 상기 액세스된 정수 샘플 위치 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 템플릿 또는 쌍방 매칭을 수행한다.
실시예 10. 실시예 9에 따른 장치로서,
상기 탐색 공간은 미리 정의된 탭-크기의 필터에 의한 보간 필터링에 의해 획득된 값을 갖는 적어도 하나의 분수 샘플 위치(1, 2, 6)를 포함하고;
상기 보간 필터링은 상기 액세스된 정수 샘플 위치 값들 및 상기 적어도 하나의 대체 값을 사용하여 상기 적어도 하나의 분수 샘플 위치 값을 획득한다.
실시예 11. 실시예 10에 따른 장치로서, 상기 템플릿 또는 쌍방 매칭에서 사용된 대체 값은 대응하는 액세스된 정수 샘플 위치의 값을 상기 필터의 축에 대해 미러링하는 것에 의해 결정된다.
실시예 12. 실시예 9 또는 실시예 10에 따른 장치로서, 상기 템플릿 또는 쌍방 매칭에서 사용된 대체 값은 상기 액세스된 정수 샘플 위치들 중 가장 가까운 것에 대한 값과 동등한 것으로 결정된다.
실시예 13. 실시예 9 내지 실시예 12 중 어느 한 실시예에 따른 장치로서, 상기 추가 미리 결정된 윈도우(1120)는:
- 상기 탐색 공간,
- 상기 초기 모션 벡터 위치 상에 위치한 예측 블록의 크기를 갖는 블록,
- 상기 초기 모션 벡터 위치
중 적어도 하나에 대한 그것의 수직 및/또는 수평 크기에 의해 정의된다.
실시예 14. 실시예 9 내지 실시예 13 중 어느 한 실시예에 따른 장치로서, 상기 추가 미리 결정된 윈도우(1120)는 상기 미리 결정된 윈도우와 동일하다.
실시예 15. 실시예 1 내지 실시예 14 중 어느 한 실시예에 따른 장치로서, 상기 리파인먼트는 쌍방 매칭에 의해 결정되고 상기 처리 회로는 상이한 참조 화상들(Ref0, Ref1)에서의 위치들을 가리키고 초기 모션 벡터들의 쌍(Pair_0, Pair_1, ..., Pair_N)을 형성하는 적어도 2개의 초기 모션 벡터를 획득하도록 구성된다.
실시예 16. 실시예 1 내지 실시예 14 중 어느 한 실시예에 따른 장치로서, 상기 리파인먼트는 템플릿 매칭에 의해 결정되고, 상기 처리 회로는:
상기 예측 블록에 대한 템플릿을 획득하고,
상기 탐색 공간에서의 상기 템플릿에 의한 템플릿 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하도록 추가로 구성된다.
실시예 17. 예측 블록들로 분할된 비디오 이미지들을 비트스트림으로 인코딩하기 위한 인코딩 방법으로서, 상기 인코딩 방법은:
예측 블록에 대한 모션 벡터의 결정하는 단계 - 이 단계는:
적어도 하나의 초기 모션 벡터를 획득하는 단계(1310, 1410); 및
리파인된 모션 벡터를 획득하기 위해, 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하는 단계(1320, 1330, 1340, 1720; 2115, 2120, 2130, 2140, 2150, 2160)를 포함하고, 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치 상에 위치함 -;
상기 예측 블록과 상기 결정된 모션 벡터에 기초한 위치에서의 예측 블록에 의해 주어진 예측자 간의 차이를 인코딩하고 상기 인코딩된 차이 및 상기 초기 모션 벡터를 포함하는 비트스트림을 생성하는 단계; 및
보간 필터에 의한 보간 필터링을 사용하여 상기 모션 벡터에 따라 상기 예측자를 결정하는 단계(1780)를 포함하고, 상기 보간 필터링은
- 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고,
- 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고,
- 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간 필터링을 수행한다.
실시예 18. 비트스트림으로부터 예측 블록들로 분할된 비디오 이미지들을 디코딩하기 위한 디코딩 방법으로서, 상기 디코딩은:
상기 비트스트림으로부터 초기 모션 벡터 및 예측 블록과 리파인된 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자 간의 인코딩된 차이를 파싱하는 단계;
예측 블록에 대한 모션 벡터의 결정하는 단계 - 이 단계는:
적어도 하나의 초기 모션 벡터를 획득하는 단계(1310, 1410); 및
리파인된 모션 벡터를 획득하기 위해, 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하는 단계(1320, 1330, 1340, 1720; 2115, 2120, 2130, 2140, 2150, 2160)를 포함하고, 상기 탐색 공간은 상기 초기 모션 벡터에 의해 주어진 위치 상에 위치함 -;
모션 벡터를 결정하는 단계에 의해 결정된 상기 리파인된 모션 벡터에 의해 특정된 위치에서의 상기 예측 블록에 의해 주어진 예측자와 상기 파싱된 차이의 합으로서 상기 예측 블록을 재구성하는 단계; 및
보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하는 단계(1780)를 포함하고, 상기 보간은
- 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고,
- 상기 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고,
- 상기 액세스된 정수 위치 샘플 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 보간을 수행한다.
실시예 19. 실시예 17 또는 실시예 18에 따른 방법으로서, 상기 대체 값은 대응하는 평가된 정수 샘플 위치의 값을 상기 보간 필터의 축에 대해 미러링하는 것에 의해 결정된다.
실시예 20. 실시예 17 내지 실시예 19 중 어느 한 실시예에 따른 방법으로서, 상기 보간 필터는 1차원 또는 분리가능 2차원 필터이다.
실시예 21. 실시예 17 내지 실시예 20 중 어느 한 실시예에 따른 방법으로서, 상기 윈도우는 상기 초기 모션 벡터에 의해 특정된 위치에서의 예측 블록에 의해 주어진 예측자를 획득하기 위해 액세스 가능한 모든 정수 샘플 위치들에 의해 형성된다.
실시예 22. 실시예 17 내지 실시예 21 중 어느 한 실시예에 따른 방법으로서, 상기 윈도우는:
- 상기 초기 모션 벡터 위치 상에 위치한 예측 블록의 크기를 갖는 블록,
- 상기 초기 모션 벡터 위치, 및
- 상기 예측자를 결정하기 위해 사용되는 상기 보간 필터의 수직 및 수평 길이
중 적어도 하나에 대한 그것의 수직 및/또는 수평 크기에 의해 정의된다.
실시예 23. 실시예 17, 실시예 18 또는 실시예 20 내지 실시예 22 중 어느 한 실시예에 따른 방법으로서, 상기 대체 값은 상기 액세스된 정수 샘플 위치들 중 가장 가까운 것에 대한 값과 동등한 것으로 결정된다.
실시예 24. 실시예 17 내지 실시예 23 중 어느 한 실시예에 따른 방법으로서, 대체될 샘플 값들의 수는 상기 초기 모션 벡터와 상기 리파인된 모션 벡터 간의 차이에 의존한다.
실시예 25. 실시예 17 내지 실시예 24 중 어느 한 실시예에 따른 방법으로서, 리파인먼트를 결정하는 상기 단계(1320, 1330, 1340, 1720; 2115, 2120, 2130, 2140, 2150, 2160)는 템플릿에 의한 템플릿 매칭 또는 쌍방 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하고,
- 상기 템플릿 또는 쌍방 매칭은:
o 추가 미리 결정된 윈도우 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고 - 상기 추가 미리 결정된 윈도우는 상기 탐색 공간 및 상기 템플릿 또는 쌍방 매칭을 위해 액세스 가능한 추가 정수 샘플 위치들을 포함함 -;
o 상기 추가 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값을 상기 추가 윈도우 내의 적어도 하나의 샘플에 기초하는 대체 값으로 대체하고(1440),
o 상기 액세스된 정수 샘플 위치 값들뿐만 아니라 상기 대체 값들을 사용하여 상기 템플릿 또는 쌍방 매칭을 수행한다(1450).
실시예 26. 실시예 25에 따른 방법으로서,
상기 탐색 공간은 미리 정의된 탭-크기의 필터에 의한 보간 필터링에 의해 획득된 값을 갖는 적어도 하나의 분수 샘플 위치를 포함하고;
상기 보간 필터링은 상기 액세스된 정수 샘플 위치 값들 및 상기 적어도 하나의 대체 값을 사용하여 상기 적어도 하나의 분수 샘플 위치 값을 획득한다.
실시예 27. 실시예 26에 따른 방법으로서, 상기 템플릿 또는 쌍방 매칭에서 사용된 대체 값은 대응하는 평가된 정수 샘플 위치의 값을 상기 필터의 축에 대해 미러링하는 것에 의해 결정된다.
실시예 28. 실시예 26 또는 실시예 27에 따른 방법으로서, 상기 템플릿 또는 쌍방 매칭에서 사용된 대체 값은 상기 액세스된 정수 샘플 위치들 중 가장 가까운 것에 대한 값과 동등한 것으로 결정된다.
실시예 29. 실시예 25 내지 실시예 28 중 어느 한 실시예에 따른 방법으로서, 상기 추가 미리 결정된 윈도우는:
- 상기 탐색 공간,
- 상기 초기 모션 벡터 위치 상에 위치한 예측 블록의 크기를 갖는 블록,
- 상기 초기 모션 벡터 위치
중 적어도 하나에 대한 그것의 수직 및/또는 수평 크기에 의해 정의된다.
실시예 30. 실시예 25 내지 실시예 29 중 어느 한 실시예에 따른 방법으로서, 상기 추가 미리 결정된 윈도우는 상기 미리 결정된 윈도우와 동일하다.
실시예 31. 실시예 17 내지 실시예 30 중 어느 한 실시예에 따른 방법으로서, 상기 리파인먼트는 쌍방 매칭에 의해 결정되고 상기 획득 단계는 상이한 참조 화상들에서의 위치들을 가리키고 초기 모션 벡터들의 쌍을 형성하는 적어도 2개의 초기 모션 벡터를 획득한다.
실시예 32. 실시예 17 내지 실시예 31 중 어느 한 실시예에 따른 방법으로서, 상기 리파인먼트는 템플릿 매칭에 의해 결정되고 모션 벡터를 결정하는 상기 단계는
상기 예측 블록에 대한 템플릿을 획득하는 단계(1330; 2130) 및
상기 탐색 공간에서의 상기 템플릿에 의한 템플릿 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하는 단계(1340; 2140)를 추가로 포함한다.
실시예 33. 프로세서 상에서 실행될 때 상기 프로세서로 하여금 실시예 17 내지 실시예 32 중 어느 한 실시예에 따른 방법을 수행하게 하는 명령어들을 저장하는 컴퓨터 판독가능 매체.

Claims (41)

  1. 비디오 이미지의 블록을 인코딩하기 위한 예측자를 결정하기 위한 인코딩 장치로서,
    상기 인코딩 장치는:
    처리 회로(600)를 포함하고, 상기 처리 회로는:
    상기 블록에 대한 초기 모션 벡터를 획득하고;
    상기 초기 모션 벡터에 기초하여 상기 블록에 대한 리파인된 모션 벡터를 획득하기 위한 탐색을 수행하고;
    상기 탐색 이후에, 상기 리파인된 모션 벡터에 따라 상기 블록에 대한 예측자를 결정하도록 구성되고;
    상기 처리 회로는 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하고, 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하도록 구성되고, 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 샘플의 적어도 하나의 샘플 값에 기초하고, 상기 윈도우는 상기 초기 모션 벡터의 위치 상에 위치한 블록의 복수의 행 및 복수의 열에 의한 확장으로 정의되는, 장치.
  2. 비디오 이미지의 블록을 디코딩하기 위한 예측자를 결정하기 위한 디코딩 장치로서,
    상기 디코딩 장치는 처리 회로를 포함하고, 상기 처리 회로는:
    상기 블록에 대한 초기 모션 벡터를 획득하고;
    상기 초기 모션 벡터에 기초하여 예측 블록에 대한 리파인된 모션 벡터를 획득하기 위한 탐색을 수행하고;
    상기 탐색 이후에, 상기 리파인된 모션 벡터에 따라, 상기 블록에 대한 예측자를 결정하도록 구성되고;
    상기 처리 회로는 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하고, 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하도록 구성되고, 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 샘플의 적어도 하나의 샘플 값에 기초하고, 상기 윈도우는 상기 초기 모션 벡터의 위치 상에 위치한 블록의 복수의 행 및 복수의 열에 의한 확장으로 정의되는, 장치.
  3. 제2항에 있어서,
    상기 처리 회로(600)는 후보 모션 벡터들의 탐색 공간에 기초하여 상기 초기 모션 벡터의 리파인먼트를 결정하고, 상기 초기 모션 벡터 및 상기 리파인먼트에 기초하여 상기 리파인된 모션 벡터를 결정하도록 구성되는, 장치.
  4. 제3항에 있어서,
    상기 탐색 공간은 상기 초기 모션 벡터에 의해 정의된 위치 상에 위치하는, 장치.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 처리 회로(600)는 상기 블록과 상기 예측자 간의 차이를 획득하도록 구성되는, 장치.
  6. 제5항에 있어서,
    상기 처리 회로(600)는 상기 예측자 및 상기 블록과 상기 예측자 간의 차이에 기초하여 상기 블록을 재구성하도록 추가로 구성되는, 장치.
  7. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 패딩된 샘플 값은 대응하는 평가된 정수 샘플 위치의 값을 상기 보간 필터의 축에 대해 미러링하는 것에 의해 결정되는, 장치.
  8. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 보간 필터는 1차원 필터 또는 분리가능 2차원 필터인, 장치.
  9. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 윈도우는 상기 초기 모션 벡터에 의해 특정된 위치에서의 상기 예측자를 획득하기 위해 액세스 가능한 모든 정수 샘플 위치들에 의해 형성되는, 장치.
  10. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 윈도우는 상기 예측자를 결정하기 위해 사용되는 상기 보간 필터의 수직 및 수평 길이에 대한 그것의 수직 및/또는 수평 크기에 의해 정의되는, 장치.
  11. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 윈도우 외부의 정수 샘플 위치에 대한 패딩된 샘플 값은 상기 윈도우 외부에 위치한 정수 샘플 위치에 가장 가까운, 상기 윈도우 내부에 위치한 적어도 하나의 사용된 정수 샘플 위치의 샘플 값과 동등한 것으로 결정되는, 장치.
  12. 제2항 내지 제4항 중 어느 한 항에 있어서,
    패딩될 샘플 값들의 수는 상기 초기 모션 벡터와 상기 리파인된 모션 벡터 간의 차이에 의존하는, 장치.
  13. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 처리 회로(600)는 템플릿에 의한 템플릿 매칭 또는 쌍방 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하도록 구성되고,
    - 상기 템플릿 또는 쌍방 매칭은:
    o 추가 윈도우(1120) 내의 정수 샘플 위치들에서의 샘플 값들에 액세스하고 - 상기 추가 윈도우(1120)는 상기 탐색 공간 및 상기 템플릿 또는 쌍방 매칭을 위해 액세스 가능한 추가 정수 샘플 위치들을 포함함 -;
    o 상기 추가 윈도우 외부에 위치한 정수 샘플 위치에서의 적어도 하나의 샘플 값(1030)을 상기 추가 윈도우 내의 적어도 하나의 샘플에 기초하는 패딩된 샘플 값으로 패딩하고,
    o 상기 액세스된 정수 샘플 위치 값들뿐만 아니라 상기 패딩된 샘플 값들을 사용하여 상기 템플릿 또는 쌍방 매칭을 수행하는, 장치.
  14. 제13항에 있어서,
    상기 탐색 공간은 미리 정의된 탭-크기의 필터에 의한 보간 필터링에 의해 획득된 값을 갖는 적어도 하나의 분수 샘플 위치(1, 2, 6)를 포함하고;
    상기 보간 필터링은 상기 액세스된 정수 샘플 위치 값들 및 상기 적어도 하나의 패딩된 샘플 값을 사용하여 상기 적어도 하나의 분수 샘플 위치 값을 획득하는, 장치.
  15. 제14항에 있어서,
    상기 템플릿 또는 쌍방 매칭에서 사용된 패딩된 샘플 값은 대응하는 액세스된 정수 샘플 위치의 값을 상기 필터의 축에 대해 미러링하는 것에 의해 결정되는, 장치.
  16. 제13항에 있어서,
    상기 템플릿 또는 쌍방 매칭에서 사용된 패딩된 샘플 값은 상기 액세스된 정수 샘플 위치들 중 가장 가까운 것에 대한 값과 동등한 것으로 결정되는, 장치.
  17. 제13항에 있어서,
    상기 추가 윈도우(1120)는 상기 탐색 공간에 대한 그것의 수직 및/또는 수평 크기에 의해 정의되는, 장치.
  18. 제13항에 있어서,
    상기 추가 윈도우(1120)는 상기 윈도우와 동일한, 장치.
  19. 제2항 내지 제4항 중 어느 한 항에 있어서,
    리파인먼트는 쌍방 매칭에 의해 결정되고 상기 처리 회로는 상이한 참조 화상들(Ref0, Ref1)에서의 위치들을 가리키고 초기 모션 벡터들의 쌍(Pair_0, Pair_1, ..., Pair_N)을 형성하는 적어도 2개의 초기 모션 벡터를 획득하도록 구성되는, 장치.
  20. 제2항 내지 제4항 중 어느 한 항에 있어서,
    리파인먼트는 템플릿 매칭에 의해 결정되고, 상기 처리 회로는:
    상기 블록에 대한 템플릿을 획득하고,
    상기 탐색 공간에서의 상기 템플릿에 의한 템플릿 매칭에 의해 상기 초기 모션 벡터의 리파인먼트를 결정하도록 추가로 구성되는, 장치.
  21. 비디오 이미지의 블록을 인코딩하기 위한 예측자를 결정하기 위한 인코딩 방법으로서,
    상기 인코딩 방법은:
    상기 블록에 대한 초기 모션 벡터를 획득하는 단계(1310, 1410);
    상기 초기 모션 벡터에 기초하여 상기 블록에 대한 리파인된 모션 벡터를 획득하기 위한 탐색을 수행하는 단계(1320, 1330, 1340, 1720; 2115, 2120, 2130, 2140, 2150, 2160); 및
    상기 탐색 이후에, 상기 리파인된 모션 벡터에 따라 상기 블록에 대한 예측자를 결정하는 단계(1780)를 포함하고, 상기 결정 단계(1780)는 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 예측자를 결정하고, 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하고, 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 샘플의 적어도 하나의 샘플 값에 기초하고, 상기 윈도우는 상기 초기 모션 벡터의 위치 상에 위치한 블록의 복수의 행 및 복수의 열에 의한 확장으로 정의되는, 방법.
  22. 비디오 이미지의 블록을 디코딩하기 위한 예측자를 결정하기 위한 디코딩 방법으로서,
    상기 디코딩 방법은:
    상기 블록에 대한 초기 모션 벡터를 획득하는 단계;
    상기 초기 모션 벡터에 기초하여 상기 예측 블록에 대한 리파인된 모션 벡터를 획득하기 위한 탐색을 수행하는 단계; 및
    상기 탐색 이후에, 보간 필터에 의한 보간을 사용하여 상기 리파인된 모션 벡터에 따라 상기 블록에 대한 예측자를 결정하고 보간 필터링을 위해 윈도우 내부에 위치한 정수 샘플 위치의 적어도 하나의 샘플 값 및 상기 윈도우 외부에 위치한 정수 샘플 위치에 대한 패딩된 샘플 값을 사용하는 단계(1780)를 포함하고, 상기 패딩된 샘플 값은 상기 윈도우 내부에 위치한 샘플의 적어도 하나의 샘플 값에 기초하고, 상기 윈도우는 상기 초기 모션 벡터의 위치 상에 위치한 블록의 복수의 행 및 복수의 열에 의한 확장으로 정의되는, 방법.
  23. 프로세서 상에서 실행될 때 상기 프로세서로 하여금 제22항에 따른 방법을 수행하게 하는 명령어들을 저장하는 컴퓨터 판독가능 매체.
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
KR1020217001104A 2018-06-28 2019-06-28 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩 KR102606778B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237040298A KR20230165870A (ko) 2018-06-28 2019-06-28 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862691594P 2018-06-28 2018-06-28
US201862691582P 2018-06-28 2018-06-28
US62/691,594 2018-06-28
US62/691,582 2018-06-28
PCT/CN2019/093465 WO2020001574A1 (en) 2018-06-28 2019-06-28 Memory access window and padding for motion vector refinement and motion compensation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237040298A Division KR20230165870A (ko) 2018-06-28 2019-06-28 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩

Publications (2)

Publication Number Publication Date
KR20210019097A KR20210019097A (ko) 2021-02-19
KR102606778B1 true KR102606778B1 (ko) 2023-11-29

Family

ID=68985791

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217001104A KR102606778B1 (ko) 2018-06-28 2019-06-28 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩
KR1020237040298A KR20230165870A (ko) 2018-06-28 2019-06-28 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237040298A KR20230165870A (ko) 2018-06-28 2019-06-28 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩

Country Status (10)

Country Link
US (3) US11363292B2 (ko)
EP (2) EP3794827A4 (ko)
JP (1) JP7171770B2 (ko)
KR (2) KR102606778B1 (ko)
CN (2) CN111886870B (ko)
AU (1) AU2019296308B9 (ko)
BR (1) BR112020026830A2 (ko)
CA (1) CA3104570C (ko)
SG (1) SG11202012700UA (ko)
WO (2) WO2020001578A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019072370A1 (en) * 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. MEMORY ACCESS WINDOW AND FILLING FOR VECTOR MOVEMENT REFINEMENT
KR102606778B1 (ko) * 2018-06-28 2023-11-29 후아웨이 테크놀러지 컴퍼니 리미티드 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩
CN113056920B (zh) 2018-11-22 2024-05-24 北京字节跳动网络技术有限公司 基于子块的帧间预测的协调方法
CN113228639A (zh) * 2018-12-21 2021-08-06 韩国电子通信研究院 图像编码/解码方法和装置以及存储有比特流的记录介质
EP3939323A1 (en) * 2019-03-11 2022-01-19 Vid Scale, Inc. Methods and systems for post-reconstruction filtering
US11936916B2 (en) * 2019-06-25 2024-03-19 Lg Electronics Inc. Image decoding method using lossless coding in image coding system and apparatus therefor
JP7481430B2 (ja) * 2019-08-13 2024-05-10 北京字節跳動網絡技術有限公司 サブブロックに基づくインター予測における動き精度
WO2021052505A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Reference picture resampling in video processing
US20240171756A1 (en) * 2021-03-30 2024-05-23 Interdigital Ce Patent Holdings, Sas Template matching prediction for video encoding and decoding
EP4441999A1 (en) * 2021-11-30 2024-10-09 Beijing Dajia Internet Information Technology Co., Ltd. Motion compensation considering out-of-boundary conditions in video coding
CN114154645B (zh) * 2021-12-03 2022-05-17 中国科学院空间应用工程与技术中心 跨中心图像联合学习方法、系统、存储介质及电子设备
WO2024014896A1 (ko) * 2022-07-13 2024-01-18 엘지전자 주식회사 움직임 정보 리파인먼트에 기반한 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체
WO2024211838A1 (en) * 2023-04-05 2024-10-10 Beijing Dajia Internet Information Technology Co., Ltd. Method and apparatus for adaptive motion compensated filtering

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130044809A1 (en) * 2011-08-18 2013-02-21 Qualcomm Incorporated Applying partition-based filters
US20160286232A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998042134A1 (en) * 1997-03-17 1998-09-24 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
US7342962B2 (en) * 2003-09-17 2008-03-11 Texas Instruments Incorporated Transcoders and methods
US8553776B2 (en) 2004-07-21 2013-10-08 QUALCOMM Inorporated Method and apparatus for motion vector assignment
JP4802885B2 (ja) * 2006-06-19 2011-10-26 ソニー株式会社 動きベクトル検出装置および方法、プログラム並びに記録媒体
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
EP1988502A1 (en) 2007-05-04 2008-11-05 Deutsche Thomson OHG Method and device for retrieving a test block from a blockwise stored reference image
US20110176611A1 (en) * 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
US9516341B2 (en) * 2010-01-19 2016-12-06 Thomson Licensing Methods and apparatus for reduced complexity template matching prediction for video encoding and decoding
CN102611887B (zh) * 2011-01-21 2015-08-05 华为技术有限公司 非整像素位置运动矢量的坐标值取整方法和装置
US9749657B2 (en) * 2011-01-21 2017-08-29 Sharp Kabushiki Kaisha Buffer compression for motion vector competition
US9325991B2 (en) * 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
EP2683165B1 (en) * 2012-07-04 2015-10-14 Thomson Licensing Method for coding and decoding a block of pixels from a motion model
US10284842B2 (en) * 2013-03-05 2019-05-07 Qualcomm Incorporated Inter-layer reference picture construction for spatial scalability with different aspect ratios
US9609347B2 (en) * 2013-04-04 2017-03-28 Qualcomm Incorporated Advanced merge mode for three-dimensional (3D) video coding
US9942560B2 (en) * 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US10205950B2 (en) * 2014-02-21 2019-02-12 Panasonic Corporation Image decoding method, image encoding method, image decoding apparatus, and image encoding apparatus
GB2524476B (en) * 2014-03-14 2016-04-27 Canon Kk Method, device and computer program for optimizing transmission of motion vector related information when transmitting a video stream
US10412387B2 (en) * 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
JP2017017629A (ja) * 2015-07-03 2017-01-19 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
US10511835B2 (en) * 2015-09-02 2019-12-17 Mediatek Inc. Method and apparatus of decoder side motion derivation for video coding
US10812822B2 (en) * 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
WO2017084071A1 (en) * 2015-11-19 2017-05-26 Hua Zhong University Of Science Technology Optimization of interframe prediction algorithms based on heterogeneous computing
US10136155B2 (en) * 2016-07-27 2018-11-20 Cisco Technology, Inc. Motion compensation using a patchwork motion field
US10701366B2 (en) * 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
US10477237B2 (en) * 2017-06-28 2019-11-12 Futurewei Technologies, Inc. Decoder side motion vector refinement in video coding
WO2019072370A1 (en) 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. MEMORY ACCESS WINDOW AND FILLING FOR VECTOR MOVEMENT REFINEMENT
CN111201792B (zh) 2017-10-09 2022-06-14 华为技术有限公司 指向分数像素点位置的运动矢量的修正运动矢量
KR102606778B1 (ko) * 2018-06-28 2023-11-29 후아웨이 테크놀러지 컴퍼니 리미티드 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130044809A1 (en) * 2011-08-18 2013-02-21 Qualcomm Incorporated Applying partition-based filters
US20160286232A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding

Also Published As

Publication number Publication date
JP2021529471A (ja) 2021-10-28
US11451824B2 (en) 2022-09-20
US20210195232A1 (en) 2021-06-24
WO2020001578A1 (en) 2020-01-02
EP3799693A1 (en) 2021-04-07
CN112292862A (zh) 2021-01-29
KR20210019097A (ko) 2021-02-19
CN111886870B (zh) 2023-02-03
KR20230165870A (ko) 2023-12-05
SG11202012700UA (en) 2021-01-28
BR112020026830A2 (pt) 2021-04-06
US20220394291A1 (en) 2022-12-08
WO2020001574A1 (en) 2020-01-02
CA3104570A1 (en) 2020-01-02
EP3794827A4 (en) 2021-03-31
US20200404323A1 (en) 2020-12-24
AU2019296308B2 (en) 2023-04-06
EP3799693A4 (en) 2021-04-07
JP7171770B2 (ja) 2022-11-15
AU2019296308A1 (en) 2021-01-21
EP3794827A1 (en) 2021-03-24
US11363292B2 (en) 2022-06-14
CA3104570C (en) 2023-05-23
JP2023014095A (ja) 2023-01-26
AU2019296308B9 (en) 2023-08-03
CN111886870A (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
KR102606778B1 (ko) 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩
US12069291B2 (en) Limited memory access window for motion vector refinement
US11153595B2 (en) Memory access window and padding for motion vector refinement
CN111567047B (zh) 进行子预测块运动矢量推导的存储器访问窗口
US11159820B2 (en) Motion vector refinement of a motion vector pointing to a fractional sample position
JP7571105B2 (ja) 動きベクトル精密化および動き補償のためのメモリアクセスウィンドウおよびパディング

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right