KR20230125348A - 다중 참조 예측을 위한 움직임 벡터 개선 - Google Patents

다중 참조 예측을 위한 움직임 벡터 개선 Download PDF

Info

Publication number
KR20230125348A
KR20230125348A KR1020237028327A KR20237028327A KR20230125348A KR 20230125348 A KR20230125348 A KR 20230125348A KR 1020237028327 A KR1020237028327 A KR 1020237028327A KR 20237028327 A KR20237028327 A KR 20237028327A KR 20230125348 A KR20230125348 A KR 20230125348A
Authority
KR
South Korea
Prior art keywords
motion vector
estimate
reference image
image
prediction
Prior art date
Application number
KR1020237028327A
Other languages
English (en)
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20230125348A publication Critical patent/KR20230125348A/ko

Links

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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/513Processing of 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/124Quantisation
    • 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/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

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

Abstract

본 발명은 다중 참조 인터 예측을 위한 검색 공간에서의 움직임 벡터 개선의 성능에 관한 것이다. 둘 이상의 참조 영상 선택되고, 그 중 하나가 움직임 벡터 개선에 사용된다. 움직임 벡터 개선을 위해 참조 영상에 대한 움직임 벡터의 초기 추정치에 기초하여, 이 참조 이미지의 검색 공간이 구성된다. 템플릿 매칭을 사용하여, 첫 번째 움직임 벡터가 개선된다. 다른 참조 영상에 대한 두 번째 움직임 벡터는 그 초기 추정치, 첫 번째 움직임 벡터의 초기 추정치 및 개선된 첫 번째 움직임 벡터를 사용하여 계산된다.

Description

다중 참조 예측을 위한 움직임 벡터 개선{MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION}
본 발명은 비디오 코딩 분야에 관한 것으로, 특히 다중 참조 인터 예측(multi-reference inter-prediction)에 적용 가능한 움직임 벡터 추정에 관한 것이다. 본 출원은 2017년 6월 30일에 출원된 PCT/EP2017/066342의 우선권을 주장하며, 그 내용은 인용에 의해 본 출원에 포함된다.
현재 하이브리드 비디오 코덱은 예측 코딩을 채용하고 있다. 비디오 시퀀스의 영상(picture)은 화소 블록으로 세분되고 이 블록들은 코딩된다. 블록을 화소 단위로 코딩하는 대신, 전체 블록은 블록의 공간적 또는 시간적으로 근접한 이미 인코딩된 화소를 사용하여 예측된다. 인코더는 블록과 그 예측 사이의 차이만을 추가로 처리한다. 추가 처리는 일반적으로 변환 도메인(transformation domain)에서 블록 화소를 계수로 변환하는 것을 포함한다. 그 후, 계수는 양자화에 의해 추가로 압축되고, 엔트로피 코딩(entropy coding)에 의해 추가로 콤팩트하게 되어 비트스트림을 형성할 수 있다. 비트스트림은 디코더가 인코딩된 비디오를 디코딩할 수 있게 하는 임의의 시그널링 정보를 더 포함한다. 예를 들어, 이 시그널링은 입력 영상의 크기, 프레임 레이트, 양자화 단계 지시(quantization step indication), 영상의 블록에 적용된 예측 등과 같은 인코더 설정에 관한 설정을 포함할 수 있다.
시간 예측(temporal prediction)은 비디오의, 프레임이라고도 하는, 영상들 사이의 시간적 상관관계를 이용한다. 시간 예측은 또한 인터 예측(inter-prediction)이라고도 하는데, 이는 (인터) 상이한 비디오 프레임들 사이의 종속성을 사용하는 예측이기 때문이다. 따라서, 현재 블록으로도 지칭되는, 인코딩되는 블록은 참조 영상(reference picture)으로 지칭되는 (하나 이상의) 이전에 인코딩된 영상(들)으로부터 예측된다. 참조 영상은 반드시 현재 블록이 비디오 시퀀스의 표시 순서에 있어 현재 블록이 위치하는 현재 영상에 선행하는 영상일 필요는 없다. 인코더는 표시 순서와 다른 코딩 순서로 영상을 인코딩할 수 있다. 현재 블록의 예측으로서, 참조 영상에서의 공존 블록(co-located block)이 결정될 수 있다. 공존 블록은 현재 영상의 현재 블록과 동일한 위치에서 참조 영상에 위치하는 블록이다. 이러한 예측은 움직임이 없는 영상 영역(picture region), 즉 한 영상에서 다른 영상으로의 움직임이 없는 영상 영역에 대해 정확하다.
움직임을 고려하는 예측자, 즉 움직임 보상 예측자(motion compensated predictor)를 획득하기 위해, 현재 블록의 예측을 결정할 때 움직임 추정(motion estimation)이 일반적으로 사용된다. 따라서, 현재 블록은 참조 영상 내의 블록에 의해 예측되며, 이는 공존 블록의 위치로부터 움직임 벡터에 의해 주어진 거리에 위치한다. 디코더가 현재 블록의 동일한 예측을 결정할 수 있게 하기 위해, 움직임 벡터는 비트스트림으로 시그널링될 수 있다. 각각의 블록에 대해 움직임 벡터를 시그널링함으로써 야기되는 시그널링 오버헤드(signaling overhead)를 추가로 감소시키기 위해, 움직임 벡터 자체가 추정될 수 있다. 움직임 벡터 추정은 공간 도메인 및/또는 시간 도메인에서 이웃 블록의 움직임 벡터에 기초하여 수행될 수 있다.
현재 블록의 예측은 하나의 참조 영상을 사용하여 또는 둘 이상의 참조 영상으로부터 획득된 예측에 가중치를 부여함으로써 계산될 수 있다. 참조 영상은 인접한 영상, 즉 인접한 영상들이 현재 영상과 유사할 가능성이 높기 때문에 표시 순서에서 현재 영상 직전 및/또는 현재 영상 바로 다음의 영상일 수 있다. 그러나 일반적으로, 참조 영상은 또한 표시 순서에서 현재 영상의 앞 또는 뒤에 있고 비트스트림(디코딩 순서)에서 현재 영상에 선행하거나 현재 영상 다음에 오는 임의의 다른 영상일 수 있다. 이것은 예를 들어 비디오 콘텐츠에서 폐색(occlusion) 및/또는 비선형 움직임의 경우에 이점을 제공할 수 있다. 따라서 참조 영상도 또한 비트스트림으로 시그널링될 수 있다.
인터 예측의 특수 모드는 두 개의 참조 영상이 현재 블록의 예측을 생성하는 데 사용되는 소위 양방향 예측(bi-prediction)이다. 특히, 각각의 두 개의 참조 영상에서 결정된 두 개의 예측은 현재 블록의 예측 신호에 결합된다. 이중 예측은 단방향 예측(uni-prediction), 즉 단일 참조 영상만을 사용하는 예측보다 현재 블록의 더욱 정확한 예측 결과를 낳을 수 있다. 더욱 정확한 예측은 현재 블록의 화소와 예측("잔차(residual)"이라고도 함) 사이의 작은 차이로 이어지고, 이는 더 효율적으로 인코딩될 수 있으며, 더 짧은 비트스트림으로 압축될 수 있다. 일반적으로, 현재 블록을 예측하기 위해 두 개 이상의 참조 영상이 각각 두 개 이상의 참조 블록을 찾는 데 사용될 수 있다. 즉 다중 참조 인터 예측이 적용될 수 있다. 따라서 다중 참조 예측이라는 용어는 양방향 예측뿐만 아니라 두 개 이상의 참조 영상을 사용하는 예측도 포함한다.
더 정확한 움직임 추정을 제공하기 위해, 참조 영상의 해상도는 화소들 사이에 샘플을 보간함으로써 향상될 수 있다. 분수 화소 보간(fractional pixel interpolation)은 가장 가까운 화소의 가중 평균화에 의해 수행될 수 있다. 1/2 화소 해상도(half-pixel resolution)의 경우, 예를 들어 이중 선형 보간(bilinear interpolation)이 일반적으로 사용된다. 다른 분수 화소는 예측되는 화소에 대한 각각의 가장 가까운 화소 사이의 거리의 역수로 가중치가 부여된 가장 가까운 화소의 평균으로서 계산된다.
움직임 벡터 추정은 참조 영상에서 후보 움직임 벡터가 가리키는 현재 블록과 대응하는 예측 블록 사이에서 유사성이 계산되는 계산적으로 복잡한 태스크이다. 복잡도를 감소시키기 위해, 후보 움직임 벡터의 수는 일반적으로 후보 움직임 벡터를 특정 검색 공간으로 제한함으로써 감소된다. 검색 공간은 예를 들어, 현재 이미지에서의 현재 블록의 위치에 대응하는 참조 영상에서의 위치를 둘러싸는 화소의 수 및/또는 위치에 의해 정의될 수 있다. 한편, 후보 움직임 벡터는 이웃 블록(neighboring blocks)의 움직임 벡터에 의해 형성되는 후보 움직임 벡터의 리스트에 의해 정의될 수 있다.
움직임 벡터는 일반적으로 인코더 측에서 적어도 부분적으로 결정되고 코딩된 비트스트림 내에서 디코더에 대해 시그널링된다. 그러나 움직임 벡터는 또한 디코더에서 도출될 수 있다. 이러한 경우, 현재 블록은 디코더에서 입수 불가능하고 참조 영상 내에서 후보 움직임 벡터가 가리키는 블록과의 유사성을 계산하는 데 사용될 수 없다. 따라서, 현재 블록 대신에, 이미 디코딩된 블록의 화소로 구성된 템플릿(template)이 사용된다. 예를 들어, (현재 영상 또는 참조 영상에서) 현재 블록에 인접한 이미 디코딩된 화소가 사용될 수 있다. 이러한 움직임 추정은 시그널링을 감소시키는 이점을 제공한다: 움직임 벡터는 인코더 및 디코더 모두에서 동일한 방식으로 도출되므로, 시그널링이 불필요하다. 한편, 이러한 움직임 추정의 정확도는 더 낮을 수 있다.
정확도과 시그널링 오버헤드 사이의 트래드오프(tradeoff)를 제공하기 위해, 움직임 벡터 추정은 움직임 벡터 도출(motion vector derivation)과 움직임 벡터 개선(motion vector refinement)의 두 단계로 나뉠 수 있다. 예를 들어, 움직임 벡터 도출은 후보의 리스트로부터 움직임 벡터의 선택을 포함할 수 있다. 이러한 선택된 움직임 벡터는 예를 들어 검색 공간 내의 검색에 의해 더 개선될 수 있다. 검색 공간에서의 검색은 각각의 후보 움직임 벡터, 즉 후보 움직임 벡터가 가리키는 블록의 후보 위치 각각에 대한 비용 함수를 계산하는 것에 기초한다.
문헌 JVET-D0029: Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching, X. Chen, J. An, J. Zheng (이 문헌은 http://phenix.it-sudparis.eu/jvet/site에서 찾을 수 있다)는 정수 화소 해상도의 제1 움직임 벡터가 발견되고 제1 움직임 벡터 주위의 검색 공간에서의 1/2 화소 해상도의 검색에 의해 더 개선되는 움직임 벡터 개선을 보여준다.
다중 참조 예측이 적용될 때, 복수의 참조 영상에서 움직임 벡터가 결정되어야 한다. 디코더가 더 이상의 검색을 수행할 필요가 없도록 움직임 벡터가 첫 번째 단계에서 시그널링 되더라도, 움직임 벡터 개선은 대응하는 검색 공간의 움직임 벡터 중에서 추가 검색을 여전히 필요로 한다. 이것은 메모리뿐 아니라 계산 자원도 필요한 복잡한 태스크일 수 있다.
본 개시는, 제1 참조 영상에서 제1 움직임 벡터가 결정되고 제2 참조 영상에서 제2 움직임 벡터를 결정되는 기술을 제공한다. 따라서 복잡도를 줄일 수 있다. 먼저, 제1 움직임 벡터 및 제2 움직임 벡터가 대략 추정된다. 그 후, 제1 움직임 벡터의 대략적인 추정치에 의해 주어진 검색 공간에서 검색을 수행함으로써 제1 움직임 벡터가 개선된다. 제2 움직임 벡터는 그 대략적인 추정치 및 개선된 제1 움직임 벡터에 기초하여 계산에 의해 결정된다. 제1 움직임 벡터 및 제2 움직임 벡터는 인코딩 및/또는 디코딩 측의 디코더에서 사용되는, 현재 영상에서 현재 블록의 인터 예측에 적용될 수 있다.
제1 측면에 따르면, 본 발명은 제1 참조 영상에서 제1 움직임 벡터를 결정하고 제2 참조 영상에서 제2 움직임 벡터를 결정하기 위한 장치에 관한 것으로, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터는 현재 영상에서 영상 블록의 인터 예측에 적용되며, 상기 장치는 움직임 벡터 개선 유닛(motion vector refinement unit) 및 움직임 벡터 계산 유닛을 포함한다. 상기 움직임 벡터 개선 유닛은 상기 제1 움직임 벡터의 추정치를 획득하도록 구성된다. 상기 제1 움직임 벡터의 추정치에 기초하여 검색 공간이 지정된다. 상기 검색 공간 내에서, 상기 움직임 벡터 개선 유닛은 검색을 수행하여 상기 제1 움직임 벡터를 결정한다. 상기 움직임 벡터 계산 유닛은 상기 제2 움직임 벡터의 추정치를 획득한다. 상기 제2 움직임 벡터의 추정치 및 상기 제1 움직임 벡터에 기초하여, 상기 움직임 벡터 계산 유닛은 상기 제2 움직임 벡터를 계산한다.
따라서, 움직임 벡터 결정은 제1 움직임 벡터의 개선에 의해 주어진 정확도를 유지하면서 제2 움직임 벡터에 대한 개선량의 추정에 기초하여 더 적은 복잡도로 수행될 수 있다.
이와 같이 제1 측면에 따른 장치의 가능한 구현 형태에서, 상기 제2 움직임 벡터는 상기 제2 움직임 벡터의 추정치에, 상기 제1 움직임 벡터와 상기 제1 움직임 벡터의 추정치의 차이의 함수를 가산함으로써 계산된다. 이 함수는 스케일링(scaling) 및/또는 클리핑(clipping)을 포함할 수 있다. 스케일링 파라미터가 결정될 때, 그 값은 현재 영상에 대한 상기 제1 참조 영상과 상기 제2 참조 영상 각각의 거리 사이의 비율에 의존할 수 있다.
상기 제1 움직임 벡터에 대해 수행된 개선의 함수로서의 제2 움직임 벡터의 계산은 낮은 복잡도 추정이다. 또한, 이를 더 수정함으로써(예: 각각의 참조 영상 사이의 거리에 따라 스케일링함으로써), 추정이 훨씬 더 정확해질 수 있다.
상기 장치는, 유리하게는 참조 영상을 획득하고 그 중의 어느 것이 상기 제1 참조 영상 및 상기 제2 참조 영상인지를 선택하는 참조 영상 선택 유닛을 더 포함한다. 이 선택에 따라, 상기 제1 참조 영상 또는 상기 제2 참조 영상이 움직임 벡터 개선을 위해 사용될지를 판정한다. 참조 영상의 리스트는 비트스트림에 포함될 색인을 상기 현재 영상에 대한 참조 영상의 위치와 연관시킨다. 상기 참조 영상 선택 유닛은 참조 영상의 미리 정의된 리스트의 색인에 의해 비트스트림에서 참조되는지의 여부에 기초하여 상기 제1 참조 영상 및 상기 제2 참조 영상을 선택하도록 구성된다.
다시 말해, 상기 참조 영상 선택 유닛은, 각각의 첫 번째 영상 또는 두 번째 영상이 참조 영상의 둘 이상의 리스트 중에서 참조 영상의 미리 정의된 리스트와 관련 있는 색인에 의해 상기 비디오의 코딩된 영상 블록을 또한 포함하는 비트스트림에서 참조되는지의 여부에 기초하여, 첫 번째 영상 또는 두 번째 영상을 선택하도록 구성되고, 참조 영상의 리스트는 상기 현재 영상에 대한 참조 영상의 위치와 색인을 연관시킨다.
두 개의 참조 영상이 참조 영상의 동일한 미리 정의된 리스트 내의 색인에 의해 비트스트림에서 참조되는 경우, 상기 참조 영상 선택 유닛은 움직임 벡터 개선에 사용될 참조 영상을 상기 참조 영상의 리스트에서 최고 위치를 갖는 영상으로서 선택할 수 있다.
대안적으로, 상기 움직임 벡터 개선에 사용될 참조 영상은 상기 두 개의 영상 중에서 최저 시간 계층 갖는 영상으로서 선택될 수 있다.
상기 움직임 벡터 개선에 사용될 참조 영상은 최저 기본 양자화 값(lowest base quantization value)을 갖는 영상, 또는 현재 영상까지의 거리도 최저인 영상으로서 선택될 수 있다.
다른 접근법으로서, 상기 움직임 벡터 개선에 사용될 참조 영상은 상기 움직임 벡터 개선에 사용될 참조 영상을 가리키는 움직임 벡터의 추정치의 크기가 다른 움직임 벡터의 추정치의 크기보다 작도록 선택될 수 있다.
상기 장치는 상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 결정하기 위한 움직임 벡터 결정 유닛을 더 포함할 수 있다. 이 결정은 움직임 벡터 후보에 의해 참조되는 각각의 영상의 일부와 템플릿의 유사성에 기초하여 움직임 벡터 후보의 세트로부터 그것들을 선택함으로써 수행된다.
복수의 영상을 비트스트림으로 인코딩하기 위한 비디오 인코더는 인터 예측 유닛, 비트스트림 형성기 및 재구성 유닛을 포함한다. 상기 인터 예측 유닛은 예측 유닛뿐만 아니라 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하기 위한 장치를 포함한다.
상기 예측 유닛은 상기 제1 움직임 벡터에 의해 참조되는 제1 참조 영상의 일부 및 상기 제2 움직임 벡터에 의해 참조되는 제2 참조 영상의 일부에 따라 상기 예측 블록을 결정한다. 상기 비트스트림 형성기는 상기 비트스트림에 상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 포함한다. 상기 재구성 유닛은 상기 예측 블록에 따라 현재 블록을 재구성하고 재구성된 블록을 메모리에 저장한다.
비트스트림으로부터 복수의 영상을 디코딩하기 위한 비디오 디코더는 인터 예측 유닛(inter-prediction unit), 비트스트림 파서(bitstream parser) 및 재구성 유닛을 포함한다. 상기 인터 예측 유닛은 예측 유닛뿐만 아니라 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하기 위한 장치를 포함한다. 상기 예측 유닛은 상기 제1 움직임 벡터에 의해 참조되는 상기 제1 참조 영상의 일부와 상기 제2 움직임 벡터에 의해 참조되는 상기 제2 참조 영상의 일부에 따라 상기 예측 블록을 결정한다. 상기 비트스트림 파서는 상기 비트스트림으로부터 상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 획득한다. 상기 재구성 유닛은 상기 예측 블록에 따라 현재 블록을 재구성한다.
방법은 움직임 벡터 개선 및 움직임 벡터 계산을 포함한다. 상기 제1 움직임 벡터의 추정치가 획득된다. 검색 공간은 상기 제1 움직임 벡터의 추정치에 기초하여 지정된다. 상기 검색 공간 내에서 상기 제1 움직임 벡터를 결정할 검색이 수행된다. 상기 제2 움직임 벡터의 추정치가 획득된다. 상기 제2 움직임 벡터의 추정치 및 상기 제1 움직임 벡터에 기초하여, 상기 제2 움직임 벡터가 계산된다. 상기 제2 움직임 벡터는 상기 제2 움직임 벡터의 추정치에, 상기 제1 움직임 벡터와 상기 제1 움직임 벡터의 추정치의 차이의 함수를 가산함으로써 계산된다. 이 함수는 스케일링 및/또는 클리핑을 포함할 수 있다. 스케일링 파라미터의 값은 현재 영상까지의 상기 제1 참조 영상과 상기 제2 참조 영상 각각의 거리 사이의 비율에 의존한다.
상기 방법은 참조 영상을 획득하고 그 중 어느 것이 상기 제1 참조 영상 및 상기 제2 참조 영상인지를 선택하기 위한 참조 영상 선택을 더 포함한다. 이 선택에 따라, 상기 제1 참조 영상 또는 상기 제2 참조 영상이 움직임 벡터 개선에 사용될지를 결정한다. 참조 영상의 리스트는 상기 현재 영상에 대한 참조 영상의 위치와 비트스트림에 포함될 색인을 연관시킨다. 상기 참조 영상 선택은 참조 영상의 미리 정의된 리스트 내의 색인에 의해 비트스트림에서 참조되는지의 여부에 기초하여 상기 제1 참조 영상 및 상기 제2 참조 영상을 선택하도록 수행된다. 상기 두 개의 참조 영상이 참조 영상의 동일한 미리 정의된 리스트 내의 색인에 의해 비트스트림에서 참조되면, 움직임 벡터 개선에 사용될 참조 영상은 상기 참조 영상의 리스트에서 최고 위치를 갖는 영상으로서 선택된다. 대안적으로, 상기 움직임 벡터 개선에 사용될 참조 영상은 상기 두 개의 영상 중에서 최저 시간 계층 갖는 영상으로서 선택될 수 있다. 상기 움직임 벡터 개선에 사용될 참조 영상은 최저 기본 양자화 값을 갖는 영상, 또는 현재 영상까지의 거리도 최저인 영상으로서 선택될 수 있다. 다른 접근법으로서, 상기 움직임 벡터 개선에 사용될 참조 영상은 상기 움직임 벡터 개선에 사용될 참조 영상을 가리키는 움직임 벡터의 추정치의 크기가 다른 움직임 벡터의 추정치의 크기보다 작도록 선택될 수 있다.
상기 방법은 추가로 상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 결정할 수 있다. 이 결정은 움직임 벡터 후보에 의해 참조되는 각각의 영상의 일부와 템플릿의 유사성에 기초하여 움직임 벡터 후보의 세트로부터 그것들을 선택함으로써 수행된다.
복수의 영상을 비트스트림으로 인코딩하기 위한 비디오 인코딩 방법은 인터 예측의 수행, 비트스트림 형성 및 블록 재구성을 포함한다. 상기 인터 예측은 블록 예측뿐만 아니라 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하는 것을 포함한다. 상기 예측은 상기 제1 움직임 벡터에 의해 참조되는 제1 참조 영상의 일부 및 상기 제2 움직임 벡터에 의해 참조되는 제2 참조 영상의 일부에 따라 상기 예측 블록을 결정하는 것을 포함한다. 상기 비트스트림 형성은 상기 비트스트림에 상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 포함한다. 상기 재구성은 상기 예측 블록에 따라 현재 블록을 재구성하고 재구성된 블록을 메모리에 저장하는 것을 포함한다.
비트스트림으로부터 복수의 영상을 디코딩하기 위한 비디오 디코딩 방법은 인터 예측의 수행, 비트스트림 파싱(bitstream parsing) 및 블록 재구성을 포함한다. 상기 인터 예측은 블록 예측뿐만 아니라 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하는 것을 포함한다. 상기 예측은 상기 제1 움직임 벡터에 의해 참조되는 제1 참조 영상의 일부 및 상기 제2 움직임 벡터에 의해 참조되는 제2 참조 영상의 일부에 따라 상기 예측 블록을 결정한다.
상기 비트스트림 파싱은 상기 비트스트림으로부터 상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 획득한다. 상기 재구성은 상기 예측 블록에 따라, 현재 블록을 재구성한다.
본 발명은 유사한 영상 품질을 제공하면서 코딩 성능에 어떠한 영향도 미치지 않고서 움직임 벡터 개선 프로세스에서 검색 후보의 수를 감소시킬 수 있다. 이것은 현재 블록에 대한 하나의 참조 영상에 대해서만 움직임 벡터 개선을 위해 검색을 수행함으로써 달성되는 반면, 동일한 현재 블록의 다른 참조 영상에 대한 다른 움직임 벡터는 개선된 움직임 벡터에 기초하여 계산된다.
이하에서는 첨부도면을 참조하여 예시적인 실시예를 더 상세하게 설명한다.
도 1은 움직임 벡터 도출 및 개선이 채용될 수 있는 인코더의 예시적인 구성을 도시한 블록도이다.
도 2는 움직임 벡터 도출 및 개선이 채용될 수 있은 디코더의 예시적인 구성을 도시한 블록도이다.
도 3은 제1 움직임 벡터의 움직임 벡터 개선을 나타낸 개략도이다.
도 4는 개선된 제1 움직임 벡터에 기초한 제2 움직임 벡터의 움직임 벡터 개선을 나타낸 개략도이다.
도 5는 움직임 벡터 개선 장치를 나타낸 블록도이다.
도 6은 검색 공간의 다양한 구성을 나타낸 개략도이다.
도 7은 일 실시예에 따른 움직임 벡터를 결정하기 위한 방법을 나타낸 개략도이다.
도 8은 일 실시예에 따른 움직임 벡터를 결정하고 인트라 예측(intra-prediction)을 수행하기 위한 인터 예측 유닛을 나타낸 블록도이다.
본 개시는 다중 참조 예측을 위한 움직임 벡터의 결정에 관한 것이다. 이는 비디오의 인코딩 및 디코딩 동안 수행되는 움직임 추정에 사용될 수 있다. 이하에서는, 본 개시의 검색 공간 구성을 채용하는 움직임 추정을 구현할 수 있은 예시적인 인코더 및 디코더를 설명한다.
도 1은 비디오 스트림의 프레임 또는 영상의 입력 블록을 수신하기 위한 입력 및 인코딩된 비디오 비트스트림을 생성하기 위한 출력을 포함하는 인코더(100)를 도시한다. 본 개시에서 용어 "프레임(frame)"은 영상의 동의어로서 사용된다. 그러나 본 발명은 인터레이싱(interlacing)이 적용되는 경우의 분야에도 적용 가능하다는 점에 유의해야 한다. 일반적으로, 영상은 m*n개의 화소를 포함한다. 이것은 이미지 샘플에 대응하고 하나 이상의 색 성분을 포함할 수 있다. 간결함을 위해, 이하의 설명에서는 휘도의 샘플을 의미하는 화소를 언급한다. 그러나 본 발명의 움직임 벡터 검색은 색차(chrominance)를 포함한 임의의 색 성분(color component) 또는 RGB 등과 같은 검색 공간의 성분에 적용될 수 있음에 유의해야 한다. 한편, 하나의 성분에 대해서만 움직임 벡터 추정을 수행하고 결정된 움직임 벡터를 더 많은(또는 모든) 성분에 적용하는 것이 유리할 수 있다.
코딩될 입력 블록은 반드시 동일한 크기를 가질 필요는 없다. 하나의 영상은 상이한 크기의 블록을 포함할 수 있고, 상이한 영상의 블록 래스터(block raster)도 또한 상이할 수 있다.
명시적인 실현에서, 인코더(100)는 예측, 변환, 양자화 및 엔트로피 코딩을 비디오 스트림에 적용하도록 구성된다. 변환, 양자화 및 엔트로피 코딩은 변환 유닛(101), 양자화 유닛(102) 및 엔트로피 인코딩 유닛(103)에 의해 수행되어 각각 인코딩된 비디오 비트스트림을 출력으로서 생성한다.
비디오 스트림은 복수의 프레임을 포함할 수 있고, 각각의 프레임은 인트라 또는 인터 코딩되는 특정 크기의 블록으로 분할된다. 예를 들어, 비디오 스트림의 첫 번째 프레임의 블록은 인트라 예측 유닛(109)에 의해 인트라 코딩된다. 인트라 프레임은 동일한 프레임 내의 정보만을 사용하여 코딩되므로, 독립적으로 디코딩될 수 있고 이는 랜덤 액세스를 위한 비트스트림에서의 진입점을 제공할 수 있다. 비디오 스트림의 다른 프레임의 블록은 인터 예측 유닛(110)에 의해 인터 코딩될 수 있다: 이전에 코딩된 프레임(참조 프레임)으로부터의 정보는 시간 리던던시(time redundancy)를 감소시키기 위해 사용되어, 인터 코딩된 프레임의 각각의 블록이 참조 프레임 내의 블록으로부터 예측된다. 모드 선택 유닛(108)은 프레임의 블록이 인트라 예측 유닛(109)에 의해 처리될 것인지 인터 예측 유닛(110)에 의해 처리될 것인지를 선택하도록 구성된다. 이 블록은 또한 인터 예측의 인트라의 파라미터를 제어한다. 이미지 정보의 리프레시를 가능하게 하기 위해, 인트라 코딩된 블록이 인터 코딩된 프레임 내에 제공될 수 있다. 또한, 인트라 코딩된 블록만을 포함하는 인트라 프레임은 디코딩을 위한 진입점, 즉 디코더가 이전에 코딩된 프레임으로부터의 정보를 갖지 않고 디코딩을 시작할 수 있은 지점을 제공하기 위해 비디오 시퀀스에 규칙적으로 삽입될 수 있다.
인트라 예측 유닛(109)은 블록 예측 유닛이다. 공간적 또는 시간적 예측을 수행하기 위해, 코딩된 블록은 역양자화 유닛(104) 및 역변환 유닛(105)에 의해 추가로 처리될 수 있다. 블록의 재구성 후, 루프 필터링 유닛(106)이 적용되어 디코딩된 이미지의 품질을 더 향상시킨다. 그런 다음 필터링된 블록은 그 후 프레임 버퍼(107)에 저장되는 참조 프레임을 형성한다. 인코더 측에서의 이러한 디코딩 루프(디코더)는 디코더 측에서 재구성된 참조 영상과 동일한 기준 프레임을 생성하는 이점을 제공한다. 따라서, 인코더와 디코더 측은 대응하는 방식으로 동작한다. 여기서 "재구성(reconstruction)"이라는 용어는 디코딩된 잔차 블록에 예측 블록을 가산함으로써 재구성된 블록을 획득하는 것을 지칭한다.
인터 예측 유닛(110)은 인터 코딩될 현재 프레임 또는 영상의 블록 및 하나 또는 수 개의 참조 프레임 또는 영상을 프레임 버퍼(107)로부터 입력으로서 수신한다. 움직임 예측 및 움직임 보상은 인터 예측 유닛(110)에 의해 적용된다. 움직임 추정은 특정 비용 함수에 기초하여 움직임 벡터 및 참조 프레임을 획득하는 데 사용된다. 그 후, 움직임 보상은 참조 프레임의 참조 블록을 현재 프레임으로의 변환, 즉 움직임 벡터에 의해 현재 프레임의 현재 블록을 기술한다. 인터 예측 유닛(110)은 현재 블록에 대한 예측 블록을 출력하며, 상기 예측 블록은 비용 함수를 최소화한다. 예를 들어, 비용 함수는 코딩될 현재 블록과 그 예측 블록 사이의 차이일 수 있다, 즉 비용 함수는 잔차 블록을 최소화한다. 잔차 블록의 최소화는 예컨대, 후보 참조 영상에서 현재 블록과 후보 블록의 모든 화소(샘플) 사이의 절대 값 차의 합(sum of absolute differences, SAD)을 계산하는 것에 기초한다. 그러나 일반적으로, 평균 제곱 오차(mean square error, MSE) 또는 구조적 유사성 메트릭(structural similarity metric, SSIM)과 같은 임의의 다른 유사성 메트릭이 채용될 수 있다.
그러나 비용 함수는 또한 그러한 코딩으로 인한 인터 블록 및/또는 왜곡을 코딩하는데 필요한 비트의 수일 수도 있다. 따라서, 레이트 왜곡 최적화 프로시저(rate-distortion optimization procedure)는 움직임 벡터 선택 및/또는 일반적으로 블록에 대해 인터 또는 인트라 예측을 사용할지 여부 및 어떤 설정을 사용할지와 같은 인코딩 파라미터를 결정하는 데 사용될 수 있다.
인트라 예측 유닛(109)은 인트라 코딩될 현재 프레임 또는 영상의 블록 및 현재 프레임의 이미 재구성된 영역으로부터의 하나 또는 다수의 참조 샘플을 입력으로서 수신한다. 그 후 인트라 예측은 현재 프레임의 참조 샘플의 함수와 관련하여 현재 프레임의 현재 블록의 화소를 기술한다. 인트라 예측 유닛(109)은 현재 블록에 대한 예측 블록을 출력하며, 상기 예측 블록은 코딩될 현재 블록과 그 예측 블록 사이의 차이를 유리하게 최소화한다, 즉 이는 잔차 블록을 최소화한다. 잔차 블록의 최소화는 예컨대, 레이트 왜곡 최적화 프로시저에 기초할 수 있다. 특히, 예측 블록은 참조 샘플의 방향성 보간(directional interpolation)으로서 획득된다. 방향은 레이트 왜곡 최적화에 의해 및/또는 인터 예측과 관련하여 전술한 바와 같은 유사성 척도(similarity measure)를 계산함으로써 결정될 수 있다.
현재 블록과 그 예측, 즉 잔차 블록의 차이는 그 후 변환 유닛(101)에 의해 변환된다. 변환 계수는 양자화 유닛(102)에 의해 양자화되고 엔트로피 인코딩 유닛(103)에 의해 엔트로피 코딩된다. 따라서 생성된 인코딩된 비디오 비트스트림 인트라 코딩된 블록 및 인터 코딩된 블록 및 대응하는 시그널링(예: 모드 지시, 움직임 벡터의 지시 및/또는 인트라 예측 방향)을 포함한다. 변환 유닛(101)은 푸리에 변환(DFT/FFT) 또는 이산 코사인 변환(Discrete Cosine Transformation, DCT)과 같은 선형 변환을 적용할 수 있다. 공간 주파수 도메인으로의 이러한 변환은 결과로서 얻은 계수가 전형적으로 낮은 주파수에서 더 높은 값을 갖는다는 이점을 제공한다. 따라서, 효과적인 계수 스캐닝(예: 지그재그) 및 양자화 후, 결과로서 얻은 값의 시퀀스는 전형적으로 처음에 약간 더 큰 값을 가지고 0의 연속으로 끝난다. 이것은 더욱 효율적인 코딩을 가능하게 한다. 양자화 유닛(102)은 계수 값의 해상도를 감소시킴으로써 실제 비가역적 압축(lossy compression)을 수행한다. 그 후 엔트로피 코딩 유닛(103)은 비트스트림을 생성하기 위해 이진 코드워드(binary codeword)를 계수 값에 할당한다. 엔트로피 코딩 유닛(103)은 또한 시그널링 정보(도 1에 도시되지 않음)를 코딩한다.
도 2는 비디오 디코더(200)를 도시한다. 비디오 디코더(200)는 특히 참조 영상 버퍼(207) 및 블록 예측 유닛인 인트라 예측 유닛(209)을 포함한다. 참조 영상 버퍼(207)는 인코딩된 비디오 비트스트림으로부터 재구성된 적어도 하나의 참조 프레임을 저장하도록 구성되며, 상기 참조 프레임은 인코딩된 비디오 비트스트림의 현재 프레임(현재 디코딩된 프레임)과 다르다. 인트라 예측 유닛(209)은 디코딩될 블록의 추정치인 예측 블록을 생성하도록 구성된다. 인트라 예측 유닛(209)은 참조 영상 버퍼(207)로부터 획득되는 참조 샘플에 기초하여 이 예측을 생성하도록 구성된다.
디코더(200)는 비디오 인코더(100)에 의해 생성된 인코딩된 비디오 비트스트림을 디코딩하도록 구성되며, 바람직하게는 디코더(200)와 인코더(100)는 모두 인코딩/디코딩될 각각의 블록에 대해 동일한 예측을 생성한다. 참조 영상 버퍼(207) 및 인트라 예측 유닛(209)의 특징은 도 1의 참조 영상 버퍼(107) 및 인트라 예측 유닛(109)의 특징과 유사하다.
비디오 디코더(200)는 비디오 인코더(100)에 또한 존재하는 다른 유닛들, 예컨대 비디오 코더(100)의 역양자화 유닛(104), 역변환 유닛(105) 및 루프 필터링 유닛(106)에 각각 대응하는 역양자화 유닛(204), 역변환 유닛(205) 및 루프 필터링 유닛(206)을 포함한다.
엔트로피 디코딩 유닛(203)은 수신된, 인코딩된 비디오 비트스트림을 디코딩하고 그에 따라 양자화된 잔차 변환 계수 및 시그널링 정보를 획득하도록 구성된다. 양자화된 잔차 변환 계수는 역양자화 유닛(204) 및 역변환 유닛(205)에 공급되어 잔차 블록을 생성한다. 잔차 블록은 예측 블록에 부가되고, 이 부가는 디코딩된 비디오를 획득하기 위해 루프 필터링 유닛(206)에 공급된다. 디코딩된 비디오의 프레임은 참조 영상 버퍼(207)에 저장될 수 있고 인터 예측을 위한 참조 프레임으로서 기능한다.
일반적으로, 도 1 및 도 2의 인트라 예측 유닛(109, 209)은 인코딩될 필요가 있거나 디코딩될 필요가 있는 블록에 대한 예측 신호를 생성하기 위해 이미 인코딩된 영역으로부터의 참조 샘플을 사용할 수 있다.
엔트로피 디코딩 유닛(203)은 그 입력으로서 인코딩된 비트스트림을 수신한다. 일반적으로, 비트스트림은 먼저 파싱된다. 즉 시그널링 파라미터 및 잔차가 비트스트림으로부터 추출된다. 전형적으로, 비트스트림의 구문(syntax)과 의미(semantic)는 표준에 의해 정의되어 인코더와 디코더가 상호운용 가능한 방식으로 동작할 수 있다. 전술한 배경기술에서 설명한 바와 같이, 인코딩된 비트스트림은 예측 잔차만을 포함하지는 않는다. 움직임 보상 예측의 경우, 움직임 벡터 지시가 또한 비트스트림으로 코딩되어 디코더에서 그것으로부터 파싱된다. 움직임 벡터 지시는 움직임 벡터가 제공되는 참조 영상 및 움직임 벡터 좌표에 의해 제공될 수 있다. 지금까지, 완전한 움직임 벡터를 코딩하는 것이 고려되었다. 그러나 비트스트림에서 현재 움직임 벡터와 이전 움직임 벡터 간의 차이만이 인코딩될 수도 있다. 이 접근법은 이웃 블록의 움직임 벡터 사이의 리던던시를 이용할 수 있게 해준다.
참조 영상을 효율적으로 코딩하기 위해, H.265 코덱(ITU-T, H265, 시리즈 H: 시청각 및 멀티미디어 시스템: 고효율 비디오 코딩)은 각각의 참조 프레임을 리스트 색인에 할당하는 참조 영상의 리스트를 제공한다. 그 후, 참조 프레임은 그 안에 대응하는 할당된 리스트 색인을 포함함으로써 비트스트림으로 시그널링된다. 이러한 리스트는 표준에서 정의될 수 있거나 비디오 또는 다수의 프레임의 세트의 처음에 시그널링될 수 있다. H.265에는 L0과 L1이라는 두 개의 참조 영상 리스트가 정의되어 있다는 것에 유의하기 바란다. 그 후, 참조 영상은 리스트(L0 또는 L1)를 지시하고 원하는 참조 영상과 연관된 그 리스트 내의 색인을 지시함으로써 비트스트림으로 시그널링된다. 둘 이상의 리스트를 제공하는 것은 더 우수한 압축에 이점이 있을 수 있다. 예를 들어, L0은 단방향 인터 예측 슬라이스 및 양방향 인터 예측 슬라이스 모두에 사용될 수 있은 반면, L1은 양방향 인터 예측 슬라이스에만 사용될 수 있다. 그러나 일반적으로 본 개시는 L0 및 L1 리스트의 어떠한 내용에도 한정되지 않는다.
리스트 L0 및 L1은 표준으로 정의되고 고정될 수 있다. 그러나 비디오 시퀀스의 시초에 그것들을 시그널링함으로써 코딩/디코딩에 더 많은 유연성이 달성될 수 있다. 따라서, 인코더는 색인에 따라 정렬된 특정 참조 영상으로 리스트 L0 및 L1을 구성할 수 있다. L0 및 L1 리스트는 동일한 고정된 크기를 가질 수 있다. 일반적으로 두 개 이상의 리스트가 있을 수 있다. 움직임 벡터는 참조 영상 내의 좌표에 의해 직접 시그널링될 수 있다. 대안적으로, H.265에도 지정되어 있는 바와 같이, 후보 움직임 벡터의 리스트가 구성될 수 있고 리스트 내에서 특정 움직임 벡터와 연관된 색인이 송신될 수 있다.
현재 블록의 움직임 벡터는 일반적으로 현재 영상 또는 이전에 코딩된 영상 내의 이웃 블록의 움직임 벡터와 상관되어 있다. 이는 이웃 블록들은 유사한 움직임을 갖는 동일한 움직이는 객체에 대응할 가능성이 높고, 객체의 움직임은 시간이 지남에 따라 급격하게 변화할 가능성이 낮기 때문이다. 결과적으로, 예측자로서 이웃 블록 내의 움직임 벡터를 사용하는 것은 시그널링된 움직임 벡터 차이의 크기를 감소시킨다. MVP는 일반적으로 공존 영상에서 공간적 이웃 블록 또는 시간적 이웃 블록으로부터 이미 디코딩된 움직임 벡터로부터 도출된다. H.264/AVC에서, 이것은 세 개의 공간적으로 이웃한 움직임 벡터의 성분별 중간 값(component wise median)을 수행함으로써 수행된다. 이 접근법을 사용하면, 예측자의 시그널링은 필요하지 않다. 공존 영상으로부터의 시간적 MVP는 H.264/AVC의 이른바 시간 직접 모드(temporal direct mode)에서만 고려된다. H.264/AVC 직접 모드들은 움직임 벡터 이외의 다른 움직임 데이터를 도출하는 데에도 사용된다. 따라서 그것들은 HEVC에서의 블록 병합 개념과 관련 있다. HEVC에서, MVP를 암시적으로 도출하는 접근법은 움직임 벡터 경쟁(motion vector competition)으로 알려진 기술로 대체되었는데, 이는 MVP 리스트 중에서 어느 MVP가 움직임 벡터 도출에 사용되는지를 명시적으로 시그널링한다. HEVC에서의 가변 코딩 쿼드트리 블록 구조는 잠재적인 MVP 후보로서 움직임 벡터와 함께 몇몇 인접 블록을 갖는 하나의 블록을 결과로서 얻을 수 있다. 왼쪽 이웃을 예로 들면, 최악의 경우, 64x64 루마 코딩 트리 블록이 더 이상 분할되지 않고 왼쪽 블록이 최대 깊이로 분할될 때 64x64 루마 예측 블록은 16개의 4x4 루마 예측 블록을 왼쪽에 가질 수 있다.
이러한 유연한 블록 구조를 설명하기 위한 움직임 벡터 경쟁을 수정하기 위해 AMVP(Advanced Motion Vector Prediction)가 도입되었다. HEVC를 개발하는 중에, 초기 AMVP 설계는 코딩 효율과 구현 친화적 설계 사이의 좋은 트래드오프를 제공하기 위해 크게 단순화되었다. AMVP의 초기 설계는 세 개의 서로 다른 클래스의 예측자, 즉 공간적 이웃으로부터의 세 개의 움직임 벡터, 세 개의 공간적 예측자의 중간 값 및 공존하는, 시간적 이웃 블록으로부터의 스케일링된 움직임 벡터로부터 다섯 개의 MVP를 포함하였다. 또한, 예측자의 리스트는 가장 가능성 있는 움직임 예측자를 첫 번째 위치에 배치하기 위해 재정렬하고 최소의 시그널링 오버헤드를 보장하기 위해 여분의 후보(redundant candidate)를 제거함으로써 수정되었다. AMVP 후보 리스트 구성의 최종 설계는 다음의 두 개의 MVP 후보를 포함한다: a) 다섯 개의 공간적 이웃 블록으로부터 도출되는 최대 두 개의 공간적 후보 MVP; b) 두 개의 공간적 후보 MVP 모두가 이용 가능하지 않거나 동일할 때, 두 개의 시간적, 공존 블록으로부터 도출되는 하나의 시간적 후보 MVP; 및 c) 공간적 후보, 시간적 후보 또는 두 후보 모두가 이용 가능하지 않을 때 영(zero) 움직임 벡터. 움직임 벡터 결정에 대한 자세한 내용은 참고로 여기에 포함되는 다음 책에서 찾을 수 있다: V. Sze et al.(Ed.), HEVC(High Efficiency Video Coding): Algorithms and Architectures, Springer, 2014, 특히 5장.
시그널링 오버헤드의 추가 증가 없이 움직임 벡터 추정을 추가로 향상하기 위해, 인코더 측에서 도출되고 비트스트림으로 제공되는 움직임 벡터를 추가로 개선하는 것이 유리할 수 있다. 움직임 벡터 개선은 인코더의 도움없이 디코더에서 수행될 수 있다. 디코더 루프 내의 인코더는 대응하는 참조 영상을 획득하기 위해 동일한 개선을 채용할 수 있다. 개선은 템플릿을 결정하고, 검색 공간을 결정하고, 검색 공간에서 템플릿과 최고로 매칭되는 참조 영상 부분을 발견함으로써 수행된다. 최고의 매칭 부분 위치는 다음에 현재 블록의 예측자, 즉 재구성되는 현재 블록을 획득하는 데 사용되는 최고의 움직임 벡터를 결정한다.
도 3은 참조 영상의 정수 화소 위치(속인 찬 점(full dot)) 및 분수 화소 위치(속이 빈 점(empty dot))를 포함하는 검색 공간(검색 영역)(310)을 나타낸다. 이 예에서, 분수 화소 위치는 1/2 화소 위치이다. 전술한 바와 같이, 분수 화소 위치는 이중 선형 보간과 같은 보간에 의해 정수(속인 찬 화소(full-pixel) 위치로부터 획득될 수 있다.
현재 블록의 양방향 예측에서, 리스트 L0의 각각의 제1 움직임 벡터 및 리스트 L1의 제2 움직임 벡터를 사용하여 획득된 두 개의 예측 블록은 단일 예측 신호에 결합되며, 이는 단방향 예측보다 원래 신호에 대해 더 나은 적응을 제공할 수 있어, 그 결과 잔차 정보가 줄어들고 압축이 더 효율적일 수 있다. 도 3은 또한 현재 영상로부터의 현재 블록(320)을 나타낸다. 디코더에서, 현재 블록은 디코딩되고 있기 때문에 이용 가능하지 않기 때문에, 움직임 벡터 개선을 위해, 템플릿이 사용되는데, 이는 현재 블록의 추정치이고 이미 처리된(즉, 인코더 측에서 코딩되고 디코딩 측에서 디코딩된) 이미지 부분에 기초하여 구성된다.
템플릿은, 예를 들어, 이미 디코딩된, 즉 현재 블록 이전에 디코딩된 현재 영상에 속하는 샘플에 기초하여 구성될 수 있다. 추가적으로 또는 대안적으로, 이들 샘플은 이전에 디코딩된 참조 영상 중 어딘가에 속할 수 있다. 예로서, 템플릿을 구성하는 데 사용될 샘플은 현재 영상 이전에 디코딩되고 표시 순서에서 현재 영상보다 앞서는 참조 영상에 속할 수 있다. 대안적으로, 샘플은 현재 영상 이전에 디코딩되고 표시 순서에서 현재 영상 다음에 오는 참조 영상에 속할 수 있다. 마지막으로 템플릿은 두 개의 상이한 참조 영상으로부터의 샘플의 조합에 기초하여 구성될 수 있다. 당업자에게 명백한 바와 같이, 현재 블록이 구성된 템플릿을 사용하여 추정될 수 있도록, 탬플릿은 다른 방법을 사용하여 획득될 수 있다.
먼저, 제1 움직임 벡터 MV0의 추정치 및 제2 움직임 벡터 MV1의 추정치는 도 3에 도시된 바와 같이 디코더(200)에서 입력으로서 수신된다. 인코더 측(100)에서, 움직임 벡터 추정치 MV0 및 MV1는 현재 블록(동일한 영상 내 또는 인접한 영상 내)에 이웃한 블록의 움직임 벡터에 의해 형성된 후보의 리스트(예: 병합리스트)에서의 검색에 의해 및/또는 블록 매칭에 의해 획득될 수 있다. 그 후 MV0 및 MV1은 유리하게는 비트스트림 내에서 디코더 측으로 시그널링된다. 그러나 일반적으로, 인코더에서의 첫 번째 결정 단계는 시그널링 오버헤드를 감소시키는 이점을 제공하는 템플릿 매칭에 의해 수행될 수 있음에 유의하기 바란다.
디코더 측(200)에서, 움직임 벡터 MV0 및 MV1는 비트스트림 내의 정보에 기초하여 유리하게 획득된다. MV0 및 MV1는 직접 시그널링되거나, 차동적으로(differentially) 시그널링되고, 및/또는 움직임 벡터의 리스트(병합 리스트) 내의 색인이 시그널링된다. 그러나 본 개시는 비트스트림으로 움직임 벡터를 시그널링하는 것에 한정되지 않는다. 오히려, 움직임 벡터는 인코더의 동작에 대응하여, 첫 번째 단계에서 이미 템플릿 매칭에 의해 결정될 수 있다. 첫 번째 단계(움직임 벡터 도출)의 템플릿 매칭은 두 번째, 개선 단계의 검색 공간과 다른 검색 공간에 기초하여 수행될 수 있다. 특히, 개선은 더 높은 해상도(즉, 검색 위치 간의 거리가 더 짧음)를 갖는 검색 공간에서 수행될 수 있다.
각각의 MV0 및 MV1 지점이 가리키는 두 개의 참조 영상의 지시가 디코더에도 제공된다. 참조 영상은 이전 처리의 결과로서, 즉 각각의 인코딩 및 디코딩의 결과로서 인코더 및 디코더 측에서 참조 영상 버퍼에 저장된다. 이들 참조 영상 중 하나가 검색에 의해 움직임 벡터 개선을 위해 선택된다. 움직임 벡터 결정 장치의 참조 영상 선택 유닛은 MV0이 가리키는 제1 참조 영상과 MV1이 가리키는 제2 참조 영상을 선택하도록 구성된다. 선택한 후에, 참조 영상 선택 유닛은 제1 참조 영상 또는 제2 참조 영상이 움직임 벡터 개선의 성능을 위해 사용되는지를 판정한다. 도 3에서, 움직임 벡터 MV0이 가리키는 제1 참조 영상이 검색을 위해 선택된다. 움직임 벡터 개선을 수행하기 위해, 제1 참조 영상에서의 검색 영역(310)은 움직임 벡터 MV0가 가리키는 후보 위치 주위에 정의된다. 검색 영역(310) 내의 후보 검색 공간 위치는 검색 공간 내에서 템플릿 매칭을 수행하고 절대 차의 합(sum of absolute differences, SAD)과 같은 유사성 메트릭을 결정함으로써, 템플릿 블록과 가장 유사한 블록을 찾기 위해 분석된다. 위에서 언급한 바와 같이, 일 구현예에서, 템플릿은 MV0 및 MV1의 각각의 움직임 벡터를 갖는 두 개의 상이한 참조 영상으로부터의 샘플의 조합에 기초하여 구성된다. 템플릿 매칭은 템플릿과 가장 유사한 검색 영역(310) 내의 지점에 기초하여 블록을 찾기 위해 수행된다. 대안적으로, 다른 구현예에서, 템플릿은 L0에서의 MV0에 기초하여 생성된 예측 블록 P0과 L1에서의 MV1에 기초하여 생성된 예측 블록 P1 사이의 유사성을 찾도록 구성된다. MV0에 대한 개선을 수행하기 위해, 템플릿 매칭은 P0과 P1 사이의 유사성 메트릭(예: SAD)에 의해 결정되는 검색 영역(310) 내의 지점에 기초하여 블록을 찾는 것을 포함한다. 검색 공간(310)의 위치는 템플릿(320)의 좌측 상단 코너가 매칭되는 위치를 나타낸다. 위에서 이미 언급한 바와 같이, 좌측 상단 코너는 단순한 관례이며 중심점(330)과 같은 검색 공간의 임의의 지점이 일반적으로 매칭 위치를 나타내는 데 사용될 수 있다.
최저 SAD 값을 갖는 후보 위치가 움직임 벡터 MV0"로 결정된다. 도 3에서 MV0"가 가리키는 위치는 하프 펠 위치(half-pel position)이며 이는 수평 방향은 동일하게 유지하면서, 수직 방향으로 1.5 화소 위치가 초기 추정치 MV0과 다르다.
본 개시에 따르면, 양방향 예측 또는 다중 참조 예측에 대해, 현재 블록의 적어도 하나의 움직임 벡터는 템플릿 매칭을 수행하는 것이 아니라 현재 블록의 다른 개선된 움직임 벡터에 기초한 계산에 의해 개선된다. 도 4는 이러한 개선을 나타낸다. 특히, 움직임 벡터 MV1"은 제2 템플릿 매칭을 수행하는 대신 움직임 벡터 추정치 MV1과 MV0"-MV0의 함수에 기초하여 계산된다. 도 4의 예에서, 제1 움직임 벡터 MV0"의 결정 및 개선은 도 3을 참조하여 전술한 바와 같이 수행된다. 또한, 움직임 벡터 MV1"는 제2 움직임 벡터 추정치 MV1"에서 MV0"과 MV0의 차이를 감산함으로써 계산된다.
이 접근법은 비디오 시퀀스에서 대부분의 움직임이 "병진 운동(translational motion)" 범주에 속한다는 사실을 이용한다. 병진 운동에서, 객체는 일정한 속도로(적어도 샘플링 시간이 서로 가까운 프레임 사이에서) 움직이고 있다. 이는 객체가 x 방향 및 y 방향으로 동일한 화소 거리만큼 연속 프레임에서 변위된다는 것을 의미한다(시간 샘플링 주기가 시간에 따라 변하지 않는 경우). 본 발명은 병진 운동의 원리를 어느 정도 이용한다.
위의 예에서 제1 움직임 벡터 MV0"는 템플릿 매칭에 의해 개선되었지만 제2 움직임 벡터는 계산으로 개선되었다. 그러나 본 개시에 따르면, 템플릿 매칭에 의해 어느 움직임 벡터가 개선될 것인지 그리고 어느 것이 계산에 의해 결정될 것인지를 설정하기 위해 선택 프로세스가 추가로 수행될 수 있다.
도 5는 움직임 벡터 개선기(motion vector refiner)(500)의 일례의 블록도를 도시한다.
움직임 벡터 개선기(500)는 도 8에 나타낸 바와 같이 움직임 벡터를 결정하기 위한 장치(810) 내에 포함될 수 있다. 이 장치는 도 1에 도시된 인터 예측 유닛(110) 및/또는 도 2에 도시된 인터 예측 유닛(210)을 대체할 수 있는 인터 예측 유닛(800)에 포함될 수 있다.
더욱 구체적으로, 제1 참조 영상에서 제1 움직임 벡터를 결정하고 제2 참조 영상에서 제2 움직임 벡터를 결정하기 위한 장치(810)가 제공된다. 제1 및 제2 움직임 벡터는 현재 영상에서의 영상 블록의 인터 예측에 적용될 수 있다.
장치(810)는 도 5에 상세히 도시된 바와 같이, 제1 움직임 벡터 MV0"의 추정치 MV0을 획득하고 추정치 MV0에 따라 지정되는 검색 공간 내에서 검색을 수행함으로써 제1 움직임 벡터 MV0"'를 결정하도록 구성된 움직임 벡터 개선 유닛(530)을 더 포함하는 움직임 벡터 개선기(500)를 포함한다. 상기 장치는 제2 움직임 벡터 MV1"의 추정 MV1을 획득하고 제2 움직임 벡터 MV1"의 추정치 MV1에 기초하고 제1 움직임 벡터 MV0"에 기초하여 제2 움직임 벡터 MV1"를 계산하도록 구성된 움직임 벡터 계산 유닛(550)을 더 포함한다.
예에서, 상기 장치는 움직임 벡터 계산 유닛(530) 및 움직임 벡터 계산 유닛(550)을 포함하는 제1 브랜치(branch), 및 움직임 벡터 계산 유닛(540) 및 움직임 벡터 계산 유닛(560)을 포함하는 제2 브랜치, 및 두 개의 브랜치 중 하나를 인에이블시키고 다른 하나는 디스에이블시키는 스위치(520)를 포함한다. 제2 브랜치는 제1 브랜치와 유사하며, 제1 움직임 벡터의 추정치인 MV1 및 제2 움직임 벡터의 추정치인 MV0을 처리함으로써 제1 움직임 벡터 MV1" 및 제2 움직임 벡터 MV0"를 출력한다는 점에서 주로 다르다.
더욱 구체적으로, 움직임 벡터 개선 유닛(540)은 제1 움직임 벡터 MV1"의 추정치 MV1를 획득하고 추정치 MV1에 기초하여 지정되는 검색 공간 내에서 검색을 수행함으로써 제1 움직임 벡터 MV1"를 결정하도록 구성된다. 상기 장치는 제2 움직임 벡터 MV0"의 추정치 MV0을 획득하고 제2 움직임 벡터 MV0"의 추정치 MV0 및 제1 움직임 벡터 MV1"에 기초하여 제2 움직임 벡터 MV0"를 계산하도록 구성된 움직임 벡터 계산 유닛(560)을 더 포함한다.
도 5는 결정된 두 개의 각각의 참조 영상에 두 개의 움직임 벡터, 즉 움직임 벡터 MV0" 및 MV1"가 존재하는 양방향 예측에 대한 본 발명의 애플리케이션을 도시한다. 따라서, 또한 템플릿 매칭에 의한 개선을 위한 영상의 선택은 템플릿 매칭을 위해 MV0 및 MV1 중 하나를 취하고 계산을 위해 다른 하나의 MV1 또는 MV0을 각각 유지함으로써 간단히 수행된다.
이러한 디코더 움직임 벡터 개선(decoder motion vector refinement, DMVR) 프로세스는 장치(500)에 의해 수행된다. 움직임 벡터 개선 유닛(530 또는 540)(각각의 움직임 벡터 추정치 MV0 및 MV1 중 어느 것에 따라 템플릿 검색이 수행될 것인지에 의해 달라짐)은 입력(505)에서 각각의 움직임 벡터 추정치 MV0 또는 MV1을 수신하고, MV0 또는 MV1 주위에 검색 영역(310)을 설정한다. 도 3과 도 4에서 검색 영역의 크기는 3x3 정수 화소이고, 1/2 화소는 7x7로 보간되어 있으므로, 총 49개의 위치가 된다. 일반적으로, 검색 영역의 형태 및/또는 크기는 상이할 수 있으며, 본 발명은 검색 영역의 크기 및 형상에 관계없이 작동한다. 검색 영역은 미리 정해진 크기 또는 미리 정의된 크기를 가질 수 있다. 다시 말해, 검색 공간의 형태 및 크기는 표준으로 고정 및 지정될 수 있다. 대안적으로, 몇몇 가능한 형태 및 크기 중 하나가 인코더 설정 내에서 사용자에 의해 수동으로 및/또는 비디오의 콘텐츠에 기초하여 자동으로 선택될 수 있다.
검색 공간의 크기와 모양의 일부 예가 도 6에 도시되어 있다. 속인 찬 삼각형은 검색 공간의 중앙 화소를 나타내고 속이 찬 원은 나머지 검색 공간 위치를 나타낸다. 검색 공간은 분수(1/2 화소, 1/4 화소 등) 보간에 의해 더 확장될 수 있음에 유의하기 바란다. 본 개시는 일반적으로 임의의 특정 화소 패턴으로 한정되지 않는다.
검색 영역 내의 위치 또는 분수 위치 각각에 대해, 현재 블록에 근사한 템플릿을 사용한 템플릿 매칭이 수행되어, 각각의 검색 공간 좌표에 대한 SAD 값을 제공한다. 여기서 정수 화소 해상도 및 1/2 화소 해상도는 검색 공간의 해상도, 즉 프로세스에 입력된 개선되지 않은(non-refined) 움직임 벡터에 대한 검색된 위치의 변위를 설명한다. 결과적으로 검색 좌표는 반드시 이미지 평면의 실제 화소 좌표와 일치하지 않아도 된다. 다시 말해, 검색 공간의 정수 화소(샘플) 해상도는 검색 공간 위치가 참조 이미지의 정수 화소에 위치한다는 것을 반드시 의미하지는 않는다. 특히 초기 움직임 벡터 MV0, MV1이 참조 이미지 내의 분수 화소를 가리키는 경우, 검색 공간의 정수 위치는 참조 이미지의 분수 화소와 일치할 수 있다.
검색 영역에서의 위치의 SAD 값의 비교가 수행되어 최소 SAD 값을 갖는 위치를 결정한다. 최소 SAD 값을 가진 위치는 움직임 벡터 MV0"로서 결정된다. 배경기술에서 언급한 바와 같이, SAD는 단지 예일 뿐이며 MSE, SSIM, 상관 계수 등과 같은 다른 메트릭이 일반적으로 사용될 수 있다. 제2 움직임 벡터 MV1의 추정치와 함께, 결정된 제1 움직임 벡터 MV0"는 움직임 벡터 계산 유닛(550)에 전달되고, 여기서 움직임 벡터 MV1"의 결정(개선)은 계산에 의해 수행된다.
제1 예시적인 접근법으로서, 도 4를 참조하여 이미 전술한 바와 같이, 움직임 벡터 계산 유닛(550)은 제2 움직임 벡터의 추정치에, 제1 움직임 벡터와 제1 움직임 벡터의 추정치의 차이 또는 제1 움직임 벡터와 제1 움직임 벡터의 추정치의 차이의 함수를 가산함으로써 제2 움직임 벡터를 계산하도록 구성된다.
상기 차이를 가산하는 방법은 다음과 같다:
MV1" = MV1 + (MV0 - MV0") (식 1)
이 식 1(음의 차 MV0"-MV0를 가산을 가짐)은 두 개의 참조 영상이 그 중 하나는 현재 영상 앞에 위치하고 그 중 나머지 다른 하나는 현재 영상의 뒤에 위치할 때, 도 4에 도시된 경우에 작용한다. 도 4에서 알 수 있는 바와 같이, 규칙적인 움직임을 외삽(extrapolate)하기 위해, 이전 영상에서 제1 움직임 벡터와 현재 움직임 벡터의 차이는 반전된 부호와 함께 현재 영상 다음의 영상에 투영된다.
MV0 및 MV1에 대한 참조 프레임 모두가 현재 영상의 앞이나 뒤에 위치하면, 부호를 변경하지 않고 차이가 직접 가산되어 다음과 같은 결과를 얻는다:
MV1" = MV1 + (MV0" - MV0) (식 2)
위에서 언급한 전후의 위치는 표시 순서인 것을 의미한다. 비디오에서 영상의 표시 순서는 인코딩/디코딩 순서, 즉 코딩된 영상이 비트스트림에 임베딩된 순서와 상이할 수 있다. 영상의 표시 순서는 영상 순서 카운트(Picture Order Count, POC)에 의해 제공될 수 있다. 특히, H.265/HEVC의 POC는 영상 또는 그 부분인 각각의 슬라이스의 슬라이스 헤더에서 시그널링된다.
두 개의 참조 영상이 현재 화상 다음에 오는 것인지 선행하는 것인지의 여부를 결정하는 데 사용되는 조건은 다음과 같이 파라미터 POC를 사용하여 구현될 수 있다:
(POCi-POC0)*(POCi-POC1)< 0 (식 3)
여기서 POCi는 현재 영상의 표시 순서(시퀀스 번호)이고, POC0은 제1 참조 영상의 표시 순서이고, POC1은 제2 참조 영상의 표시 순서이다. 식 3의 조건이 참이면, 제1 참조 영상이 현재 영상에 선행하고 제2 참조 영상이 현재 영상 다음에 오거나 그 반대인 것도 성립한다. 반면에 식 3의 조건이 참이 아니면, 두 개의 참조 영상이 모두 현재 영상에 선행하거나 또는 모두 현재 영상 다음에 온다. 그러나 두 개의 차이 식 (POCi-POC0)과 (POCi-POC1)의 부호가 동일한지의 여부를 확인할 수 있는 임의의 방식으로 조건이 구현될 수 있다는 것에 유의하기 바란다. 위의 식 3은 비교적 간단한 구현을 위해 곱셈 "*"을 취하는 예일 뿐이다.
차이의 함수를 가산하는 것은 참조 영상 중 하나가 현재 영상에 선행하고 다른 하나는 현재 영상 다음에 오는 양방향 예측의 경우에 다음과 같이 계산될 수 있다(식 3의 조건이 참):
MV1" = MV1 - f(MV0" - MV0) (식 4)
다시, 두 개의 참조 영상이 모두 표시 순서에서 현재 영상에 선행하거나 모두 현재 영상 다음에 오는 경우(식 3의 조건이 거짓), 계산은 부호를 반전시키지 않고 차이를 가산할 것이다:
MV1" = MV1 + f(MV0" - MV0) (식 5)
예를 들어, 함수는 스케일링 및/또는 클리핑을 포함할 수 있다.
함수가 스케일링이면, 움직임 벡터의 계산은 다음과 같다:
MV1" = MV1 - k * (MV0" - MV0) = MV1 + k * (MV0 - MV0"') (식 6)
여기서 "*"는 곱셈(스케일링)을 나타내고 k는 스케일링 파라미터이다. k = 1이면, 식 1이 구해진다. 고정된(미리 정의된) k를 사용하면, 식 6은 참조 영상 중 하나는 현재 화상에 선행하고 다른 하나는 현재 영상 다음에 오는 경우에 적용할 수 있다. 두 개의 참조 영상이 모두 현재 영상에 선행이거나 모두 현재 영상 다음에 오는 경우, 부호를 반전해야 한다:
MV1" = MV1 + k *(MV0" - MV0) = MV1 - k * (MV0 - MV0") (식 7)
일 실시예에 따르면, 스케일링 파라미터의 값은 현재 영상에 대한 첫 번째 영상과 두 번째 영상 각각의 거리 사이의 비율에 의존한다. 따라서, k의 값은 미리 정의되지 않고 고정되지 않고, 움직임 벡터가 정의되는 참조 영상에 따라 변할 수 있다. 예를 들어, 스케일링 인자 k는 다음에 의해 주어질 수 있다:
k = -(POCi-POC1)/(POCi-POC0) (식 8)
스케일링 파라미터는 두 개의 참조 영상이 모두 표시 순서에서 현재 영상의 동인한 쪽(선행 또는 다음)에 있는지 또는 현재 영상의 다른 쪽에 있는지에 따라 부호를 변경하기 때문에, 위의 식 8은 부호의 변화를 이미 고려하고 있다.
현재 영상에 대한 제1 참조 영상과 제2 참조 영상 각각의 거리를 고려하는 것이 유리할 수 있지만, 이들 거리가 서로 다르더라도, 식 1 및 식 2에서와 같이 k = 1을 설정하는 것이 여전히 적용될 수 있다. 이는 더 단순하고 개선된 움직임 벡터의 품질은 개선을 적용하지 않는 것보다 실질적으로 더 높을 수 있다.
스케일링 동작 후에, 라운딩(rounding) 또는 클리핑(clipping) 동작을 적용할 수 있다. 여기에서 라운딩은 입력 값에 가장 가까운 미리 정의된 정확도로 정수 또는 실수를 제공하는 것을 말한다. 클리핑은 입력 값에서 미리 정의된 정확도보다 높은 정밀도로 자릿수를 제거하는 것을 말한다. 이것은 전형적인 계산 시스템에 적용되는 고정 소수점 연산(fixed-point arithme)의 관점에서 특히 유리할 수 있다.
두 개의 참조 영상 중 하나에 대해서만 움직임 벡터 개선이 수행되기 때문에, 템플릿 매칭을 수행하기 위한 검색 공간이 50% 감소된다.
현재 영상에서 현재 블록에 대해 전술한 처리 후에, 두 개의 참조 영상 및 그들의 연관된 각각의 움직임 벡터 MV0" 및 MV1"이 출력(580)에 제공된다. 이들 움직임 벡터는, 예를 들어, 크기 및 형상이 현재 블록에 대응하고 움직임 벡터 MV0"및 MV1"가 가리키는 참조 영상의 각각의 부분을 취하여 획득된 두 개의 각각의 예측자를 평균화함으로써, 현재 블록에 대한 예측자를 결정하는 데 사용된다. 이것은 예측 유닛(890)에 의해 수행된다.
일반적으로, 예측 유닛(890)은 제1 움직임 벡터 MV0"에 의해 참조되는 제1 참조 영상의 일부와 제2 움직임 벡터 MV1"에 의해 참조되는 제2 참조 영상의 일부를 결합하여 예측 블록을 결정한다.
결합된 예측 신호는 단방향 예측보다 원래 신호에 대해 더 우수산 적응을 제공할 수 있어, 그 결과 잔차 정보가 줄어들고 압축이 더 효율적일 수 있다.
이전 단락에서 설명된 바와 같이, 장치(500)의 출력 움직임 벡터 MV0" 및 MV1"은 더 낮은 잔차 정보를 초래할 수 있다. 따라서, 그것들을 사용하면 초기의 움직임 벡터 MV0 및 MV1에 비해 예측 성능을 향상시킬 수 있다. 예측 성능을 더 향상시키기 위해 장치(500)가 여러 번 채용될 수 있음에 유의하기 바란다. 이 경우, 장치(500)의 첫 번째 적용의 출력은 두 번째 적용의 입력으로 간주되고 각각의 적용 후에 움직임 벡터 사이의 등식(식 1∼식 8)은 유지된다. 이 경우, 움직임 벡터 MV0" 및 MV1"은 장치(500)의 첫 번째 적용 후에 현재 블록에 대한 더 나은 추정을 제공하기 때문에, MV 개선기 유닛(530)에서 사용되는 템플릿은 MVO"에 의해 지시되는 샘플 또는 두 번째 적용에서 MV1"가 가리키는 샘플에 기초하여 구성된다.
예시적인 실시예에 따르면, 장치(500)는 두 개의 참조 영상을 획득하고 이들 중 어느 것을 제1 참조 영상 및 제2 참조 영상으로 선택하도록 구성된 참조 영상 선택 유닛(510)을 더 포함한다.
다시 말해, 참조 영상 선택 유닛(510)은 현재 블록에 대해, 그 움직임 벡터 중 어느 것이 템플릿 매칭에 의해 개선될 것이고 어느 것이 다른 개선된 움직임 벡터의 개선을 기초로 계산에 의해 개선될 것인지를 제어한다. 이하에서, 참조 영상 선택 유닛(510)에 의해 선택 프로세스가 어떻게 수행될 수 있는지에 대한 몇몇 예를 제공한다.
도 7은 일 실시예에 따라 제1 참조 영상에서 제1 움직임 벡터를 결정하고 제2 참조 영상에서 제2 움직임 벡터를 결정하기 위한 방법(700)을 나타낸 개략도를 도시한다. 예를 들어, 전술한 디지털 비디오 인코더(100) 또는 디코더(200), 특히 인터 예측 유닛(110) 또는 인터 예측 유닛(210)은 프로세스(700)를 사용하여 현재 영상에서 영상 블록의 인터 예측에 적용될 제1 움직임 벡터 및 제2 움직임 벡터를 획득할 수 있다. 방법(700)은 제1 움직임 벡터의 추정치를 획득하는 단계(701), 제1 움직임 벡터의 추정치에 기초하여 지정되는 검색 공간 내에서 검색을 수행함으로써 제1 움직임 벡터를 결정하는 단계(703), 제2 움직임 벡터의 추정치를 획득하는 단계(705), 및 제2 움직임 벡터의 추정치 및 제1 움직임 벡터에 기초하여 제2 움직임 벡터를 계산하는 단계(707)를 포함한다.
[예 1]
제1 예에서, 참조 영상 선택 유닛(510)은 각각의 움직임 벡터에 속하는 참조 영상이 참조된 리스트에 기초하여 검색 공간 내에서 검색에 의해 움직임 벡터의 어느 것을 결정될 것인지를 결정한다. 특히, 비트스트림 내에서 인코더에서 사용된 것과 동일한 예측자를 복구하기 위해 디코더에 의해 사용되는 예측자 정보를 시그널링하기 위해, 일부 코덱은 참조 영상 리스트에서 특정한 참조 영상과 연관도니 색인을 비트스트림에 포함시킴으로써 참조 영상을 시그널링한다. 예를 들어, 참조 영상의 리스트(참조 영상 리스트)는 인코더 및 디코더 모두에서 이용 가능하고 현재 영상에 대한 각각의 참조 영상의 상대 위치와 색인을 얀관시키는 표일 수 있다.
참조 영상 리스트는 하나 이상 있을 수 있다. 예를 들어, H.265/HEVC에서 일반적으로 참조 영상 리스트 L0 및 참조 영상 리스트 L1이 사용된다. 비트스트림으로 참조 영상을 시그널링하기 위해, 먼저 참조 영상 리스트가 시그널링되고 이어서 시그널링된 참조 영상 리스트 내의 색인이 시그널링된다.
그러면 참조 영상 선택 유닛(510)은 참조 영상의 미리 정의된 리스트 내의 색인에 의해 비트스트림에서 참조되는지의 여부에 기초하여 제1 참조 영상 또는 제2 참조 영상을 선택하도록 유리하게 구성된다. 이와 관련하여, 용어 "미리 정의된(predefined)"은 예를 들어 표준에서 고정적으로 정의되거나 시그널링에서 전체 비디오에 대해 정의되는 것을 의미한다. 예시적으로, 미리 정의된 리스트는 리스트 L0일 수 있다. 그런 다음, 제1 참조 영상이 참조 영상 리스트 L0로부터 참조되는 반면, 두 번째 리스트가 참조 영상 리스트 L1로부터 참조되는 경우, 제1 참조 영상을 가리키는 제1 움직임 벡터는 L0으로부터 참조되었기 때문에 템플릿 매칭에 의해 개선될 것이고, 반면 제2 움직임 벡터는 L0으로부터 참조되지 않았기 때문에 계산 될 것이다. 그러나 미리 정의된 리스트는 L0 리스트로 한정되지 않는다 것에 유의하기 바란다. 사용된 참조 영상 리스트 중 어느 것이든 미리 정의될 수 있다. 일반적으로 L0은 L1보다 가까운 이웃에 참조 영상을 나열한다. 대안적으로, L0은 표시 순서에서 현재 영상보다 선행하는 더 많은 참조 영상을 포함할 수 있은 반면, L1은 표시 순서에서 현재 영상 다음에 오는 더 많은 영상을 포함할 수 있다. 그러나 본 발명은 두 개 이상의 참조 영상 리스트 사이에 어떤 특정한 차이가 있는지에 관계없이 작동한다.
각각의 제1 움직임 벡터 및 제2 움직임 벡터가 가리키는 제1 참조 영상 및 제2 참조 영상 모두가 동일한 참조 영상 리스트로부터 참조되는 상황이 발생할 수 있음에 유의한다. 예를 들어, 제1 참조 영상 및 제2 참조 영상 모두는 미리 정의된 리스트 L0의 영상으로부터 참조될 수 있다. 대안적으로, 현재 코딩 블록이 양방향 예측을 적용하면, 리스트 L0으로부터의 하나의 참조 영상 및 리스트 L1로부터의 하나의 참조 영상이 지시되어야 하며, 여기서 두 참조 영상은 모두 참조 리스트 중 하나(또는 둘 다)에 함께 포함될 수 있다. 그 이유는 참조 영상이 두 리스트(리스트 L0 및 리스트 L1)에 모두 존재할 수 있기 때문이다.
제1 참조 영상 및 제2 참조 영상이 모두 미리 정의된 리스트(예: L0)에 포함되면, 리스트(L0)에서 최고 위치를 갖는 영상이 거기에 지적된 대응하는 움직임 벡터의 템플릿 매칭에 의해 움직임 벡터 개선에 사용되는 참조 영상으로서 선택된다.
두 개의 참조 영상이 모두 미리 정의되지 않은 참조 영상의 리스트(예: L0이 미리 정의되면, L1)에 포함되면, 동일한 선택이 수행될 수 있다. 다시 말해, 참조 영상이 미리 정의된 참조 영상의 리스트 이외의 참조 영상의 리스트로부터 참조되면, 템플릿 매칭 기반의 움직임 벡터 개선을 위해 리스트에서 최고 위치를 갖는 참조 영상이 선택된다.
요컨대, 참조 영상 선택 유닛(510)은, 두 개의 참조 영상이 참조 영상의 동일한 미리 정의된 리스트에서 색인에 의해 비트스트림에서 참조되면, 상기 참조 영상의 리스트에서 최고 위치를 갖는 영상으로서 제1 참조 영상을 선택하도록 구성된다.
이 예는 추가의 지능적인 선택 프로세스 없이 간단한 구현을 제공한다. 특히, 참조 영상 선택 유닛(510)은 스위치(520, 570)을 제어하여, 파싱된 참조 영상 리스트가 미리 정의된 리스트(예: L0)인 경우에, 두 영상 모두가 동일한 리스트에 있으면, 또한 참조 영상의 색인 값에 기초하여, 도 5의 블록도에서 상부 브랜치 또는 하부의 브랜치를 선택한다.
[예 2]
제2 예에 따르면, 참조 영상 선택 유닛(510)은 (템플릿 매칭에 의해 개선될) 제1 참조 영상으로서 현재 블록에 대해 두 개의(또는 그 이상) 참조 영상 중에서 최저 시간 계층을 갖는 영상을 선택하도록 구성된다. 다시 말해, 참조 영상 선택 유닛(510)은 움직임 벡터 MV0 및 MV1가 관련되는 참조 영상의 시간 계층에 따라 상부 브랜치(530, 550) 또는 하부 브랜치(540, 560)를 선택하도록 스위치(520 및 580)를 제어한다.
도 5에서, 상부 브랜치 및 하부 브랜치는 반드시 이중 방식으로 구현될 필요는 없음에 유의하기 바란다. 일반적으로, 본 개시의 임의의 실시예 및 예에서, 단일 움직임 벡터 개선 유닛(530) 및 단일 움직임 벡터 계산 유닛(550)이 제공되고 단지 단일 브랜치로의 입력이 참조 영상 선택 유닛(210)의 제어에 따라 스위칭된다.
특히, 두 개(또는 그 이상)의 참조 영상의 시간 계층이 결정된다. 참조 영상의 시간 계층은 참조 영상이 디코딩되기 전에 디코딩되어야 하는 영상의 수를 지시한다. 시간 계층은 일반적으로 비디오 동영상(video motion picture)을 상이한 시간 계층으로 인코딩하는 디코더에서 설정된다. 이는 비트스트림에 포함될 수 있다. 따라서, 디코더는 비트스트림으로부터의 시그널링 정보에 기초하여 어느 참조 영상이 어느 시간 계층에 속하는지를 결정할 수 있다. 따라서, 그러면, 더 낮은 시간 계층을 갖는 제1 참조 영상 또는 제2 참조 영상이 템플릿 매칭에 의한 움직임 벡터 개선에 사용되는 참조 영상으로서 선택된다. 이 접근법은 덜 이전에 디코딩된 영상에 의존하여 에러 및 아티팩트의 확률이 더 낮은 참조 영상과 매칭되는 템플릿을 선택하는 이점을 제공할 수 있다. 따라서, 움직임 벡터 개선 프로시저는 더욱 탄력적으로 된다.
[예 3]
제3 예에서, 참조 영상 선택 유닛(510)은 최조 기본 양자화 값을 갖는 영상을 (템플릿 매칭에 의해 개선될) 제1 참조 영상으로서 선택하도록 구성된다. 다시 말해, 참조 영상 선택 유닛(510)은 움직임 벡터 MV0 및 MV1가 관련되는 참조 영상의 양자화 파라미터에 따라 상부 브랜치(530, 550) 또는 하부 브랜치(540, 560)를 선택하도록 스위치(520 및 580)를 제어한다.
이 문맥에서 양자화 값 또는 양자화 파라미터는 양자화 단계를 결정할 수 있게 하는 비트스트림에 제공된 정보이다. H.264/AVC 및 H.265/HEVC와 같은 잘 알려진 코덱에서, 양자화 파라미터는 값을 결정할 수 있게 하는데 이 값에 의해 양자화될 계수가 분할될 수 있다. 양자화 값이 클수록 양자화가 거칠어지며, 이는 일반적으로 재구성 후 이미지 품질을 악화시킨다. 따라서, 더 낮은 양자화 값은 더 높은 품질의 재구성된 이미지가 제공될 수 있음을 의미한다. 더 낮은 양자화 파라미터를 갖는 참조 영상의 선택은 더 나은 품질을 갖는 참조 영상이 움직임 벡터 개선을 위해 사용됨을 의미하며, 이는 또한 더 나은 개선 결과로 이어진다.
"기본" 양자화 값이라는 용어는 영상 슬라이스에 공통이고 모든 블록에 대한기본으로서 사용되는 양자화 값을 말한다. 일반적으로, 이러한 값은 예를 들어 슬라이스 헤더에서 시그널링된다. 그러면, 일반적으로, 기본 값과의 차이는 블록 또는 처리 유닛 단위로 시그널링된다.
그러나 본 발명은 임의의 특정 시그널링 또는 그러한 값의 존재로 제한되지 않는다. 양자화 값이 시그널링되는 영상 내의 요소의 양자화 값에 따라 영상에 대한 기본 양자화 값을 결정함으로써 동일한 효과가 달성될 수 있다. 다시 말해, 기본 양자화 값이라는 용어는 영상에 대한 일반적인 양자화 값을 나타낸다.
[예 4]
제4 예에 따르면, 참조 영상 선택 유닛(510)은 현재 영상까지의 거리가 최소인 영상을 제1 참조 영상으로서 선택하도록 구성된다. 다시 말해, 참조 영상 선택 유닛(510)은 각각의 움직임 벡터 MV0와 MV2와 관련된 참조 영상의 현재 영상까지의 거리에 따라 상부 브랜치(530, 550) 또는 하부 브랜치(540, 560)를 선택하도록 스위치(520, 580)를 제어한다.
예를 들어, 각각의 움직임 벡터 MV0 및 MV1과 관련된 각각의 참조 영상의 영상 순서 카운트(POC) 값 POC0 및 POC1과, 현재 영상의 POC 값 POCi 사이의 차이가 결정된다. POC 값은 코딩/디코딩이 아니라 영상의 표시 순서를 지정한다. 따라서, POC = 2인 영상이 POC = 8인 영상 앞에 표시된다. 그러나 본 발명이 H.264/AVC 및 H.265/HEVC와 같은 잘 알려진 코덱에서의 적용에 한정되지 않기 때문에, 참조 영상과 현재 영상 사이의 차이는 특정 POC 파라미터에 의존하지 않고 다른 방식으로 결정될 수 있다는 것에 유의하기 바란다.
더 근접한 참조 영상의 움직임 벡터가 더 정확하고 및/또는 그 움직임 벡터가 가리키는 참조 블록이 현재 블록과 더 유사할 것으로 예상되기 때문에, (참조 영상과 현재 영상 사이의) 절대 POC 차이가 더 작은 움직임 벡터 MV0에 관련된 제1 참조 영상 또는 움직임 벡터 MV1에 관련된 제2 참조 영상이 움짐임 벡터 개선에 사용될 참조 영상으로서 선택된다. 이는 인해 더 나은 품질의 개선을 할 수 있다.
[예 5]
제5 예에 따르면, 참조 영상 선택 유닛은 제1 벡터의 추정치의 크기가 제2 움직임 벡터의 추정치의 크기보다 작도록 제1 참조 영상 및 제2 참조 영상을 선택하도록 구성된다. 다시 말해, 참조 영상 선택 유닛(510)은 각각의 참조 영상에 관련된 움직임 벡터 MV0 및 MV1의 길이(크기)에 따라 상부 브랜치(530, 550) 또는 하부 브랜치(540, 560)를 선택하도록 스위치(520, 580)를 제어한다.
제1 참조 영상 및 제2 참조 영상을 가리키는 움직임 벡터 MV0 및 MV1의 절대 크기는 벡터의 절대 값의 결정을 위한 표준 프로시저를 사용하여 결정된다. 예를 들어, 움직임 벡터의 각각의 벡터 성분의 제곱 값이 합산된다. 이 합 또는 제곱근을 움직임 벡터의 크기로 사용할 수 있지만, 제곱근의 계산은 계산 비용이 더 높다. 개선을 위해 더 작은 크기의 움직임 벡터를 취하는 것이, 영상들 사이의 움직임이 일반적으로 작다고 가정하면, 정확하게 결정될 가능성이 높다는 이점을 제공한다.
제1 움직임 벡터 MV0의 추정치, 제2 움직임 벡터 MV1의 추정치, 그리고 MV0 및 MV1이 참조하는 참조 영상의 색인에 대한 일부 정보가 디코더에서 입력으로서 수신될 수 있다. 움직임 벡터 정보는 일반적으로 블록 단위로 시그널링되며, 블록들은 서로 다른 크기를 가질 수 있다. 참조 영상 지시에 대해서도 마찬가지이다. 엔트로피 디코딩 유닛(203)의 일부로서 구현된 비트스트림 파서는 비트스트림으로부터 움직임 벡터 정보를 획득한다. 움직임 정보는 움직임 벡터의 좌표(현재 영상에서의 현재 블록의 위치와 동일한 참조 영상에서의 블록의 위치에 의해 주어진 지점(0, 0)에 대한 좌표)일 수 있다. 대안적으로, 디코딩 순서에서 현재 블록에 선행하는 블록의 움직임 벡터에 대한 차이가 시그널링될 수 있다. 이것은 유리하게는 현재 블록의 공간적 또는 시간적 이웃 중 하나일 수 있다.
다른 예에 따르면, 움직임 벡터 개선기(500)를 또한 포함하는 움직임 벡터 결정 장치는, 제1 움직임 벡터의 추정치 및 제2 움직임 벡터의 추정치를, 움직임 벡터 후보에 의해 참조되는 각각의 영상의 일부와 템플릿의 유사성에 기초하여 움직임 벡터 후보의 세트로부터 그것들을 선택함으로써 결정하도록 구성된 움직임 벡터 추정 유닛을 더 포함한다. 다시 말해, (MV0 및 MV1의) 움직임 벡터 결정은 반드시 참조 영상에 정의된 검색 공간에서의 템플릿 매칭에 기초할 필요는 없다. 검색 공간은 현재 블록에 근접한 공간적으로 또는 시간적으로 인접한 블록 또는 블록들 각각의 움직임 벡터와 연련된 색인을 열거하는 (병합) 리스트에 의해 제공될 수 있다. 즉, 본 발명은 움직임 벡터 추정치 MV0 및 MV1이 개선을 위해 제공되기 전에 도출되는 방식에 의해 제한되지 않는다.
요컨대, 리스트 L0의 움직임 벡터(MV) 및 리스트 L1의 MV로부터 각각, 하나의 코딩 블록, 두 개의 예측 블록의 양방향 예측 동작이 단일 예측 신호에 결합되어, 이는 단방향 예측보다 원래 신호에 대해 더 나은 적응을 제공할 수 있어, 그 결과 잔차 정보가 줄어들고 압축이 더 효율적일 수 있다. 현재 영상에서 현재 블록에 대한 양방향 예측 디코딩 처리는 다음의 처리 단계를 포함한다.
먼저, 디코더 측에서 제1 움직임 벡터 MV0의 추정치 및 제2 움직임 벡터 MV1의 추정치가 입력으로서 수신된다. MV0 및 MV1이 가리키는 두 개의 참조 영상은 현재 영상의 처리 전에 이미 디코딩되었기 때문에 디코더의 영상 버퍼에 있다. MV0이 가리키는 참조 영상을 예시하기 위해, 이들 참조 영상 중 하나가 템플릿 매칭에 의한 움직임 벡터 개선을 위해 선택된다. 움직임 벡터 개선을 수행하기 위해, MV0이 가리키는 참조 영상 내의 참조 영역은 선택된 MVO가 가리키는 후보 지점 주위에 정의된다. 검색 영역 내의 후보 검색 공간 위치는 현재 블록 공간과 템플릿 매칭을 수행하고 유사성 척도를 결정함으로써 분석된다. 최저 비유사성 값(lowest dissimilarity value)을 가진 후보 검색 공간 위치가 움직임 벡터 MV0"로 결정된다. 움직임 벡터 MV1"는 두 번째 템플릿 매칭을 수행하는 대신 MV1 및 MV0"-MV0의 함수에 기초하여 계산된다.
본 발명의 일 실시예에 따르면, 유사성 비교는 MV0"가 가리키는 샘플과 MV1"가 가리키는 샘플을 비교함으로써 수행된다. 도 4에 따르면, 검색 공간(310)에서 MV0"가 가리키는 임의의 지점은 식 1∼식 8 중 하나 이상의 삭에 의해 주어지는 대응하는 움직임 벡터 MV1"를 갖는다. 템플릿 매칭 프로세스에서 샘플 블록들 간의 유사성을 비교하기 위해, MV0"이 가리키는 샘플 블록과 MV1"이 가리키는 샘플 블록은 SAD 함수과 같은 함수에 사용할 수 있다. 이 경우, 템플릿은 MV1에 의해 참조되는 참조 영상에 속하는 샘플로만 구성되며, 움직임 벡터 개선 동작은 MV0에 대해 수행된다. 또한, 템플릿은 검색 공간(310)의 각각의 지점마다 약간 변경된다.
보다 구체적으로 실시예에 따르면 다음 단계들이 적용된다:
단계 1: 입력 움직임 벡터 MV0가 가리키는 샘플과 입력 움직임 벡터 MV1가 가리키는 샘플 사이의 유사성이 계산된다. 입력 움직임 벡터 MV0는 검색 공간에서 지점(330)을 가리킨다.
단계 2: 검색 공간(310)에서 지점(330)과 다른 제2 지점이 선택된다. 제2 지점은 MV0"로 표시된다.
단계 3: 움직임 벡터 MV1"는 MV0", MV0 및 MV1에 기초하여, 식 1∼식 8 중 하나 이상을 사용하여 계산된다.
단계 4: 입력 움직임 벡터 MV0"가 가리키는 샘플과 입력 움직임 벡터 MV1"가 가리키는 샘플 간의 유사성이 계산된다. 유사성이 단계 1에서 계산된 값보다 높으면, MV0"와 MV1" 쌍이 개선된 움직임 벡터로서 선택된다. 그렇지 않으면 MV0 및 MV1 쌍(즉, 초기 움직임 벡터 쌍)이 개선된 움직임 벡터로서 선택된다.
단계 2, 단계 3 및 단계 4는 검색 공간(310) 내의 더 많은 후보 지점을 평가하기 위해 반복될 수 있다. 검색 공간에 검색 지점이 남아 있지 않으면, 개선된 움직임 벡터는 최종 개선된 움직임 벡터로서 출력된다.
단계 4에서, 유사성 메트릭(예: SAD, SSIM 등)이 식 1∼식 8 중 하나 이상에 따라, 대응하는 것이 초기 움직임 벡터 MV1인 초기 움직임 벡터 MV0가 가리키는 초기 지점(330)에서 최고의 유사성을 초래할 수 있음이 명백하다. 이것이 그 경우이면, 개선된 움직임 벡터 따라서 움직임 벡터 개선 프로세스의 출력은 MV0 및 MV1인 것으로 간주되된다.
장치(500)의 출력인 임의의 벡터 쌍 MV0"와 MV1"은 식 1∼식 8 중 하나 이상에 기술된 규칙을 따라야 한다. 템플릿 매칭 동작에 사용되는 템플릿 구성 및 유사성 메트릭의 구체적인 사항은 본 발명 및 그 이점에 영향을 미치지 않으면서 변경될 수 있는데, 이는 두 개의 움직임 벡터의 쌍으로 확인될 검색 지점의 감소이다.
본 발명의 일 실시예에 따르면, 전술한 바와 같이 인터 예측 유닛에서 수행된 양방향 예측 처리와는 별도로, 인코딩 및 디코딩을 위한 다른 처리 단계는 표준 H.265/HEVC를 따른다.
그러나 일반적으로, 본 발명은 비트스트림으로부터 복수의 영상을 디코딩하기 위한 임의의 비디오 디코더에 적용 가능하다. 그러면, 이러한 디코더는 제1항 내지 제11항 중 어느 한 항에 따른 장치와 제1 움직임 벡터에 의해 참조되는 제1 참조 영상의 일부 및 제2 움직임 벡터에 의해 참조되는 제2 참조 영상의 일부에 따라 예측 블록을 결정하기 위한 예측 유닛을 포함하는 인터 예측 유닛을 포함할 수 있다. 디코더는 비트스트림 파서를 더 포함할 수 있다. 비트스트림 파서는, 예를 들어 엔트로피 디코딩 유닛(203)의 일부로서 구현될 수 있고 비트스트림으로부터 제1 움직임 벡터의 추정치 및 제2 움직임 벡터의 추정치를 획득하도록 구성될 수 있다. 비디오 디코더는 예측 블록에 따라 현재 블록을 재구성하도록 구성된 재구성 유닛(211)을 더 포함 할 수 있다.
한편, 복수의 영상을 비트스트림으로 인코딩하기 위한 비디오 인코더는, 제1항 내지 제12항 중 어느 한 항에 따른 장치 및 제1 움직임 벡터에 의해 참조되는 제1 참조 영상의 일부 및 제2 움직임 벡터에 의해 참조되는 제2 참조 영상의 일부에 따라 예측 블록을 결정하기 위한 예측 유닛을 포함하는 인터 예측 유닛, 엔트로피 인코딩 유닛(103)의 일부로서 구현되고 비트스트림에 제1 움직임 벡터의 추정 및 제2 움직임 벡터의 추정을 포함하도록 구성된 비트스트림 형성기, 및 예측 블록에 따라 현재 블록을 재구성하고 재구성된 블록을 메모리에 저장하도록 구성된 재구성 유닛(111)을 포함할 수 있다.
전술한 인터 예측 디코딩 처리는 두 개의 참조 영상의 사용에 한정되지 않는다. 대안적으로, 둘 이상의 참조 영상 및 연관된 움직임 벡터가 고려될 수 있다. 이 경우, 참조 영상 선택 유닛은 둘 이상의 영상을 선택하고, 그 중 하나의 참조 영상이 움직 벡터 개선에 사용된다. 움직임 벡터 개선에 사용되는 참조 영상의 선택은 위에서 논의된 예 1∼예 5에 기술된 접근법 중 하나를 사용하고 있다. 나머지 움직임 벡터는 각각의 움직임 벡터의 추정치 및 움직임 벡터 개선에 기인한 움직임 벡터를 사용하여 조정된다. 다시 말해, 다중 참조 예측이 수행되는 경우, 전술한 바와 같은 본 발명이 작동할 수도 있다. 예를 들어, 세 개의 참조 영상 및 세 개의 각각의 움직임 벡터가 존재하면, 세 개의 움직임 벡터 중 하나는 템플릿 매칭에 의한 개선에 의해 결정될 수 있고 다른 두 개는 계산될 수 있다. 이것은 복잡도 감소를 제공한다. 대안적으로, 움직임 벡터 중 두 개는 템플릿 매칭에 의한 개선에 의해 결정되고 하나는 개선된 움직임 벡터 중 하나 또는 둘 모두에 기초하여 계산된다. 당업자에게 명백한 바와 같이, 본 발명은 현재 블록에 대한 예측자를 구성하는 데 사용되는 임의의 수의 참조 영상 및 대응하는 움직임 벡터로 확장 가능하다.
본 발명은 처리 부하 및 메모리 요구가 감소된 디코더에서 양방향 예측을 수행할 수 있게 하는 효과를 갖는다. 본 발명은 임의의 디코더에 적용될 수 있고, 코딩 기기 및/또는 디코딩 기기, 즉 인코더 측 또는 디코더 측에 포함될 수 있다.
전술한 바와 같은 움직임 벡터 개선은 비디오 신호(동영상)의 인코딩 및/또는 디코딩의 일부로서 구현될 수 있다. 그러나 움직임 벡터 개선은 또한 움직임 검출, 움직임 분석 등과 같은 이미지 처리에서 다른 목적으로 사용될 수도 있다.
움직임 벡터 개선은 장치로서 구현될 수 있다. 이러한 장치는 소프트웨어 및 하드웨어의 조합일 수 있다. 예를 들어, 움직임 벡터 개선은 범용 프로세서, DSP(digital signal processor) 또는 FPGA(Field Programmable Gate Array) 등과 같은 칩에 의해 수행될 수 있다. 그러나 본 발명은 프로그램 가능한 하드웨어상의 구현으로 한정되지 않는다. 본 발명은 ASIC(application-specific integrated circuit)상에서 또는 위에서 언급된 하드웨어 구성요소의 조합에 의해 구현될 수 있다.
움직임 벡터 개선은 또한 컴퓨터 판독 가능 매체에 저장된 프로그램 명령어에 의해 구현될 수 있다. 프로그램은 실행될 때, 컴퓨터로 하여금 움직임 벡터의 추정치를 획득하는 단계, 추정치에 기초하여 제1 참조 영상 및 제2 참조 영상을 결정하는 단계, 제1 움직임 벡터의 움직임 벡터 개선을 수행하는 단계, 움직임의 추정치 및 개선 후의 제1 움직임 벡터에 기초하여 제2 움직임 벡터를 계산하는 단계를 수행하게 한다. 컴퓨터로 판독 가능한 매체는 프로그램이 저장되는 임의의 매체, 예컨대 DVD, CD, USB(플래시) 드라이브, 하드 디스크, 네트워크를 통해 이용 가능한 서버 저장장치 등일 수 있다.
인코더 및/또는 디코더는 TV 세트, 셋톱 박스, PC, 태블릿, 스마트폰 등을 포함하는 다양한 기기에 구현될 수 있다. 이는 방법 단계를 구현하는 소프트웨어, 앱일 수 있다.

Claims (14)

  1. 비디오의 제1 참조 영상과 연관된 제1 움직임 벡터(MV0")를 결정하고 상기 비디오의 제2 참조 영상과 연관된 제2 움직임 벡터(MV1")를 결정하기 위한 장치 - 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터는 현재 영상에서 상기 비디오의 영상 블록의 인터 예측에 적용됨 - 로서,
    상기 제1 움직임 벡터의 추정치(MV0)를 획득하고, 상기 제1 움직임 벡터의 추정치에 기초하여 지정되는 검색 공간(310) 내에서 검색을 수행함으로써 상기 제1 움직임 벡터를 결정하도록 구성된 움직임 벡터 개선 유닛(motion vector refinement unit)(530), 및
    상기 제2 움직임 벡터의 추정치(MV1)를 획득하고, 상기 제1 움직임 벡터를 결정하기 위한 상기 검색이 수행된 후에, 상기 제1 움직임 벡터와 상기 제1 움직임 벡터의 추정치(MV0) 사이의 음의 차이(negative difference)를 상기 제1 움직임 벡터(MV1)의 추정치에 더함으로써 상기 제2 움직임 벡터를 계산하도록 구성된 움직임 벡터 계산 유닛(550)
    을 포함하는 장치.
  2. 제1항에 있어서,
    상기 장치가,
    두 개의 참조 영상을 획득하고 상기 두 개의 참조 영상 중에서 상기 제1 참조 영상을 선택하고 상기 두 개의 참조 영상 중에서 상기 제2 참조 영상을 선택하도록 구성된 참조 영상 선택 유닛(510)
    을 더 포함하는 장치.
  3. 제2항에 있어서,
    상기 참조 영상 선택 유닛(510)은, 각각의 첫 번째 영상 또는 두 번째 영상이 참조 영상의 둘 이상의 리스트 중에서 참조 영상의 미리 정의된 리스트와 관련 있는 색인에 의해 상기 비디오의 코딩된 영상 블록을 또한 포함하는 비트스트림에서 참조되는지의 여부에 기초하여, 첫 번째 영상 또는 두 번째 영상을 선택하도록 구성되고, 참조 영상의 리스트는 상기 현재 영상에 대한 참조 영상의 위치와 색인을 연관시키는, 장치.
  4. 제3항에 있어서,
    상기 참조 영상 선택 유닛(510)은, 상기 두 개의 참조 영상이 참조 영상의 동일한 미리 정의된 리스트 내의 색인에 의해 상기 비트스트림에서 참조되면, 상기 참조 영상의 리스트에서 최고 위치를 갖는 영상을 상기 제1 참조 영상으로서 선택하도록 구성되는, 장치.
  5. 제2항에 있어서,
    상기 참조 영상 선택 유닛(510)은 상기 두 개의 영상 중에서 최저 시간 계층을 갖는 영상을 상기 제1 참조 영상으로서 선택하도록 구성되는, 장치.
  6. 제2항에 있어서,
    상기 참조 영상 선택 유닛(510)은 최저 기본 양자화 값을 갖는 영상을 상기 제1 참조 영상으로서 선택하도록 구성되는, 장치.
  7. 제2항에 있어서,
    상기 참조 영상 선택 유닛(510)은 상기 현재 영상까지의 거리가 최저인 영상을 상기 제1 참조 영상으로서 선택하도록 구성되는, 영상 처리 장치.
  8. 제2항에 있어서,
    상기 참조 영상 선택 유닛(510)은 상기 제1 움직임 벡터의 추정치가 상기 제2 추정치보다 크기가 작도록 상기 제1 참조 영상 및 상기 제2 참조 영상을 선택하도록 구성되는, 장치.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 장치가,
    상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를, 각각의 움직임 벡터 후보에 의해 참조되는 영상의 일부와 템플릿의 유사성에 기초하여 움직임 벡터 후보의 세트로부터 그것들을 선택함으로써 결정하도록 구성된 움직임 벡터 추정기(motion vector estimator)(820)
    를 더 포함하는 장치.
  10. 비트스트림으로부터 복수의 영상을 디코딩하기 위한 비디오 디코더(200)로서,
    제1항 내지 제9항 중 어느 한 항에 따른 장치, 및 상기 제1 움직임 벡터에 의해 참조되는 상기 제1 참조 영상의 일부와 상기 제2 움직임 벡터에 의해 참조되는 상기 제2 참조 영상의 일부에 따라 예측 블록을 결정하도록 구성된 예측 유닛을 포함하는 인터 예측 유닛(inter-prediction unit)(210),
    상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 결정하기 위한 정보를 비트스트림으로부터 획득하도록 구성된 비트스트림 파서(bitstream parser)(203), 및
    상기 예측 블록에 따라 현재 블록을 재구성하도록 구성된 재구성 유닛(211)
    을 포함하는 비디오 디코더.
  11. 복수의 영상을 비트스트림으로 인코딩하기 위한 비디오 인코더(100)로서,
    제1항 내지 제10항 중 어느 한 항에 따른 장치, 및 상기 제1 움직임 벡터에 의해 참조되는 상기 제1 참조 영상의 일부와 상기 제2 움직임 벡터에 의해 참조되는 상기 제2 참조 영상의 일부에 따라 예측 블록을 결정하도록 구성된 예측 유닛을 포함하는 인터 예측 유닛(110),
    상기 제1 움직임 벡터의 추정치 및 상기 제2 움직임 벡터의 추정치를 결정하기 위한 정보를 비트스트림에 포함하도록 구성된 비트스트림 형성기(bitstream former)(103), 및
    상기 예측 블록에 따라 현재 블록을 재구성하고 재구성된 블록을 메모리에 저장하도록 구성된 재구성 유닛(111)
    을 포함하는 비디오 인코더.
  12. 비디오의 제1 참조 영상과 연관된 제1 움직임 벡터(MV0")를 결정하고 상기 비디오의 제2 참조 영상과 연관된 제2 움직임 벡터(MV1")를 결정하기 위한 방법(700) - 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터는 현재 영상에서 상기 비디오의 영상 블록의 인터 예측에 적용됨 -으로서,
    상기 제1 움직임 벡터의 추정치(MV0)를 획득하는 단계(701),
    상기 제1 움직임 벡터의 추정치에 기초하여 지정되는 검색 공간(310) 내에서 검색을 수행함으로써 상기 제1 움직임 벡터를 결정하는 단계(703),
    상기 제2 움직임 벡터의 추정치(MV1)를 획득하는 단계(705), 및
    상기 제1 움직임 벡터를 결정하기 위한 상기 검색이 수행된 후에, 상기 제1 움직임 벡터(MV0")와 상기 제1 움직임 벡터의 추정치(MV0) 사이의 음의 차이(negative difference)를 상기 제1 움직임 벡터(MV1)의 추정치에 더함으로써 상기 제2 움직임 벡터(MV1")를 계산하는 단계(707)
    를 포함하는 방법.
  13. 비디오 인코딩 방법으로서,
    제1 움직임 벡터의 추정치(MV0)를 획득하는 단계(701);
    상기 제1 움직임 벡터의 추정치에 기초하여 지정되는 검색 공간(310) 내에서 검색을 수행함으로써 상기 제1 움직임 벡터를 결정하는 단계(703);
    제2 움직임 벡터의 추정치(MV1)를 획득하는 단계(705);
    상기 제1 움직임 벡터를 결정하기 위한 상기 검색이 수행된 후에, 상기 제1 움직임 벡터(MV0")와 상기 제1 움직임 벡터의 추정치(MV0) 사이의 음의 차이(negative difference)를 상기 제1 움직임 벡터(MV1)의 추정치에 더함으로써 상기 제2 움직임 벡터(MV1")를 계산하는 단계(707); 및
    상기 제1 움직임 벡터와 상기 제2 움직임 벡터를 사용하는 인터 예측에 기초하여 인코딩된 현재 블록을 포함하는 비트스트림을 생성하는 단계
    를 포함하는 방법.
  14. 비디오 인코딩 방법에 의해 생성 가능한 비트스트림으로서,
    상기 비디오 인코딩 방법이,
    제1 움직임 벡터의 추정치(MV0)를 획득하는 단계(701);
    상기 제1 움직임 벡터의 추정치에 기초하여 지정되는 검색 공간(310) 내에서 검색을 수행함으로써 상기 제1 움직임 벡터를 결정하는 단계(703);
    제2 움직임 벡터의 추정치(MV1)를 획득하는 단계(705);
    상기 제1 움직임 벡터를 결정하기 위한 상기 검색이 수행된 후에, 상기 제1 움직임 벡터(MV0")와 상기 제1 움직임 벡터의 추정치(MV0) 사이의 음의 차이(negative difference)를 상기 제1 움직임 벡터(MV1)의 추정치에 더함으로써 상기 제2 움직임 벡터(MV1")를 계산하는 단계(707); 및
    상기 제1 움직임 벡터와 상기 제2 움직임 벡터를 사용하는 인터 예측에 기초하여 인코딩된 현재 블록을 포함하는 비트스트림을 생성하는 단계
    를 포함하는, 비트스트림.
KR1020237028327A 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선 KR20230125348A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
PCT/EP2017/066342 WO2019001741A1 (en) 2017-06-30 2017-06-30 MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
EPPCT/EP2017/066342 2017-06-30
PCT/EP2018/058203 WO2019001786A1 (en) 2017-06-30 2018-03-29 MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
KR1020227033842A KR102570488B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020227033842A Division KR102570488B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선

Publications (1)

Publication Number Publication Date
KR20230125348A true KR20230125348A (ko) 2023-08-29

Family

ID=59258246

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217042264A KR102450443B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선
KR1020207000614A KR102344430B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선
KR1020227033842A KR102570488B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선
KR1020237028327A KR20230125348A (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020217042264A KR102450443B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선
KR1020207000614A KR102344430B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선
KR1020227033842A KR102570488B1 (ko) 2017-06-30 2018-03-29 다중 참조 예측을 위한 움직임 벡터 개선

Country Status (19)

Country Link
US (4) US11463726B2 (ko)
EP (3) EP3635956A1 (ko)
JP (3) JP6977068B2 (ko)
KR (4) KR102450443B1 (ko)
CN (3) CN110809887B (ko)
AU (1) AU2018294206B2 (ko)
BR (1) BR112019027261A2 (ko)
CA (1) CA3068332C (ko)
CL (1) CL2019003880A1 (ko)
ES (1) ES2963978T3 (ko)
FI (1) FI3632104T3 (ko)
HU (1) HUE064054T2 (ko)
IL (1) IL271762B2 (ko)
MX (1) MX2019015871A (ko)
PL (1) PL3632104T3 (ko)
PT (1) PT3632104T (ko)
SG (1) SG11201911978TA (ko)
UA (1) UA126919C2 (ko)
WO (3) WO2019001741A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019001741A1 (en) 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
CN110692248B (zh) * 2017-08-29 2024-01-02 株式会社Kt 视频信号处理方法及装置
CN117336504A (zh) 2017-12-31 2024-01-02 华为技术有限公司 图像预测方法、装置以及编解码器
EP3777176A4 (en) * 2018-03-30 2022-08-17 Hulu, LLC TEMPLATE REFINED BI PREDICTION FOR VIDEO CODING
WO2019234668A1 (en) * 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Sub-block dmvr
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制
WO2020084475A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Utilization of refined motion vector
CN111083484B (zh) 2018-10-22 2024-06-28 北京字节跳动网络技术有限公司 基于子块的预测
CN111436227B (zh) 2018-11-12 2024-03-29 北京字节跳动网络技术有限公司 在视频处理中使用组合帧间-帧内预测
JP7241870B2 (ja) 2018-11-20 2023-03-17 北京字節跳動網絡技術有限公司 部分的な位置に基づく差分計算
CN113170097B (zh) 2018-11-20 2024-04-09 北京字节跳动网络技术有限公司 视频编解码模式的编解码和解码
US11095900B2 (en) * 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
US11252431B2 (en) * 2019-01-02 2022-02-15 Telefonaktiebolaget Lm Ericsson (Publ) Side motion refinement in video encoding/decoding systems
PT3912352T (pt) * 2019-02-22 2023-11-21 Huawei Tech Co Ltd Término antecipado para refinamento de fluxo óptico
EP3915259A4 (en) 2019-03-06 2022-03-30 Beijing Bytedance Network Technology Co., Ltd. USE OF A CONVERTED UNIVERSITY PREDICTION CANDIDATE
CN117834906A (zh) * 2019-03-08 2024-04-05 华为技术有限公司 运动矢量细化的搜索区域
CN112866703B (zh) * 2019-03-11 2022-09-30 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113475076B (zh) 2019-03-11 2024-03-12 阿里巴巴集团控股有限公司 用于对视频数据进行编码的帧间预测方法
CN113574893B (zh) * 2019-03-11 2024-04-16 瑞典爱立信有限公司 运动细化和加权预测
KR20230169434A (ko) 2019-04-02 2023-12-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 디코더 측 움직임 벡터 유도
US11736720B2 (en) * 2019-09-03 2023-08-22 Tencent America LLC Motion vector refinement methods for video encoding
CN115336280A (zh) * 2020-03-31 2022-11-11 北京达佳互联信息技术有限公司 用于视频编解码中的高级语法的方法和设备
EP4128792A4 (en) 2020-04-03 2023-05-24 Beijing Dajia Internet Information Technology Co., Ltd. METHODS AND DEVICES FOR HIGH-LEVEL SYNTAX IN VIDEO CODING
US11671616B2 (en) 2021-03-12 2023-06-06 Lemon Inc. Motion candidate derivation
US20220295090A1 (en) * 2021-03-12 2022-09-15 Lemon Inc. Motion candidate derivation
US11936899B2 (en) 2021-03-12 2024-03-19 Lemon Inc. Methods and systems for motion candidate derivation
CN117356095A (zh) * 2021-04-21 2024-01-05 抖音视界有限公司 用于视频处理的方法、设备和介质
US11895302B2 (en) * 2021-06-29 2024-02-06 Qualcomm Incorporated Adaptive bilateral matching for decoder side motion vector refinement
US12132885B2 (en) * 2021-09-16 2024-10-29 Qualcomm Incorporated Multiple inter predictors with decoder side motion vector derivation for video coding
US12114009B2 (en) * 2021-09-22 2024-10-08 Tencent America LLC Method and apparatus for adaptive reordering for reference frames
CN114161197B (zh) * 2021-12-22 2023-09-15 中国科学技术大学 一种偏心工件自动校正方法、系统、设备及存储介质
CN118525517A (zh) * 2022-01-13 2024-08-20 Lg电子株式会社 图像编码/解码方法和设备及存储有比特流的记录介质
WO2024076220A1 (ko) * 2022-10-07 2024-04-11 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2024117694A1 (ko) * 2022-12-01 2024-06-06 현대자동차주식회사 템플릿 매칭 기반 인터 예측을 이용하는 비디오 코딩을 위한 방법 및 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003077567A1 (en) * 2002-03-14 2003-09-18 Matsushita Electric Industrial Co., Ltd. Motion vector detection method
KR101377660B1 (ko) * 2008-09-30 2014-03-26 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR20110022133A (ko) * 2009-08-27 2011-03-07 삼성전자주식회사 영상의 움직임 추정방법 및 영상처리장치
TW201204054A (en) * 2010-01-14 2012-01-16 Intel Corp Techniques for motion estimation
US20120281759A1 (en) * 2010-03-31 2012-11-08 Lidong Xu Power efficient motion estimation techniques for video encoding
US9357229B2 (en) * 2010-07-28 2016-05-31 Qualcomm Incorporated Coding motion vectors in video coding
JP5786498B2 (ja) * 2011-06-30 2015-09-30 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム
US10785498B2 (en) * 2012-11-27 2020-09-22 Squid Design Systems Pvt Ltd System and method of mapping multiple reference frame motion estimation on multi-core DSP architecture
JP5983430B2 (ja) * 2013-01-25 2016-08-31 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
JP6271888B2 (ja) * 2013-07-12 2018-01-31 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US10097851B2 (en) * 2014-03-10 2018-10-09 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
CN107005708A (zh) 2014-09-26 2017-08-01 Vid拓展公司 使用时间块向量预测的块内复制译码
US11330284B2 (en) * 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
AU2016316309B2 (en) * 2015-09-02 2019-01-24 Hfi Innovation Inc. Method and apparatus of decoder side motion derivation for video coding
EP3611925A4 (en) * 2017-04-13 2020-03-25 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD, AND DECODING METHOD
US20190007699A1 (en) * 2017-06-28 2019-01-03 Futurewei Technologies, Inc. Decoder Side Motion Vector Derivation in Video Coding
WO2019001741A1 (en) 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION

Also Published As

Publication number Publication date
EP4319154A3 (en) 2024-02-28
KR102450443B1 (ko) 2022-09-30
EP3632104B1 (en) 2023-10-04
CN116233463A (zh) 2023-06-06
JP2022022228A (ja) 2022-02-03
WO2019001785A1 (en) 2019-01-03
ES2963978T3 (es) 2024-04-03
US20220046274A1 (en) 2022-02-10
CA3068332A1 (en) 2019-01-03
AU2018294206B2 (en) 2022-12-01
PT3632104T (pt) 2023-12-07
JP2020526109A (ja) 2020-08-27
SG11201911978TA (en) 2020-01-30
FI3632104T3 (fi) 2023-11-09
JP6977068B2 (ja) 2021-12-08
CN116248898A (zh) 2023-06-09
CL2019003880A1 (es) 2020-10-02
HUE064054T2 (hu) 2024-02-28
US20200137414A1 (en) 2020-04-30
US20200137416A1 (en) 2020-04-30
WO2019001741A1 (en) 2019-01-03
WO2019001786A1 (en) 2019-01-03
UA126919C2 (uk) 2023-02-22
IL271762B2 (en) 2023-11-01
CN110809887A (zh) 2020-02-18
EP3635956A1 (en) 2020-04-15
JP2023174703A (ja) 2023-12-08
KR20220000917A (ko) 2022-01-04
US11683520B2 (en) 2023-06-20
US10856006B2 (en) 2020-12-01
CA3068332C (en) 2023-10-03
KR102570488B1 (ko) 2023-08-23
KR102344430B1 (ko) 2021-12-27
JP7358436B2 (ja) 2023-10-10
EP3632104A1 (en) 2020-04-08
CN110809887B (zh) 2022-12-27
AU2018294206A8 (en) 2020-01-30
EP4319154A2 (en) 2024-02-07
NZ780051A (en) 2023-09-29
PL3632104T3 (pl) 2024-02-12
IL271762B1 (en) 2023-07-01
AU2018294206A1 (en) 2020-01-23
KR20200015734A (ko) 2020-02-12
US20230353778A1 (en) 2023-11-02
NZ760521A (en) 2021-09-24
IL271762A (en) 2020-02-27
US11463726B2 (en) 2022-10-04
BR112019027261A2 (pt) 2020-07-14
KR20220136509A (ko) 2022-10-07
MX2019015871A (es) 2020-08-06

Similar Documents

Publication Publication Date Title
KR102570488B1 (ko) 다중 참조 예측을 위한 움직임 벡터 개선
CA3104570C (en) Memory access window and padding for motion vector refinement and motion compensation
US11153595B2 (en) Memory access window and padding for motion vector refinement
US20200260119A1 (en) Syntax prediction using reconstructed samples
WO2019072422A1 (en) OVERLAPPING RESEARCH SPACE FOR BI-PREDICTIVE MOTION VECTOR REFINEMENT
WO2019072369A1 (en) PRUNING MOTION VECTOR LIST
NZ760521B2 (en) Motion vector refinement for multi-reference prediction
NZ780051B2 (en) Motion vector refinement for multi-reference prediction

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right