KR20220013467A - 모션 벡터 정제를 위한 검색 영역 - Google Patents

모션 벡터 정제를 위한 검색 영역 Download PDF

Info

Publication number
KR20220013467A
KR20220013467A KR1020227002116A KR20227002116A KR20220013467A KR 20220013467 A KR20220013467 A KR 20220013467A KR 1020227002116 A KR1020227002116 A KR 1020227002116A KR 20227002116 A KR20227002116 A KR 20227002116A KR 20220013467 A KR20220013467 A KR 20220013467A
Authority
KR
South Korea
Prior art keywords
search space
motion vector
candidate motion
motion vectors
candidate
Prior art date
Application number
KR1020227002116A
Other languages
English (en)
Other versions
KR102430225B1 (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20220013467A publication Critical patent/KR20220013467A/ko
Application granted granted Critical
Publication of KR102430225B1 publication Critical patent/KR102430225B1/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • 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/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/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/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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs

Landscapes

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

Abstract

본 발명은 비디오 시퀀스에서 화면의 현재 블록에 대한 모션 벡터를 결정하기 위한 검색 공간의 구성에 관련된다. 이러한 검색 공간 구성은 2개의 주요 스테이지들로 분할되며, 제1 및 제2 부분적 검색 공간이 각각 결정된다. 모션 벡터의 초기 추정치에 기초하여, 제1 검색 공간이 먼저 구성된다. 제1 검색 공간의 제1 및 제2 후보 모션이 비용 함수에 따라 식별된다. 제1 및 제2 후보 모션 벡터들에 기초하여, 제2 검색 공간이 구성된다. 현재 블록에 대한 모션 벡터가 제1 검색 공간 및 제2 검색 공간의 후보 모션 벡터들로부터 선택된다.

Description

모션 벡터 정제를 위한 검색 영역{SEARCH REGION FOR MOTION VECTOR REFINEMENT}
본 발명은 비디오 시퀀스에서 화면의 블록의 모션 벡터들을 결정하기 위한 검색 공간의 구성에 관련된다.
현재 하이브리드 비디오 코덱들은 예측 코딩을 이용한다. 비디오 시퀀스의 화면이 픽셀들의 블록들로 세분되고 이러한 블록들이 다음으로 코딩된다. 픽셀 단위로 블록을 코딩하는 대신에, 블록의 공간적 또는 시간적 근접도에서 이미 인코딩된 픽셀들을 사용하여 전체 블록이 예측된다. 인코더는 블록 및 그 예측 사이의 차이들만을 추가로 처리한다. 이러한 추가의 처리는 블록 픽셀들의 변환 도메인에서의 계수들로의 변환을 통상적으로 포함한다. 이러한 계수들은 다음으로 (예를 들어, 양자화에 의해) 추가로 압축되고, (예를 들어, 엔트로피 코딩에 의해) 추가로 압축되어 비트스트림을 형성할 수 있다. 비트스트림은 디코더로 하여금 인코딩된 비디오를 디코딩할 수 있게 하는 임의의 시그널링 정보를 추가로 포함할 수 있다. 예를 들어, 이러한 시그널링은 입력 화면의 크기, 프레임 레이트, 양자화 단계 표시, 화면들의 블록들에 적용되는 예측 등과 같은 인코더 설정들에 관한 설정들을 포함할 수 있다.
블록과 그 예측 사이의 차이들은 블록의 잔차로서 알려져 있다. 보다 구체적으로, 블록의 각각의 픽셀은, 해당 픽셀의 강도 레벨과 그 예측 강도 레벨 사이의 차이인, 잔차를 갖는다. 픽셀의 강도 레벨은 픽셀의 픽셀 값 또는 값이라고 지칭된다. 블록의 모든 픽셀들의 잔차들은 집합적으로 블록의 잔차라고 지칭된다. 다시 말해서, 블록은 블록의 모든 픽셀들의 잔차들로 구성되는 세트 또는 매트릭스인 잔차를 갖는다.
시간적 예측은, 비디오의 프레임들이라고 또한 지칭되는, 화면들 사이의 시간적 상관을 활용한다. 시간적 예측은 인터 예측이라고 또한 불리우는데, 그 이유는 이것이 상이한 비디오 프레임들 사이의(간의) 종속성들을 사용하는 예측이기 때문이다. 따라서, 현재 블록이라고 또한 지칭되는 디코딩될 블록은 참조 화면들이라고 지칭되는 하나 이상의 이전에 디코딩된 화면들로부터 예측된다. 하나 이상의 참조 화면이 반드시 비디오 시퀀스의 디스플레이 순서로 현재 블록이 위치되는 현재 화면에 선행하는 화면들일 필요는 없다. 인코더는 디스플레이 순서와 상이한 코딩 순서로 화면들을 인코딩할 수 있다. 현재 블록의 예측으로서, 참조 화면에서의 공동 위치된 블록(예측기라고 지칭됨)이 결정될 수 있다. 공동 위치된 블록은 현재 화면에서의 현재 블록과 동일한 위치 상의 참조 화면에 위치될 수 있다. 이러한 예측은 모션이 없는 화면 영역들, 즉, 하나의 화면으로부터 다른 화면으로의 이동이 없는 화면 영역들에 대해 정확하다.
인코더에서, 이동을 고려하는 예측기, 즉 모션 보상 예측기를 획득하기 위해, 모션 추정이 통상적으로 이용된다. 현재 블록은 모션 벡터에 의해 표시되는 위치에 있는 참조 화면에 위치되는 블록에 의해 예측된다. 모션 벡터는 공동 위치된 블록의 위치로부터 현재 블록의 위치로 포인팅한다(또는, 부호 규약에 의존하여, 그 반대도 마찬가지임). 디코더로 하여금 인코더와 같이 현재 블록의 동일한 예측을 결정할 수 있게 하기 위해, 모션 벡터가 비트스트림에서 시그널링될 수 있다. 블록들 각각에 대한 모션 벡터를 시그널링하는 것에 의해 야기되는 시그널링 오버헤드를 추가로 감소시키기 위해, 모션 벡터 자체가 추정될 수 있다. 이러한 모션 벡터 추정은 공간적 및/또는 시간적 도메인에서 현재 블록의 이웃들인 블록들의 모션 벡터들에 기초하여 수행될 수 있다.
현재 블록의 예측은 하나의 참조 화면을 사용하여 또는 2개 이상의 참조 화면들로부터 획득되는 예측들을 가중화하는 것에 의해 계산될 수 있다. 참조 화면은 인접 화면, 즉, 디스플레이 순서에서 현재 화면에 바로 선행하는 또는 이를 바로 뒤따르는 화면이고 그 이유는 인접 화면들이 현재 화면과 유사할 가능성이 가장 높기 때문이다. 그러나, 일반적으로, 참조 화면은 디스플레이 순서에서 현재 화면에 선행하는 또는 이를 뒤따르는 그리고 비트스트림(디코딩 순서)에서 현재 화면에 선행하는 임의의 화면일 수 있다. 이러한 것은 예를 들어 비디오 콘텐츠에서의 폐색들 및/또는 비-선형 이동의 경우에 이점들을 제공할 수 있다. 참조 화면은 비트스트림에서 시그널링될 수 있다.
인터 예측의 특수 모드는 2개의 참조 화면들이 현재 블록의 예측을 생성하는데 사용되는 소위 양방-예측이다. 특히, 각각의 2개의 참조 화면들에서 결정되는 2개의 예측들이 현재 블록의 예측 신호로 조합된다. 이러한 양방-예측은 단일-예측보다 현재 블록의 더 정확한 예측, 즉 단일 참조 화면만을 사용하는 예측을 초래할 수 있다. 이러한 더 정확한 예측은 현재 블록의 픽셀들과 예측 사이의 더 작은 차이들로(즉, 더 작은 잔차들로) 이어지고, 이는 더 효율적으로 인코딩될 수 있다, 즉, 더 짧은 비트스트림으로 압축될 수 있다.
더 정확한 모션 추정을 제공하기 위해, 예를 들어 픽셀들 사이의 샘플들을 보간하는 것에 의해, 참조 화면의 해상도가 강화될 수 있다. 가장 가까운 픽셀들의 가중 평균화에 의해 분수 픽셀 보간이 수행될 수 있다. 예를 들어, 1/2 픽셀 해상도의 경우, 양방선형 보간이 사용될 수 있다. 예를 들어, 예측되는 픽셀에 대한 각각의 가장 가까운 픽셀들 사이의 거리의 역에 의해 가중되는 가장 가까운 픽셀들의 평균으로서 다른 분수 픽셀들이 계산될 수 있다.
예를 들어, 참조 화면에서의 후보 모션 벡터들에 의해 포인팅되는 대응하는 예측 블록들과 현재 블록 사이의 유사성을 계산하는 것에 의해 모션 벡터가 추정될 수 있다. 이러한 것은 복잡한 계산 작업일 수 있다. 이러한 복잡도를 감소시키기 위해, 후보 모션 벡터들을 특정 검색 공간으로 제한하는 것에 의해 후보 모션 벡터들의 수가 감소될 수 있다. 예를 들어, 현재 이미지에서의 현재 블록의 위치에 대응하는 참조 화면에서의 위치를 둘러싸는 픽셀들의 수 및/또는 위치들에 의해 이러한 검색 공간이 정의될 수 있다. 대안적으로, 이웃하는 블록들의 모션 벡터들로 형성되는 후보 모션 벡터들의 리스트에 의해 이러한 후보 모션 벡터들이 정의될 수 있다.
모션 벡터들은 보통 적어도 부분적으로 인코더 측에서 결정되고 코딩된 비트스트림 내에서 디코더에 시그널링된다. 그러나, 모션 벡터들은 디코더에서 또한 도출될 수 있다. 이러한 경우, 현재 블록은 디코더에서 이용가능하지 않고, 현재 블록과 참조 화면에서 후보 모션 벡터들이 포인팅하는 블록들 중 임의의 것 사이의 유사성을 계산하는데 사용될 수 없다. 따라서, 현재 블록 대신에, 이미 디코딩된 블록들의 픽셀들로부터 구성될 수 있는 템플릿이 사용될 수 있다. 예를 들어, 현재 블록에 인접하는 이미 디코딩된 픽셀들이 사용될 수 있다. 이러한 모션 추정은 시그널링을 감소시키는 이점을 제공한다: 모션 벡터는 인코더 및 디코더 양자 모두에서 동일한 방식으로 도출되고, 따라서 시그널링이 필요하지 않다. 다른 한편, 이러한 모션 추정의 정확도는 더 낮을 수 있다.
이러한 정확도와 시그널링 오버헤드 사이의 트레이드오프를 제공하기 위해, 모션 벡터 추정은 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/ site에서 발견될 수 있음)는 정수 픽셀 해상도에서의 제1 모션 벡터가 발견되고 제1 모션 벡터 주위의 검색 공간에서 1/2 픽셀 해상도로 검색에 의해 추가로 정제되는 모션 벡터 정제를 보여준다. 여기서, 픽셀 해상도(예를 들어, 정수 또는 1/2 정수)는 검색 공간의 해상도, 즉, 프로세스에 입력되는 비-정제된 모션 벡터로의 검색된 포인트들의 변위를 설명한다. 결과로서 정제 스테이지의 검색 좌표들이 반드시 이미지 평면 상의 실제 픽셀 좌표들과 일치하는 것은 아니다.
위에 설명된 접근법들로부터 시작하여, 본 개시내용의 목적은 코딩 효율을 개선하기 위해 및/또는 복잡도를 감소시키기 위해 모션 벡터 추정의 효율을 추가로 증가시키는 것이다.
이러한 것을 달성하기 위해, 제1 검색 공간 및 제2 검색 공간을 수반하는, 모션 벡터 정제를 위한 검색 공간을 구성하기 위한 스킴이 제공된다. 비용 함수에 기초하여 도출되는 제1 검색 공간에서의 2개의 위치들에 따라 제2 검색 공간의 위치들 및/또는 위치들의 수가 결정된다.
특히, 제1 양태에 따르면, 비디오 프레임의 현재 블록의 인터 예측에서 사용될 모션 벡터를 결정하기 위한 장치가 제공된다. 이러한 장치는 모션 벡터의 추정치를 획득하고 이러한 추정치에 기초하여 복수의 후보 모션 벡터들을 포함하는 제1 검색 공간을 결정하고, 비용 함수에 따라 제1 검색 공간에서 제1 및 제2 후보 모션 벡터를 선택하고, 제1 및 제2 후보 모션 벡터들에 기초하여 하나 이상의 후보 모션 벡터를 포함하는 제2 검색 공간을 결정하기 위한 검색 공간 결정 유닛을 포함한다. 이러한 장치는 제1 검색 공간 및 검색 제2 공간의 후보 모션 벡터들 중에서 현재 블록에 대한 모션 벡터를 선택하기 위한 모션 벡터 선택 유닛을 추가로 포함한다.
이점으로서, 화면 품질 및 비트레이트에 관하여 고 품질 코딩 성능을 유지하면서, 디코더 측 상에서 모션 벡터 정제의 프로세스에서 테스트되는 후보 모션 벡터들의 수가 감소될 수 있다.
유리하게는, 비용 함수는 미리 결정된 템플릿에 기초하고, 각각의 후보 모션 벡터에 대해, 미리 결정된 템플릿과 각각의 후보 모션 벡터에 의해 포인팅되는 예측기 사이의 유사성의 레벨을 표시한다. 따라서, 검색 공간 결정 유닛은, 제1 및 제2 후보 모션 벡터들로서, 미리 결정된 템플릿과 가장 유사한 현재 블록의 예측기들에 포인팅하는 제1 검색 공간에서의 2개의 후보 모션 벡터들을 선택하도록 구성된다.
제1 실시예에 따르면, 검색 공간 결정 유닛은, 제1 및 제2 후보 모션 벡터들에 의해 포인팅되는 위치들을 연결하는 라인의 방향에 따라: 다시 말해서, 제1 및 제2 후보 모션 벡터들의 차이 벡터의 방향에 따라, 제2 검색 공간의 크기 및/또는 위치를 결정하도록 추가로 구성된다. 차이 벡터는 제2 후보 모션 벡터로부터 감산되는 제1 후보 모션 벡터로서 정의될 수 있거나, 또는 그 반대도 마찬가지이다.
예를 들어, 검색 공간 결정 유닛은 정수 픽셀 해상도를 갖도록 제1 검색 공간을 설정하도록 추가로 구성된다. 검색 공간 결정 유닛은 제1 및 제2 후보 모션 벡터들이 포인팅하는 위치들을 연결하는 라인의 방향으로 위치되는 위치들에 포인팅하는 하나 이상의 후보 모션 벡터를 제2 검색 공간에 포함하도록 구성되고, 제2 검색 공간은 분수 픽셀 해상도를 갖는다. 그 라인의 방향은, 다시 말해서, 제1 및 제2 후보 모션 벡터들의 차이 벡터의 방향이다.
예로서, 제2 검색 공간의 후보 모션 벡터들 중 적어도 하나는 제1 및 제2 후보 모션 벡터들에 의해 포인팅되는 위치들 사이의 위치에 포인팅한다.
제2 실시예에 따르면, 검색 공간 결정 유닛은 적어도 2개의 후보 모션 벡터들이 각각 포인팅하는 적어도 2개의 위치들을 포함하는 영역의 위치를 결정하도록- 상기 적어도 2개의 위치들은 제2 검색 공간의 픽셀 해상도에서 인접함 -, 그리고 제1 검색 공간에 속하지 않는 영역의 위치들로서 제2 검색 공간을 결정하도록 구성된다.
예를 들어, 검색 공간 결정 유닛은 모션 벡터의 추정치 및 상기 모션 벡터의 추정치에 의해 포인팅되는 위치에 제1 검색 공간의 픽셀 해상도에서 인접하는 위치들에 포인팅하는 후보 모션 벡터들을 포함하는 제1 검색 공간을 결정하도록 구성될 수 있다.
제3 실시예에 따르면, 검색 공간 결정 유닛은 제1 검색 공간에서 식별되는 제1 및 제2 후보 모션 벡터들에 의해 포인팅되는 위치들에 제1 검색 공간의 픽셀 해상도에서 인접하는 그리고 모션 벡터의 추정치에 의해 포인팅되는 위치와 상이한 위치에 포인팅하는 후보 모션 벡터를 제2 검색 공간의 제1 후보 모션 벡터로서 결정하도록 추가로 구성된다.
예를 들어, 검색 공간 결정 유닛은, 모션 벡터의 추정치 및 제2 검색 공간의 후보를 연결하는 라인 상에 대략 위치되는, 제2 검색 공간의 해상도에서의 위치에 포인팅하는 후보 모션 벡터를 제2 검색 공간의 추가의 후보 모션 벡터로서 선택하도록 추가로 구성되고, 제2 검색 공간의 픽셀 해상도는 제1 검색 공간의 픽셀 해상도보다 더 높다.
예로서, 제2 검색 공간의 추가의 후보 모션 벡터는 제2 검색 공간의 제1 후보 모션 벡터 및 모션 벡터의 추정치에 의해 포인팅되는 위치들 사이에 위치되는 위치에 포인팅한다.
제1 양태의 모든 실시예들의 예로서, 제2 검색 공간은 제1 검색 공간보다 더 높은 해상도를 갖는다.
추가의 예로서, 이러한 장치는 현재 블록에 인접하는 적어도 하나의 블록의 모션 벡터들을 포함하는 모션 벡터들의 리스트로부터 모션 벡터의 추정치를 결정하기 위한 모션 벡터 결정 유닛을 추가로 포함한다.
비트스트림으로부터 복수의 화면들을 디코딩하기 위한 비디오 디코더가 추가로 제공된다. 비디오 디코더는 비트스트림으로부터 모션 벡터의 추정치의 표시를 획득하기 위한 비트스트림 파서, 현재 블록의 모션 벡터가 포인팅하는 예측 블록을 결정하도록 추가로 구성되는, 제1 양태의 임의의 실시예 및 예에 따른 장치를 포함하는 인터 예측 유닛, 및 예측 블록에 기초하여 현재 블록을 재구성하기 위한 재구성 유닛을 포함한다.
복수의 화면들을 비트스트림으로 인코딩하기 위한 비디오 인코더가 또한 제공된다. 비디오 인코더는 현재 블록의 모션 벡터가 포인팅하는 예측 블록을 결정하도록 추가로 구성되는 제1 양태의 임의의 실시예 및 예에 따른 장치를 포함하는 인터 예측 유닛, 모션 벡터의 추정치의 표시를 비트스트림에 포함시키기 위한 비트스트림 형성기, 및 예측 블록에 기초하여 현재 블록을 재구성하고 재구성된 블록을 메모리에 저장하기 위한 재구성 유닛을 포함한다.
제2 양태에 따르면, 현재 블록의 인터 예측에서 사용될 모션 벡터를 결정하기 위한 방법이 제공된다. 이러한 방법은 모션 벡터의 추정치를 획득하는 단계, 이러한 추정치에 기초하여 복수의 후보 모션 벡터들을 포함하는 제1 검색 공간을 결정하는 단계, 비용 함수에 따라 제1 검색 공간에서 제1 및 제2 후보 모션 벡터를 선택하는 단계, 제1 및 제2 후보 모션 벡터에 기초하여 하나 이상의 후보 모션 벡터를 포함하는 제2 검색 공간을 결정하는 단계, 및 제1 공간 및 제2 공간의 후보 모션 벡터들 중에서 현재 블록에 대한 모션 벡터를 선택하는 단계를 포함한다.
유리하게는, 비용 함수는 미리 결정된 템플릿에 기초하고, 각각의 후보 모션 벡터에 대해, 미리 결정된 템플릿과 각각의 후보 모션 벡터에 의해 포인팅되는 예측기 사이의 유사성의 레벨을 표시한다. 따라서, 제1 및 제2 후보 모션 벡터를 선택하는 단계는 미리 결정된 템플릿과 가장 유사한 현재 블록의 예측기들에 포인팅하는 제1 검색 공간에서의 2개의 후보 모션 벡터들을 선택하는 단계를 포함한다.
제1 예시적인 실시예에서는, 제2 검색 공간을 결정하는 단계에서, 제1 및 제2 후보 모션 벡터들이 포인팅하는 위치들을 연결하는 라인의 방향에 따라 제2 검색 공간의 크기 및/또는 위치가 결정된다.
예로서, 복수의 후보 모션 벡터들을 포함하는 제1 검색 공간을 결정하는 단계에서, 제1 검색 공간은 정수 픽셀 해상도를 갖는다. 제2 검색 공간을 결정하는 단계에서, 이것은 제1 및 제2 후보 모션 벡터들이 포인팅하는 위치들을 연결하는 라인의 방향으로 위치되는 위치들에 포인팅하는 하나 이상의 후보 모션 벡터로서 결정되고, 제2 검색 공간은 분수 픽셀 해상도를 갖는다.
예를 들어, 제2 검색 공간의 후보 모션 벡터들 중 적어도 하나는 제1 및 제2 후보 모션 벡터들에 의해 포인팅되는 위치들 사이의 위치에 포인팅한다.
제2 예시적인 실시예에 따르면, 제2 검색 공간을 결정하는 단계에서, 적어도 2개의 후보 모션 벡터들이 각각 포인팅하는 적어도 2개의 위치들을 포함하는 영역의 위치가 결정되고- 상기 적어도 2개의 위치들은 제2 검색 공간의 픽셀 해상도에서 인접함 -, 제2 검색 공간은 제1 검색 공간에 속하지 않는 영역의 위치들로서 결정된다.
예로서, 이러한 단계에서 또는 제1 검색 공간을 결정하는 단계에서, 제1 검색 공간은 모션 벡터의 추정치 및 상기 모션 벡터의 추정치에 의해 포인팅되는 위치에 제1 검색 공간의 픽셀 해상도에서 인접하는 위치들에 포인팅하는 후보 모션 벡터들을 포함한다.
제3 예시적인 실시예에 따르면, 제2 검색 공간을 결정하는 단계에서, 제2 검색 공간의 제1 후보 모션 벡터로서, 제1 검색 공간에서 식별되는 제1 및 제2 후보 모션 벡터들에 의해 포인팅되는 위치들에 제1 검색 공간의 픽셀 해상도에서 인접하는 그리고 모션 벡터의 추정치에 의해 포인팅되는 위치와 상이한 위치에 포인팅하는 후보 모션 벡터가 결정된다.
예를 들어, 제2 검색 공간의 추가의 적어도 하나의 후보 모션 벡터로서, 모션 벡터의 추정치 및 제2 검색 공간의 후보를 연결하는 라인 상에 대략 위치되는, 제2 검색 공간의 해상도에서의 위치에 포인팅하는 후보 모션 벡터가 결정된다. 여기서, 제2 검색 공간의 픽셀 해상도는 제1 검색 공간의 픽셀 해상도보다 더 높다.
예로서, 제2 검색 공간의 상기 추가의 후보 모션 벡터는 제2 검색 공간의 제1 후보 모션 벡터 및 모션 벡터의 추정치에 의해 포인팅되는 위치들 사이에 위치되는 위치에 포인팅한다.
제2 양태의 모든 실시예들의 예로서, 제2 검색 공간은 제1 검색 공간보다 더 높은 해상도를 갖는다.
추가의 예로서, 모션 벡터의 추정치를 획득하는 단계는 현재 블록에 인접하는 적어도 하나의 블록의 모션 벡터들을 포함하는 모션 벡터들의 리스트로부터 모션 벡터의 추정치를 결정하는 단계에 의해 수행된다.
다음에서는 첨부 도면들 및 도안들을 참조하여 예시적인 실시예들이 더 상세히 설명된다.
도 1은 비디오 인코더의 예시적인 구조를 도시하는 블록도이다.
도 2는 비디오 디코더의 예시적인 구조를 도시하는 블록도이다.
도 3은 모션 벡터를 결정하기 위한 장치의 예시적인 구조를 도시하는 블록도이다.
도 4는 현재 블록 및 예시적인 검색 공간 구성의 개략도이다.
도 5 내지 도 8은 제1 예시적인 실시예에 따른 검색 공간 구성들의 개략도들이다.
도 9는 제1 예시적인 실시예에 따른 제2 검색 공간의 결정을 도시하는 개략도이다.
도 10 및 도 11은 제1 실시예에 따른 추가의 검색 공간 구성들의 개략도이다.
도 12 및 도 13은 현재 블록들 및 제2 실시예에 따른 예시적인 검색 공간 구성의 개략도이다.
도 14는 제3 실시예에 따른 검색 공간의 결정을 도시하는 개략도이다.
도 15는 제3 실시예에 따른 검색 공간 결정 유닛의 블록도이다.
도 16은 상이한 실시예들의 조합에 따른 검색 공간 구성의 개략도이다.
도 17은 상이한 실시예들을 조합하는 것에 의해 검색 공간의 예시적인 결정을 도시하는 개략도이다.
도 18은 모션 벡터 정제를 위한 방법을 도시하는 흐름도이다.
도 19는 검색 공간 위치들에 대한 비용들을 계산하기 위한 방법을 도시하는 흐름도이다.
본 개시내용은 모션 보상에 대한 검색 공간의 효율적인 결정에 관련되고, 모션 벡터 정제에 대해 특히 유리하다. 이러한 검색 공간의 결정은 비디오의 인코딩 및 디코딩 동안 적용되는 모션 추정에서 이용될 수 있다. 다음에서는, 본 개시내용의 검색 공간 구성을 이용하는 모션 추정을 구현할 수 있는 예시적인 인코더 및 디코더가 설명된다.
도 1은 비디오 스트림의 프레임들 또는 화면들의 입력 블록들을 수신하기 위한 입력 및 인코딩된 비디오 비트스트림을 제공하기 위한 출력을 포함하는 인코더(100)를 도시한다. 본 개시내용에서 "프레임(frame)"이라는 용어는 화면에 대한 동의어로서 사용된다. 그러나, 본 개시내용은 인터레이싱이 적용되는 경우 필드들에 또한 적용가능하다는 점이 주목된다. 일반적으로, 화면은 m 곱하기 n개의 픽셀들을 포함한다. 이들은 이미지 샘플들에 대응하고, 하나 이상의 컬러 성분을 각각 포함할 수 있다. 간략함을 위해, 다음의 설명은 휘도의 샘플들을 의미하는 픽셀들을 참조한다. 그러나, 본 발명의 모션 벡터 검색은 RGB 등과 같은 컬러 공간의 색차 또는 성분들을 포함하는 임의의 컬러 성분에 적용될 수 있다는 점이 주목된다. 다른 한편, 하나의 성분에 대해서만 모션 벡터 추정을 수행하고 결정된 모션 벡터를 더 많은 (또는 모든) 성분들에 적용하는 것이 유익할 수 있다.
코딩될 입력 블록들이 반드시 동일한 크기를 갖는 것은 아니다. 하나의 화면은 상이한 크기들의 블록들을 포함할 수 있고, 상이한 화면들의 블록 래스터들 또한 상이할 수 있다.
인코더(100)는 예측, 변환, 양자화, 및 엔트로피 코딩을 비디오 스트림에 적용하도록 구성된다. 변환 유닛(101), 양자화 유닛(102) 및 엔트로피 인코딩 유닛(103)에 의해 변환, 양자화, 및 엔트로피 코딩이 각각 수행되어 인코딩된 비디오 비트스트림을 출력으로서 생성한다.
비디오 스트림은 복수의 프레임들을 포함할 수 있다. 각각의 프레임은 인트라 또는 인터 코딩되는 블록들로 분할된다. 예를 들어, 비디오 스트림의 제1 프레임의 블록들이 인트라 예측 유닛(109)에 의해 인트라 코딩된다. 그 프레임으로부터의 정보만을 사용하여 인트라 프레임이 코딩되어, 다른 프레임들과 독립적으로 디코딩될 수 있다. 따라서, 인트라 프레임은, 예를 들어, 랜덤 액세스를 위해 비트스트림에서의 엔트리 포인트를 제공할 수 있다. 비디오 스트림의 다른 프레임들의 블록들이 인터 예측 유닛(110)에 의해 인터 코딩될 수 있고: 인터 코딩된 프레임의 각각의 블록이 다른 프레임(참조 프레임), 예를 들어, 이전에 코딩된 프레임에서의 블록으로부터 예측된다. 모드 선택 유닛(108)은 프레임의 블록이 인트라 예측될지 또는 인터 예측될지, 즉, 인트라 예측 유닛(109) 또는 인터 예측 유닛(110)에 의해 처리될 것인지 선택하도록 구성된다. 모드 선택 유닛(108)은 인터 예측의 인트라의 파라미터들을 또한 제어한다. 이미지 정보의 리프레싱을 가능하게 하기 위해, 인터 코딩된 프레임은 인터 코딩된 블록들 뿐만 아니라, 하나 이상의 인트라 코딩된 블록을 또한 포함할 수 있다. 대조적으로, 인트라 프레임들은 인트라 코딩된 블록들만을 포함하고 인터 코딩된 블록들을 포함하지 않는다. 인트라 프레임들은 디코딩을 위한 엔트리 포인트들, 즉, 선행 프레임들로부터의 정보를 사용하지 않고 디코더가 디코딩을 시작할 수 있는 포인트들을 제공하기 위해 (예를 들어, 규칙적으로, 즉, 특정 수의 인터 프레임들 이후 매번) 비디오 시퀀스에 삽입될 수 있다.
인트라 예측 유닛(109)은 블록 예측 유닛이다. 공간적 또는 시간적 예측을 수행하기 위해, 코딩된 블록들은 역 양자화 유닛(104) 및 역 변환 유닛(105)에 의해 추가로 처리될 수 있다. 블록의 재구성 후에, 디코딩된 이미지의 품질을 추가로 개선하기 위해 루프 필터링 유닛(106)이 적용될 수 있다. 필터링된 블록들은 프레임 버퍼(107)에 다음으로 저장되는 참조 프레임들을 다음으로 형성한다. 인코더 측에 있는 이러한 디코딩 루프(디코더)는 디코더 측에서 재구성되는 참조 화면들과 동일한 참조 프레임들을 생성하는 이점을 제공한다. 따라서, 인코더 및 디코더 측은 대응하는 방식으로 동작한다. 여기서 "재구성(reconstruction)"이라는 용어는 디코딩된 잔차 블록을 예측 블록에 추가하는 것에 의해 재구성된 블록을 획득하는 것을 지칭한다.
인터 예측 유닛(110)은 인터 코딩될 현재 프레임 또는 화면 및 하나의 또는 몇몇 참조 프레임 또는 화면의 블록을 프레임 버퍼(107)로부터 입력으로서 수신한다. 인터 예측 유닛(110)에 의해 모션 추정 및 모션 보상이 수행된다. 모션 추정은, 예를 들어, 비용 함수에 기초하여 모션 벡터 및 참조 프레임을 획득하는데 사용된다. 모션 보상은 현재 프레임의 현재 블록을 현재 프레임으로의 참조 프레임의 참조 블록의 변환의 면에서, 즉 모션 벡터에 의해 다음으로 설명한다. 인터 예측 유닛(110)은, 예측 블록이 비용 함수를 최소화하도록 하나의 또는 몇몇 참조 프레임들에서의 후보 블록들(즉, 후보 예측기들)의 세트 중에서 현재 블록에 대한 예측 블록(즉, 예측기)을 선택한다. 다시 말해서, 비용 함수가 최소인 후보 블록이 현재 블록에 대한 예측 블록으로서 사용될 것이다.
예를 들어, 비용 함수는 현재 블록과 후보 블록 사이의 차이의 측정, 즉, 후보 블록에 관하여 현재 블록의 잔차의 측정일 수 있다. 예를 들어, 비용 함수는 후보 참조 화면에서 현재 블록의 모든 픽셀들(샘플들)과 후보 블록의 모든 픽셀들 사이의 SAD(sum of absolute differences)일 수 있다. 그러나, 일반적으로, MSE(mean square error) 또는 SSIM(structural similarity metric)과 같은, 임의의 유사성 메트릭이 이용될 수 있다.
그러나, 비용 함수는 또한 이러한 인터 블록을 코딩하는데 필요한 비트들의 수 및/또는 이러한 코딩으로부터 초래하는 왜곡일 수 있다. 따라서, 모션 벡터 선택에 관하여 및/또는 일반적으로 블록에 대한 인터 또는 인트라 예측을 사용할지 및 어느 설정들로와 같은 인코딩 파라미터들에 관하여 결정하는데 레이트-왜곡 최적화 프로시저가 사용될 수 있다.
인트라 예측 유닛(109)은 현재 프레임의 이미 재구성된 영역으로부터 인트라 코딩될 현재 프레임 또는 화면의 블록 및 하나의 또는 몇몇 참조 샘플들을 입력으로서 수신한다. 다음으로, 인트라 예측은 현재 프레임의 참조 샘플들의 함수의 면에서 현재 프레임의 현재 블록의 픽셀들을 설명한다. 인트라 예측 유닛(109)은 현재 블록에 대한 예측 블록을 출력하고, 상기 예측 블록은 유리하게는 코딩될 현재 블록과 그 예측 블록 사이의 차이를 최소화한다, 즉, 잔차 블록을 최소화한다. 잔차 블록의 최소화는, 예를 들어, 레이트-왜곡 최적화 프로시저에 기초할 수 있다. 특히, 예측 블록은 참조 샘플들의 방향성 보간으로서 획득된다. 이러한 방향은 인터 예측과 관련하여 위에 언급된 바와 같이 레이트-왜곡 최적화에 의해 및/또는 유사성 측정을 계산하는 것에 의해 결정될 수 있다.
현재 블록과 그 예측, 즉, 잔차 블록 사이의 차이는 다음으로 변환 유닛(101)에 의해 변환된다. 변환 계수들은 양자화 유닛(102)에 의해 양자화되고 엔트로피 인코딩 유닛(103)에 의해 엔트로피 코딩된다. 따라서 생성된 인코딩된 비디오 비트스트림은 인트라 코딩된 블록들 및 인터 코딩된 블록들 및 (모드 표시, 모션 벡터의 표시, 및/또는 인트라 예측 방향과 같은) 대응하는 시그널링을 포함한다. 변환 유닛(101)은 DFT(discrete Fourier transformation) 또는 DCT(discrete cosine transformation)와 같은 선형 변환을 적용할 수 있다. 공간적 주파수 도메인으로의 이러한 변환은 결과적인 계수들이 더 낮은 주파수들에서 통상적으로 더 높은 값들을 갖는다는 이점을 제공한다. 따라서, (지그-재그와 같은) 유효 계수 스캐닝 및 양자화 후에, 결과적인 값들의 시퀀스는 시작에서 통상적으로 일부 더 큰 값들을 갖고 제로들의 연속으로 끝난다. 이러한 것은 추가의 효율적인 코딩을 가능하게 한다. 양자화 유닛(102)은 계수 값들의 해상도를 감소시키는 것에 의해 손실 압축을 수행한다. 다음으로, 엔트로피 코딩 유닛(103)은 바이너리 코드워드들을 계수 값들에 배정한다. 이러한 코드워드들은 인코딩된 비트스트림이라고 지칭되는 비트스트림에 기입된다. 엔트로피 코더는 시그널링 정보(도 1에 도시되지 않음)를 또한 코딩한다.
도 2는 비디오 디코더(200)의 예를 도시한다. 비디오 디코더(200)는 특히 참조 화면 버퍼(207) 및 블록 예측 유닛인 인트라 예측 유닛(209)을 포함한다. 참조 화면 버퍼(207)는 인코딩된 비디오 비트스트림의 인코딩된 비디오 비트스트림으로부터 재구성되는 적어도 하나의 참조 프레임을 저장하도록 구성된다. 인트라 예측 유닛(209)은 디코딩될 블록의 추정치인 예측 블록을 생성하도록 구성된다. 인트라 예측 유닛(209)은 참조 화면 버퍼(207)로부터 획득되는 참조 샘플들에 기초하여 이러한 예측을 생성하도록 구성된다.
디코더(200)는 비디오 인코더(100)에 의해 생성되는 인코딩된 비디오 비트스트림을 디코딩하도록 구성되고, 바람직하게는 디코더(200) 및 인코더(100) 양자 모두는 인코딩/디코딩될 각각의 블록에 대해 동일한 예측들을 생성한다. 참조 화면 버퍼(207) 및 인트라 예측 유닛(209)의 특징들은 도 1의 참조 화면 버퍼(107) 및 인트라 예측 유닛(109)의 특징들과 유사하다.
비디오 디코더(200)는 비디오 인코더(100)에 또한 존재하는 추가의 유닛들, 예를 들어, 역 양자화 유닛(204), 역 변환 유닛(205), 및 루프 필터링 유닛(206)을 포함하며, 이들은 비디오 코더(100)의 역 양자화 유닛(104), 역 변환 유닛(105), 및 루프 필터링 유닛(106)에 각각 대응한다.
엔트로피 디코딩 유닛(203)은 수신된 인코딩된 비디오 비트스트림을 디코딩하여 양자화된 잔차 변환 계수들 및 시그널링 정보를 획득하도록 구성된다. 양자화된 잔차 변환 계수들은 역 양자화 유닛(204) 및 역 변환 유닛(205)에 공급되어 잔차 블록을 생성한다. 잔차 블록은 예측 블록에 추가되고 결과적인 합은 루프 필터링 유닛(206)에 공급되어 디코딩된 비디오 블록을 획득한다. 디코딩된 비디오의 프레임들은 참조 화면 버퍼(207)에 저장될 수 있고 인터 예측을 위한 참조 프레임들로서 역할을 할 수 있다.
일반적으로, 도 1 및 도 2의 인트라 예측 유닛들(109 및 209)은 인코딩될 필요가 있거나 또는 디코딩될 필요가 있는 블록들에 대한 예측 신호들을 생성하기 위해 이미 인코딩된 영역으로부터의 참조 샘플들을 사용할 수 있다.
엔트로피 디코딩 유닛(203)은 그 입력으로서 인코딩된 비트스트림을 수신한다. 비트스트림이 먼저 파싱될 수 있다, 즉, 시그널링 파라미터들 및 잔차들이 비트스트림으로부터 추출된다. 비트스트림의 신택스 및 시맨틱은 인코더들 및 디코더들이 상호 운용가능한 방식으로 작동할 수 있도록 표준에 의해 정의될 수 있다. 위 배경기술 섹션에서 설명되는 바와 같이, 인코딩된 비트스트림은 예측 잔차들 외에도 추가의 정보를 포함한다. 모션 보상된 예측의 경우, 모션 벡터 표시가 또한 비트스트림에서 코딩되고 디코더에서 비트스트림으로부터 파싱된다. 모션 벡터 표시는 모션 벡터가 제공되는 참조 화면에 의해 그리고 모션 벡터 좌표들에 의해 주어질 수 있다. 이러한 예에서, 모션 벡터 좌표들은 참조 화면 내의 x 및 y 좌표들이고, 이들은, 좌표 (0, 0)이 현재 프레임에서 처리되고 있는 현재 블록의 위치에 대응하는 참조 프레임 내의 위치라고 가정하여, 모션 벡터가 보여주는 포인트를 정의한다. 그러나, 모션 벡터 표시가 좌표들을 직접 시그널링할 필요는 없다. 일반적으로, 후보 모션 벡터들의 리스트에 대한 포인터(인덱스) 또는 블록의 인터 예측을 식별하는 것을 가능하게 하는 임의의 다른 식별자와 같은, 모션 벡터의 임의의 식별이 적용가능하다.
참조 화면을 효율적으로 코딩하기 위해, 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 리스트들의 임의의 콘텐츠로 제한되는 것은 아니다.
모션 벡터는 (참조 화면에서) 모션 벡터들이 포인팅하는 블록의 좌표들에 의해 직접 시그널링될 수 있다. 대안적으로, H.265에서 명시되는 바와 같이, 후보 모션 벡터들의 리스트가 구성될 수 있고, 특정 모션 벡터와 이러한 리스트에 의해 연관되는 인덱스가 송신될 수 있다.
현재 블록의 모션 벡터들은 현재 화면에서의 또는 이전 코딩된 화면들에서의 이웃하는 블록들의 모션 벡터들과 종종 상관된다. 이러한 것은 이웃하는 블록들이 유사한 모션이 있는 동일한 이동 객체에 대응할 가능성이 있고, 이러한 객체의 모션은 시간의 경과에 따라 갑자기 변경될 가능성이 없기 때문이다. 결과적으로, 현재 블록의 모션 벡터에 대한 예측기(MVP(motion vector predictor)라고 지칭기)를 정의하기 위해 공간적으로 또는 시간적으로 이웃하는 블록들의 하나 이상의 모션 벡터를 사용하는 것은 시그널링된 모션 벡터 차이의 크기를 감소시킨다. MVP는 공동 위치된 화면에서 공간적으로 이웃하는 블록들로부터의 또는 시간적으로 이웃하는 블록들로부터의 이미 디코딩된 모션 벡터들로부터 도출될 수 있다. H.264/AVC에서, 이러한 것은 3개의 공간적으로 이웃하는 모션 벡터들의 성분별 중앙값을 행하는 것에 의해 행해진다. 이러한 접근법을 사용하면, 예측기의 시그널링이 요구되지 않는다. 공동 위치된 화면으로부터의 시간적 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개의 상이한 클래스들로부터의 5개의 MVP들: 공간적 이웃들로부터의 3개의 모션 벡터들, 3개의 공간적 예측기들의 중앙값 및 공동 위치된, 시간적으로 이웃하는 블록으로부터의 스케일링된 모션 벡터를 포함했다. 또한, 예측기들의 리스트는 가장 확률 있는 모션 예측기를 제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의 비디오 인코더(100)에서 구현될 수 있는, 인터 예측 유닛(110)의 회로는 현재 블록의 인터 예측을 위한 모션 벡터를 획득하기 위해 모션 추정(도 3 참조)을 수행한다. 도 3 및 첨부 설명이 마찬가지로 적용되는, 도 2의 비디오 디코더(200)의 인터 예측 유닛(210)에 의해 유사한 예측이 또한 수행될 수 있다.
정확한 모션 벡터의 제1 추정치 또는 근사화로서 보여질 수 있는, 초기 모션 벡터 MV0은 인터 예측 유닛(110)에 의해 획득된다. 예를 들어, MV0은 후보 모션 벡터들의 리스트로부터 선택될 수 있다. 이러한 리스트는 현재 블록에 인접하는 적어도 하나의 블록의 모션 벡터들을 포함할 수 있다. 대안적으로, MV0은 인코더 측에서 블록 매칭에 의해 획득되고 비트스트림 내의 디코더 측에 시그널링될 수 있다. 이에 대응하여, 디코더 측에서, 인터 예측 유닛(210)은 비트스트림으로부터 초기 모션 벡터 MV0을 획득할 수 있다. 예를 들어, 후보들의 리스트에 대한 인덱스가 비트스트림으로부터 추출되고, 그 인덱스에 의해 식별되는 모션 벡터 후보는 초기 모션 벡터 MV0 으로서 인터 예측 유닛에 제공된다. 대안적으로, MV0의 좌표들이 비트스트림으로부터 직접 추출된다. 그러나, 본 개시내용이 초기 모션 벡터 MV0을 획득하는 임의의 특정 방식으로 제한되는 것은 아니다. 일반적으로, MV0은 임의의 방식으로, 예를 들어, 인코더 및 디코더에서 동일한 방식으로 템플릿 매칭하는 것에 의해 결정될 수 있다. 여전히 대안적으로, 모션 벡터는 공간적 또는 시간적 도메인에서 현재 블록의 이웃하는 블록의 모션 벡터들의 함수로서 예측될 수 있다.
초기 모션 벡터 MV0은 현재 블록의 인터 예측에서 사용될 최종 모션 벡터 MV0"의 초기 추정치이다. 이것은 최종 모션 벡터 MV0"이 출력되는 끝에서 정제 프로세스에 대한 입력을 구성한다. 정제 프로세스는 검색 공간을 결정하는 것 및 검색 공간으로부터 최종 모션 벡터를 선택하는 것을 포함한다.
일반적으로, (예를 들어, 인터 예측 유닛(110 또는 210)의 검색 공간 결정 유닛(310)에 의해 수행되는) 검색 공간 구성은 2개의 스테이지들을 포함하며, 이들 각각에서 검색 공간의 일부분이 구성된다. 다음으로, 모션 벡터 선택 유닛(340)(또한 인터 예측 유닛(110 및/또는 210)의 부분)은 매칭 비용에 따라 (검색 공간 위치의 좌표에 대응하는) 모션 벡터 MV0"을 선택한다. 검색 공간의 일부 후보 모션 벡터들에 대해, 아마도 스테이지들 각각에서 결정되는 각각의 부분적 검색 공간들의 모든 후보 모션 벡터들에 대해, 비용들은 검색 공간 구성의 일부분으로서 그리고 그 동안 이미 계산될 수 있다는 점이 주목된다.
검색 공간 구성은 제1 (부분적) 검색 공간을 구성하는 제1 스테이지(301)를 포함한다. 제1 스테이지(301)에서 결정되는 제1 검색 공간의 위치들 중에서, 적어도 2개의 후보 위치들이 선택되고(302), 어느 후보 위치들이 제2 스테이지에서 체크될지를 결정하는데 사용된다(303).
다시 말해서, 초기 모션 벡터 MV0에 기초하여, 복수의 후보 모션 벡터들을 포함하는 제1 검색 공간이 결정된다(301). 제1 검색 공간에서, 제1 후보 모션 벡터 및 제2 후보 모션 벡터가 비용 함수에 따라 식별된다(302). 제1 및 제2 후보 모션 벡터들에 기초하여, 하나 이상의 후보 모션 벡터를 포함하는 제2 검색 공간이 결정된다(303). 제1 검색 공간 및 제2 검색 공간 양자 모두의 후보 모션 벡터들 중에서, 현재 블록에 대한 모션 벡터 MV0"이 모션 벡터 선택 유닛(340)에 의해 선택된다. 특히, 제2 검색 공간이 평가된 후 비용 함수를 최소화하는 후보가 발견되고, 이러한 후보는 인터 예측에서 적용될 최종 모션 벡터 MV0"로서 선택된다. 제1 검색 공간은 참조 화면에서의 위치들의 제1 서브세트, 즉 제1 검색 공간의 후보 모션 벡터들에 의해 포인팅되는 위치들의 서브세트와 동등하다. 유사하게, 제2 검색 공간은 참조 화면에서의 위치들의 제2 서브세트, 즉 제2 검색 공간의 후보 모션 벡터들에 의해 포인팅되는 위치들의 서브세트와 동등하다.
모션 벡터 정제는 참조 화면에서의 위치들의 서브세트인 그리고 제1 및 제2 검색 공간의 위치들을 포함하는 검색 공간에서 수행된다. 이러한 위치들은 각각의 후보 모션 벡터들이 포인팅하는 위치들, 즉, 템플릿과의 매칭이 평가될 위치들이다. 참조 화면은 정수 또는 분수 해상도로 이용가능할 수 있다. 참조 화면 해상도와 무관하게, 검색 공간 또는 그 부분은 참조 화면으로부터 더 낮은 또는 더 높은 자신의 해상도를 가질 수 있다. 분수 픽셀들을 획득하기 위해 분수 픽셀 보간을 수행하는 것에 의해 더 높은 해상도가 달성될 수 있다.
예를 들어, 초기 모션 벡터 MV0은, 전체 픽셀 위치라고 또한 지칭되는, 정수 픽셀 위치에 포인팅할 수 있다. 대안적으로, MV0은 분수 픽셀 위치, 예를 들어, 1/2 픽셀 위치 또는 1/4 픽셀 위치에 포인팅할 수 있다. 여기서 뿐만 아니라 설명의 나머지에서, "1/2 픽셀 위치(half pixel position)"(및, 각각, "1/4 픽셀 위치(quarter pixel position)")는 2개의 인접하는 전체 픽셀 위치들(즉, 전체 픽셀 해상도에서의 이웃하는 픽셀들) 사이의 라인 상의 포인트를 지칭하고, 분수 픽셀 위치는 2개의 이웃하는 전체 픽셀 위치들 사이의 거리의 1/2(또는, 각각, 1/4)인 다음 픽셀 위치까지의 거리를 갖는다.
본 개시내용의 상이한 실시예들에서, MV0가 전체 픽셀 또는 1/2 픽셀 위치에 포인팅하는지에 무관하게, 제1 검색 공간 및 제2 검색 공간은 동일한 해상도를 갖거나 또는 해상도에 있어서 상이할 수 있다. 예를 들어, 제2 검색 공간은 제1 검색 공간보다 더 높은 해상도를 가질 수 있다. 따라서, 제2 검색 공간은 제1 검색 공간의 정제로서 보여질 수 있다.
유리하게는, 제1 검색 공간은 전체 픽셀 해상도를 갖는다. 다음으로, 제2 검색 공간의 해상도가 제1 검색 공간의 해상도와 상이하면, 제2 검색 공간의 해상도는 1/2 픽셀 해상도와 같은 분수 픽셀 해상도일 수 있다. 검색 공간의 해상도는 참조 화면의 해상도와 상이할 수 있다는 점이 주목된다. 예를 들어, 초기 모션 벡터는 참조 화면 내의 1/2 픽셀에 포인팅할 수 있다. 그럼에도 불구하고, 제1 검색 공간은 서로로부터 적어도 정수 픽셀의 거리에 있는 위치들만을 포함할 수 있다. 그럼에도 불구하고 이러한 위치들은 모두 참조 화면의 서브 픽셀 픽셀들 상에 위치될 수 있다.
도 4 뿐만 아니라 본 개시내용의 다양한 실시예들에 따른 검색 공간의 상이한 구성들이 도시되는 나머지 도면들에서, 전체 픽셀 해상도는 음영 (전체) 도트들에 의해 표시되는 반면, 분수 픽셀 위치들은 비-음영 (빈) 도트들로서 도시된다. 코딩되는 또는 디코딩되는 비디오에서의 화면들의 픽셀들은 정사각형 패턴으로 배열될 수 있다. 그러나, 일반적으로, 이들은 반드시 정사각형 패턴은 아닌 일반적인 직사각형 픽셀 패턴을 가질 수 있다. 본 개시내용은 일반적으로 임의의 특정 픽셀 패턴으로 제한되는 것은 아니다. 이러한 픽셀들은 또한 비-직사각형 패턴으로 배열될 수 있다.
하나의 구현에서, (도 4에 도시되는 바와 같이) 현재 블록 포인트에 대한 후보 모션 벡터들은 (좌표 (0, 0)을 갖는 것으로 가정되는) 현재 화면에서의 현재 블록의 상부 좌측 픽셀로부터 참조 화면에서의 후보 예측 블록들의 각각의 상부 좌측 픽셀들로 포인팅한다. 따라서, 후보 예측 블록들의 상부 좌측 픽셀들은 참조 화면에서의 검색 공간을 표현한다. 이러한 구현에서, 블록의 상부 좌측 픽셀이 블록의 위치로서 취해진다. 그러나, 블록의 임의의 다른 픽셀이 블록의 위치로서 취해질 수 있고, 동일한 위치 규약이 모든 블록들에 적용된다는 점이 이해된다. 예를 들어, 모션 벡터는 현재 블록의 중심 픽셀로부터 각각의 후보 블록의 중심 픽셀로 연속하는 것으로서 동등하게 정의될 수 있다.
예로서(다시 도 4 참조), 제1 검색 공간은 9개의 후보 모션 벡터들, 즉 모션 벡터의 초기 추정치 MV0 뿐만 아니라 전체 픽셀 해상도에서 그 4개의 가장 가까운 이웃하는 위치들 및 그 4개의 두번째 가장 가까운 이웃하는 위치를 포함한다. 도 4에서의 제1 검색 공간의 성상도는 "정사각형(square)" 성상도이고, 수직 및 수평 차원들에서의 픽셀들 사이의 거리들이 동일하다는 점을 의미한다. 본 개시내용의 실시예들을 설명할 때 도시될 바와 같이, 다양한 크기들 및 형상들이 있는 성상도들이 제1 검색 공간에 대해 사용될 수 있다.
위에 설명된 바와 같이, 모션 벡터 정제 스킴은 추가적 제어 시그널링 없이 인코더 및 디코더에서 동일한 방식으로 수행될 수 있다. 이러한 것은, 예를 들어, 인코더 측에서 뿐만 아니라 디코더 측에서 템플릿을 제공하는 것에 의해 달성될 수 있다. 이러한 템플릿은, 예를 들어, 이미 인코딩된/디코딩된 픽셀들로부터 (예를 들어, 위에 언급된 문헌 JVET-D0029에서 설명되는 기술들 중 하나를 사용하여) 결정될 수 있다. 이러한 템플릿의 예는 현재 블록 이전에 디코딩되는 그리고 현재 블록에 이웃하는 하나 이상의 블록의 픽셀들일 수 있다. 보다 상세하게는, 현재 블록에 대한 모션 벡터의 정제에 대한 템플릿은, 블록들의 디코딩이, 일반적으로, 좌측으로부터 우측으로 그리고 상부로부터 하부로 수행된다고 가정하여, 상부 경계에서 이웃하는 블록의 M개의 픽셀들 및 좌측 경계에서 이웃하는 블록의 N개의 픽셀들인 것으로 결정될 수 있다. M 및 N은 1보다 더 큰 정수들이다. 그러나, 템플릿은 상이하게 결정될 수 있고, 현재 블록과의 경계에 직접 인접하는 이웃하는 블록들의 픽셀들과는 별도로, 이웃하는 블록들의 다른 픽셀들, 및/또는 하나 이상의 이웃하는 블록의 전체 경계를 또한 포함한다.
사실, 모션 벡터 정제는 주로 디코더에 관련된다. 특정 모션 벡터의 정제에 관한 정보가 비트스트림에서 인코딩되지 않으므로, 인코딩 측은 정제된 모션 벡터들을 고려하여 참조 이미지들을 생산하기 위해 디코딩 루프에서만 정제를 적용한다.
유사성은, 예를 들어, 모션 벡터 후보에 의해 포인팅되는 위치에서 템플릿에 대응하는 참조 화면 영역과 템플릿 사이의 절대 차이들의 합일 수 있는 비용 함수에 의해 측정될 수 있다. 모든 후보 모션 벡터들에 대한 SAD(sum of absolute differences)를 계산한 후에, SAD가 가장 작은 후보가 선택된다. 그러나, SAD는 단지 예이고, 제곱 차이들의 합 또는 상관 등과 같은 임의의 다른 유사성 메트릭이 적용될 수 있다는 점이 주목된다.
제1 후보 모션 벡터 및 제2 후보 모션 벡터는 미리 결정된 템플릿에 가장 유사한(그리고, 각각, 두번째 가장 유사한) 현재 블록의 예측기의 위치를 각각 참조한다. 이러한 템플릿은, 예를 들어, JVET-D0029에서 설명되는 기술들 중 하나를 사용하여, 선행 단계에서 생성될 수 있다.
정제에 의한 모션 벡터 결정을 위한 방법이 도 18에 관하여 다음에서 설명된다. 이러한 방법은 S1801에서 시작한다. S1802에서, 모션 벡터의 초기 추정치 MV0이 획득되고, 이러한 모션 벡터의 초기 추정치에 기초하여 제1 검색 공간이 설정된다. 제1 검색 공간은 MV0과 연관된 위치를 둘러싸는 위치들에 포인팅하는 후보 모션 벡터를 포함한다. 제1 검색 공간의 후보 모션 벡터와 연관된 비용들이 S1803에서 계산되고, 계산된 비용에 따라, 제1 후보 모션 벡터 및 제2 후보 모션 벡터, P1 및 P2가 선택된다. P1 및 P2에 따라, 하나 이상의 후보 모션 벡터(들)를 포함하는 제2 검색 공간이 단계 S1804에서 설정된다. 제2 검색 공간은 꽤 작을 수 있으며(따라서 신속하게 검색될 수 있으며) 그 이유는 2개의 가장 유망한 포인트들에 기초하여 설정되기 때문이다. 특히, 2개의(또는 2개보다 많은) 위치들을 고려하는 것에 의해, 비용(즉, 비용 함수의 값)이 감소하는(또는 아마도 감소하는) 트렌드 방향이 결정될 수 있고, 제2 검색 공간은 트렌드 방향으로 설정될 수 있고, 예를 들어, 단지 초기 모션 벡터에 기초하여 또는 단일 최상의 포인트의 기초하여 제2 검색 공간을 설정하는 것에 비해 더 작은 크기를 가질 수 있다. 일반적으로, 본 개시내용은 2개의 최상의 후보 모션 벡터들(이들이 포인팅하는 각각의 위치들)을 고려하는 것으로 제한되는 것은 아니라는 점이 추가로 주목된다. 일반적으로, 비용 함수의 트렌드는 2개보다 많은 최상의 위치들을 고려하는 것에 의해 훨씬 더 정밀하게 결정될 수 있다. 이러한 경우들에서, 비용 함수가 감소하는 방향은 제1 검색 공간의 위치들 중에서 비용들이 최저인 고려되는 2개 이상의 위치들에 기초하여 결정된다. 다음으로, 제2 검색 공간이 트렌드의 방향으로의 위치에서 설정된다. 따라서, 가장 유망한 위치들을 여전히 체크하면서, 검색 공간의 그리고 특히 제2 검색 공간의 위치들의 위치들의 수가 낮게 유지될 수 있다.
제2 검색 공간의 후보 모션 벡터(들)와 연관된 비용들이 S1805에서 계산된다. 제1 및 제2 검색 공간의 후보 모션 벡터들로부터, 최상의 후보 모션 벡터, 즉, 최저 비용과 연관된 후보 모션 벡터가 (S1806에서) 선택된다. 최상의 후보 모션 벡터를 선택한 후, 모션 벡터 정제가 (S1807에서) 종료된다.
본 개시내용의 상이한 실시예들은, 그 중에서도, 다음에서 설명될 바와 같이, 제1 검색 공간 및 제2 검색 공간이 결정되는 방식에서 상이할 수 있다.
제1 예시적인 실시예
제1 예시적 실시예(도 4 참조)에 따르면, 제1 검색 공간의 후보 모션 벡터들 각각에 대해 비용 함수가 평가된다. 다시 말해서, 이러한 모션 벡터들 각각에 대해, 비용 함수의 값인, 각각의 비용이 계산되거나 또는 추정되거나 또는 다른 방식으로 결정된다. 이러한 평가에 따르면, 비용이 최소인 후보 및 비용이 두번째 최저인 후보가 선택된다. 도 4의 예에서, 초기 모션 벡터 MV0은 위치 405에 포인팅한다. 제1 검색 공간에서의 위치 409는 최저 비용을 갖고, 따라서 제1 후보 모션 벡터 MV0'로서 선택된다. MV0의 우측 이웃 406은 두번째 최저 비용을 갖고, 따라서 제2 후보 모션 벡터 MV0'secondBest로서 선택된다. MV0' 및 MV0'secondBest는 제2 검색 공간을 구성하는데 사용된다. 이러한 예에서, 제2 검색 공간은, 위치들 409 및 406(즉, MV0' 및 MV0'secondBest)을 연결하는 라인 상에 위치되는 1/2 픽셀 위치들 411 및 412(도면에서 빈 원들)에 포인팅하는, 2개의 추가적 후보 모션 벡터들을 포함한다. 이러한 예에서, 1/2 픽셀 위치들 411 및 412은, 각각, MV0' 위 및 아래의 1/2 픽셀 위치들이다. 제1 검색 공간의 후보들 및 제2 검색 공간의 후보들로부터, 비용이 최소인 후보가 최종 모션 벡터 MV0", 이러한 예에서는 위치 412로서 선택된다.
도 4의 예는 하나의 현재 블록 및 하나의 참조 화면, 즉 참조 화면 리스트 L0에서 인덱스 0을 배정받은 참조 화면에 대한 모션 벡터 정제를 도시한다. 현재 블록의 도면은 단지 개략적이고, 검색 공간 포인트의 위치가 템플릿의 상부 좌측 코너에 의해 주어지는 검색 템플릿의 위치에 대응하는 것을 도시한다. 본 개시내용은 임의의 크기 및 형태의 템플릿에 적용가능하다. 템플릿은 유리하게는 현재 블록의 크기의 블록이고, 2개의 최상의 후보 모션 벡터들의 검색은 제1 검색 공간 및 제2 검색 공간에서의 템플릿 (블록) 매칭에 의해 수행된다. 현재 블록은 일반적으로 디코더에서 이용가능하지 않기 때문에, 템플릿은 이미 디코딩된 이미지 부분들로부터 구성된다. 예를 들어, 양방-예측의 경우, 각각의 2개의 참조 화면들 RefPict0 및 RefPict1과 연관된 2개의 초기 모션 벡터들 MV0 및 MV1이 존재한다. 다음으로, 모션 벡터 정제에 대한 템플릿 블록은 Refpict0에서의 MV0 및 RefPict1에서의 MV1에 의해 각각 포인팅되는 2개의 블록들의 가중 평균화에 의해 구성될 수 있다. 이미 디코딩된 현재 화면 또는 각각의 참조 화면들 또는 가장 가까운 화면들로부터의 이미 디코딩된 픽셀들에 기초하여 다른 템플릿 구성이 가능하다.
제1 후보 모션 벡터의 팁(즉, 엔드포인트) 및 제2 후보 모션 벡터 MV0'secondBest의 팁을 연결하는 라인의 방향에 따라, 제2 검색 공간의 크기(즉, 후보들의 수) 및/또는 위치(위치)(즉, 제2 검색 공간의 후보 모션 벡터(들)에 의해 포인팅되는 위치(들))가 결정된다. 특히, 제1 및 제2 후보 모션 벡터들의 팁들을 연결하는 것에 의해 주어지는 제1 후보 모션 벡터 및 방향(라인)은 제2 단계에서 사용되는 후보들의 수 및/또는 좌표들에 관해 결정하는데 사용된다. 제2 검색 공간의 크기는 제1 후보 모션 벡터 MV0'가 포인팅하는 위치에 따라 결정될 수 있다. 그러나, 본 발명은 2개의 최상의 포인트들에 기초하여 제2 검색 공간의 크기 및 위치 양자 모두를 결정하는 것으로 제한되는 것은 아니라는 점이 주목된다. 예를 들어, 제2 검색 공간의 크기(위치들의 수의 면에서)는 고정될 수 있고, 2개의 최상의 위치들에 기초하여 제2 검색 공간의 위치만이 결정될 수 있다.
본 개시내용의 제1 실시예에 따른 검색 공간 구성들이 도 5 내지 도 8, 도 10, 및 도 11에 예시적으로 도시된다. 이러한 예들에서, 제2 검색 공간의 크기는 항상 2 이지만, 그 위치는 제1 검색 공간의 2개의 최상의 포인트들에 의해 주어진다. 도면들에서 보여질 수 있는 바와 같이, 제1(예를 들어, 정수) 픽셀 해상도를 갖는 제1 검색 공간은 도 4에 이미 도시된 "정사각형(square)" 성상도를 갖는다. 이러한 제1 검색 공간으로부터, 9개의 포인트들(초기 벡터를 둘러싸는 8개의 포인트들이 MV0을 포인팅함)로 제1 후보 모션 벡터 MV0' 및 제2 후보 모션 벡터 MV0'secondBest가 비용 함수에 따라 식별된다.
유리하게는, 제1 실시예에 따르면, 복수의 후보 모션 벡터들을 포함하는, 제1 검색 공간은 정수 픽셀 해상도를 갖는다. 따라서, 제1 단계 후에 비용 함수가 최소화되는 위치에 포인팅하는 제1 후보 모션 벡터 MV0', 및 비용 함수의 두번째 최저 값을 갖는 제2 후보 모션 벡터 MV0'secondBest가, 정수 픽셀 검색 해상도를 사용하여 먼저 결정된다.
또한, 제2 검색 공간은 제1 검색 공간의 해상도에 관하여 분수 픽셀 해상도를 갖고, 제1 검색 공간에 포함되는 제1 및 제2 후보 모션 벡터들에 의해 주어지는 방향으로 위치되는 위치들에 포인팅하는 하나 이상의 후보 모션 벡터를 포함한다. 따라서, 제2 스테이지(보다 정밀하게는, 도 3으로부터의 "스테이지 2(stage 2)"(303))에서, 제2 검색 공간의 하나 이상의, 예를 들어, 2개의, 1/2 픽셀 위치들(즉, 새로운 검색 윈도우) 이러한 것은, MV0'로 제1 검색 공간의 최상의 후보가 알려져 있기 때문에, 모션 벡터 선택을 최종적으로 수행하기 위해 MV0'의 비용은 MV0'보다 더 낮은 비용을 갖는 후보 모션 벡터가 발견될 때까지 제2 검색 공간의 추가적 포인트들의 비용과 추가로 비교될 필요만 있다는 점을 의미한다. 이러한 경우, 제2 검색 공간을 수반하는 제2 검색 단계는 제1 검색 단계보다 더 미세한 정밀도를 갖는다. 다시 말해서, 제2 검색 공간이 제1 검색 공간보다 더 높은 해상도(즉, 검색 공간 위치들 사이의 더 낮은 거리)를 가지면 경우에 유리할 수 있다. 이러한 방식으로, 검색 공간은 그 구성의 각각의 스테이지로 정제되고, 2개보다 많은 이러한 스테이지들을 포함할 수 있다. 예를 들어, 조인트 제1 및 제2 검색 공간의 2개의 최상의 포인트들에 기초하여, 제1 및 제2 검색 공간들보다 해상도가 더 높은 제3 검색 공간이 구성될 수 있다.
도 4 내지 도 8의 예에서, 제2 검색 공간의 하나 이상의 1/2 픽셀 위치는 차이 벡터 MV0'diff = (MV0' - MV0'secondBest)에 대응하는 MV0'와 MV0'secondBest를 연결하는 라인의 방향에 따라 선택된다. 따라서, 제2 검색 공간은 MV0'diff와 화면 경계(또는 참조 화면에서의 픽셀들의 수평 행) 사이의 각도에 따라 결정된다. 제2 검색 단계의 끝에서, 최종 모션 벡터 MV0"이 도 3의 스테이지 304에서 결정된다.
추가로, 제2 검색 공간의 후보 모션 벡터들 중 적어도 하나는 유리하게는 제1 검색 공간에 포함되는 제1 및 제2 후보 모션 벡터들에 의해 포인팅되는 위치들 사이의 위치에 포인팅한다. 제2 검색 공간은 제1 및 제2 후보 모션 벡터들 사이의 포인트인 단일 후보 모션 벡터를 포함할 수 있다는 점이 주목된다.
본 개시내용의 제1 실시예에 따른 추가의 예시적인 검색 공간 성상도들이 도 5 내지 도 8, 도 10, 및 도 11에 관하여 다음에서 설명될 것이다.
도 5 내지 도 8에서, MV0'은 초기 모션 벡터 MV0의 가장 가까운 또는 두번째 가장 가까운 이웃하는 위치들 중 하나(즉, 제1 검색 공간의 중심에서의 위치의), 즉, MV0 위치를 바로 둘러싸는 위치들 중 하나에 포인팅한다. 제2 검색 공간은, 양자 모두 MV0'와 MV0'secondBest를 연결하는 라인 상의 위치들에 대략 포인팅하는, MV0'의 2개의 측면들 상의 위치들에서 포인팅하는 2개의 후보 모션 벡터들을 포함하는 것으로 결정된다. 다시 말해서, 제2 검색 공간은 MV0'과 MV0'secondBest 사이의 제1 위치 및 MV0'와 MV0'secondBest를 연결하는 방향에서의 그리고 제1 위치와는 다른 측 상에 위치되는 제2 위치를 포함한다.
여기서 뿐만 아니라 본 출원의 나머지에서, "가장 가까운(nearest)" 이웃 또는 이웃하는 또는 인접하는 위치는 고려되는 (부분적) 검색 공간의 해상도에서의 주어진 위치에 인접하는 위치를 지칭한다. 예를 들어, 참조 화면이 분수 1/4 픽셀 해상도를 갖더라도, 제1 검색 공간이 정수 해상도를 가지면, 인접 위치들 또한 제1 검색 공간에서 서로로부터 정수 픽셀 거리를 갖는다. 이러한 것은 제1 검색 공간 위치들이 참조 화면의 분수 픽셀 위치들 상에 위치될 수 있더라도 적용된다.
또한, "두번째 가장 가까운 위치(second nearest position)"는 2개의 가장 가까운 이웃들(직사각형으로 배열되는 검색 공간들에서의 대각선 이웃들)에 인접하는 위치를 지칭한다. 그러나, 도면들 중 어느 것에도 도시되지 않은 일반적인 경우, 하나의 방향(예를 들어, 수직 방향)으로의 인접하는 위치까지의 거리는 다른(예를 들어, 수평) 방향으로의 거리와 상이할 수 있다. 이러한 경우, 본 개시내용에서 사용되는 바와 같은 "가장 가까운 이웃(nearest neighbor)"이라는 용어는, 거리에서의 가능한 차이에 관계없이, 양자 모두의 방향들로 인접하는 위치에 적용된다.
도 5 및 6에서, MV0' 및 MV0'secondBest는 제1 검색 공간의 해상도(즉, 전체 픽셀 해상도)에서 서로에 관하여 가장 가까운 이웃들이다. 도면들에서, MV0'와 MV0'secondBest를 연결하는 라인은 수직 라인이다. 도 5에 도시되는 검색 공간 성상도는 도 4에 도시되는 검색 공간 성상도와 동일하다. 제1 후보 및 제2 후보 모션 벡터들을 연결하는 라인은 MV0'secondBest가 MV0' 위 또는 아래에 놓이기보다는 오히려 MV0'의 좌측 또는 우측에 놓이면 경우 수평 라인에 대응한다. 도면들에 도시되지 않더라도, 제1 실시예는 또한 제1 후보 모션 벡터와 제2 후보 모션 벡터가 수평 라인에 의해 연결되는 경우에 적용된다.
도 7에 도시되는 예에서, 제2 후보 모션 벡터 MV0'secondBest는 제1 후보 모션 벡터 MV0'의 두번째 가장 가까운 이웃에 포인팅한다. 이러한 경우, 제1 및 제2 후보 벡터들을 연결하는 라인은 대각선 라인이다.
현재 블록 및 템플릿 블록의 예측기 사이의 유사성은 하나의 방향으로 단조롭게 증가하는 것으로 보통 예상된다. 따라서, 도 5 내지 8에서와 같이, 제1 검색 공간의 해상도에서, 후보 벡터들 MV0' 및 MV0'secondBest는 가장 가까운 또는 두번째 가장 가까운 이웃들일 것이다. 그러나, 도 8에 도시되는 바와 같이, 비용 함수의 값이 후보 모션 벡터들 MV0' 및 MV0'secondBest 각각에 대해서보다 더 높은 검색 공간의 제3 후보 모션 벡터가 MV0'과 MV0'secondBest 사이에 존재한다는 것이 발생할 수 있다. 예를 들어, 이러한 상황은 인코딩되는/디코딩되는 비디오에서의 잡음으로 인해 발생할 수 있다. 이러한 상황에서, MV0'와 MV0'secondBest를 연결하는 라인 상의 2개의 분수 픽셀 위치들은 MV0'secondBest보다 MV0'에 더 가까운 제2 검색 공간을 형성하도록 선택될 수 있지만, 제1 검색 공간의 2개의 최상의 포인트들에 의해 주어지는 방향으로 여전히 위치된다. 그러나, 본 개시내용은 이러한 진행에 의해 제한되는 것은 아니다. 예를 들어, 낮은 복잡도를 유지하기 위해, 비용 함수 트렌드가 비용들이 최저인 2개 이상의 위치들에 기초하는 모노톤이 아니면, 디폴트 제2 검색 공간은, 예를 들어, 수평 방향을 가정하여 설정될 수 있다. 수평 방향은, 카메라의 패닝 뿐만 아니라 자연 비디오들에서의 통상적인 객체들의 이동으로 인해, 자연 비디오 시퀀스들에서 더 가능성 있는 방향으로서 고려될 수 있다. 다시 말해서, 제1 검색 공간의 제1 및 제2 최상의 모션 벡터 후보들에 기초하는 비용 함수의 명확한 트렌드가 존재하지 않으면, 바람직하게는 제1 최상의 후보 모션 벡터 주위의 일부 포인트들이 제2 검색 공간으로서 설정된다. 제2 검색 공간의 크기를 감소시키기 위해, 디폴트 방향이 가정될 수 있고, 대응하는 디폴트 제2 검색 공간이 설정될 수 있다.
제1 실시예에 따른 제2 스테이지에서의 제2 검색 공간의 결정에 대한 진행이 도 9에 도시된다. 특히, 제2 검색 공간의 후보 모션 벡터들이 포인팅하는 픽셀 위치들은 차이 벡터 MV0'diff = (MV0' - MV0'secondBest)의 성분들에 따라 결정된다.
MV0'diff가 수평(즉, 0이 아닌) 성분만을 가지면, 제2 검색 공간은, 도 9의 (a)에 도시되는 바와 같이, 제2 검색 공간의 해상도(예를 들어, 1/2 픽셀 해상도)에 대응하는 MV0'까지의 거리를 각각 갖는 MV0'의 좌측에 그리고 우측에 2개의 위치들을 포함하는 것으로 결정된다. 추가로, MV0'diff가 수직 성분만을 가지면, 제2 검색 공간은 제2 검색 공간의 해상도에 대응하는 MV0'까지의 거리를 각각 갖는 MV0' 위 및 아래에 2개의 위치들을 포함하는 것으로 결정된다(도 9의 (b) 참조).
MV0'diff가 부분 (c) 및 (d)에 도시되는 바와 같이 (0이 아닌 값이 있는) 수평 및 수직 성분 양자 모두를 가지면, 제2 검색 공간은 제2 검색 공간의 해상도에서 MV0'과 연관된 위치에 관하여 두번째 가장 가까운 (대각선) 이웃 위치들에 선택된다. 수평 및 수직 성분이 양자 모두 포지티브 또는 양자 모두 네거티브이면, 도 9의 (c)에 도시되는 바와 같이, MV0'에 관하여 상부 좌측 상의 그리고 하부 우측 상의 두번째 가장 가까운 이웃 위치들이 선택된다. 하나의 성분이 포지티브이고 다른 성분이 네거티브이면, MV0'에 관하여 하부 좌측 상의 그리고 상부 우측 상의 두번째 가장 가까운 이웃 위치들이 선택된다(도 9의 (d)). 그렇지 않고, MV0'diff가 (예를 들어, 동일한 비용들을 갖는 제1 검색 공간의 모든 후보들과 같은 비용 함수의 특성들로 인해) 결정될 수 없으면, MV0'diff는 (0, 0)으로서 설정될 수 있고, 예를 들어, 도 9의 (a) 내지 (d)에 도시되는 대안들 중, 임의의 선택이 디폴트 제2 검색 공간에 대해 행해질 수 있다. 그러나, 이러한 경우 일반적으로 비디오 시퀀스들의 통계적 속성들로 인해((b), (c) 및 (d)에 비해) 검색 포인트들의 도 9의 (a) 구성이 바람직하다(수평 객체 또는 카메라 이동은, 보통 관심의 영역이 수평 방향으로 놓이는 것과 같이, 수직보다 더 가능성이 있음).
도 9에서 뿐만 아니라 좌표들이 고려되는 본 출원의 나머지에서, 수평 축("x-축(x-axis)")의 포지티브 방향은 (통상의 데카르트 좌표계에서와 같이) 우측에 포인팅하는 반면, 수직 축의 포지티브 방향("y-축(y-axis)")은 (데카르트 규약과는 반대로 그러나 이미지 처리에서 통상적으로 사용되는) 하부에 포인팅한다는 점이 주목되어야 한다.
도 5 내지 8에 도시되는 검색 공간 성상도들 모두에서, 제1 후보 모션 벡터 MV0'은 제1 검색 공간의 에지에 있는 픽셀 위치들에 포인팅한다. 특히, 제1 검색 공간의 2개의 후보 모션 벡터들 사이의 위치에 하나의 후보 모션 벡터가 포인팅한다. 제2 검색 공간의 다른 후보 모션 벡터는 제1 검색 공간 외부의 위치, 즉 제1 검색 공간의 후보 모션 벡터들에 의해 둘러싸이지 않는 위치에 포인팅한다.
그러나, 위에 언급된 바와 같이, 제2 검색 공간의 후보 모션 벡터(들)의 위치(들) 뿐만 아니라, 후보 모션 벡터들 MV0'와 MV0'secondBest를 연결하는 라인의 방향에 따른 크기(즉, 후보 모션 벡터(들)의 수) 또한 마찬가지이다. 보다 구체적으로, 제1 후보 모션 벡터 MV0'이 제1 검색 공간의 중심에서의 위치에 포인팅하면, 제2 검색 공간에 대해 하나의 후보 벡터가 충분하다. 특히, 제2 검색 공간의 단일 후보 모션 벡터는 다음으로 제1 검색 공간의 2개의 후보 모션 벡터들 사이의 제2 검색 공간의 해상도의 위치에 포인팅한다. 그러나, 도 5 내지 8에 도시되는 검색 공간 성상도들과 대조적으로, 제1 검색 공간 외부의 제2 후보 모션 벡터가 생략된다. 도 9에 도시되는 진행은 제2 검색 공간의 단지 하나의 후보 모션 벡터, 즉 제2 검색 단계의 검색 윈도우를 결정하도록 따라서 수정된다.
단지 하나의 모션 벡터 후보를 포함하는 제2 검색 공간의 예들이 도 10 및 도 11에 도시된다. 도 10에서, MV0' 및 MV0'secondBest는 (수평으로 인접하는) 가장 가까운 이웃들이고, 도 11에서, MV0' 및 MV0'secondBest는 (대각선으로 인접하는) 두번째 가장 가까운 이웃들이다. 양자 모두의 도면들에 도시되는 바와 같이, MV0'은 제1 검색 공간 내의 위치에 포인팅한다. 다시 말해서, MV0'에 인접하는 모든 픽셀 위치들에 포인팅하는 후보 모션 벡터들이 존재한다. 인접하는 위치에 포인팅하는 이러한 후보 모션 벡터들 중 하나는 MV0'secondBest이다.
다시 말해서, 제2 검색 공간은, 제1 검색 공간에서 MV0'에 인접하는 그리고 MV0'과 MV0'secondBest를 연결하는 것에 의해 주어지는 방향으로 위치되는 제2 위치가 제1 검색 공간에 속하면 제1 후보 모션 벡터 MV0'이면, 제1 및 제2 후보 모션 벡터 사이의 분수 픽셀 위치에 포인팅하는 단지 하나의 후보 모션 벡터를 포함한다. 이러한 상황에서, 제2 위치가 MV0' 뿐만 아니라 MV0'secondBest보다 계산되고 더 높은 비용을 이미 갖기 때문에, 저-비용 후보가 이러한 방향에서 발견될 수 있는 확률이 오히려 낮다. 일반적으로, 검색 공간에서의 위치들의 수는 또한 MV0'보다 (비용의 면에서) 더 나은 후보 모션 벡터가 발견될 수 있는 가능성에 또한 의존할 수 있다. 이러한 가능성은 제1 검색 공간의 위치들에 대해 계산되는 비용 함수를 보간하는 것 및/또는 추론하는 것에 의해 추정될 수 있다.
위 예들에서, 제1 검색 공간은 정사각형 격자로 배열되는 9개의 인접하는 위치들을 갖는 것으로 도시되었다는 점이 주목된다. 그러나, 본 개시내용은 검색 공간의 특정한 크기 또는 픽셀들의 특정한 배열로 제한되는 것은 아니다. 유사하게, 제1 실시예는 동일한 또는 상이한 해상도들을 갖는 제1 및 제2 검색 공간들에 적용될 수 있다(후자는 도 5 내지 도 8에 도시됨). 제2 검색 공간은 또한 2개보다 많은 위치들을 가질 수 있다.
제1 예시적인 실시예에 따르면, 도 18의 정제 방법에서 제1 검색 공간의 후보 모션 벡터들에 대한 비용들을 계산하는 서브단계 S1803이 도 19에 도시된다. 변수들 i, P1, 및 P2가 초기화되고, 여기서 i는 검색 공간(예를 들어, 제1 검색 공간)의 각각의 후보들의 각각을 후속적으로 표기하는 인덱스 변수이다. 변수들 P1 및 P2는 비용이 최저인 그리고 두번째 최저인 각각의 모션 벡터 후보들(즉, 검색 공간에서의 위치 및 위치와 연관된 비용 값)을 표기한다. 시작에서, P1 및 P2는 어느 위치와도 연관되지 않은 값으로 초기화될 수 있고, P1 및 P2와 연관된 각각의 비용들은 비용 계산에서 아마도 획득될 수 있는 임의의 값보다 더 높은 값, 즉 변수로 표현가능한 최대 비용으로 초기화될 수 있다. i에 대해 반복하는 루프에서, 제i 후보 모션 벡터의 비용들이 계산된다(S1902). 제i 후보 모션 벡터의 비용들은 비용이 최저인 현재 저장된 모션 벡터 P1의 비용들과 비교된다(S1903). 제i 후보 모션 벡터의 비용들이 저장된 P1의 비용보다 더 낮으면, 다음으로 P1은 제i 후보 모션 벡터로 설정되고 저장된다(S1904). 제i 후보의 비용들이 P1의 비용보다 더 낮지 않으면, 다음으로 제i 후보 모션 벡터의 비용들은 P2의 비용들과 비교된다(S1905). 제i 후보 모션 벡터의 비용들이 P2의 비용보다 더 낮으면, 다음으로 P2는 제i 후보 모션 벡터로 설정되고 저장된다(S1906). 2개의 비교하는 단계들 S1903, S1905 및 아마도 저장하는 단계들 S1904, S1906 중 하나 후에, i가 증분된다. i가 제1 검색 공간에서 모션 벡터 후보들의 수를 표현하는 최대 값 imax에 아직 도달하지 않았으면(S1908), 이러한 방법은 비용 계산 단계 S1902로 복귀한다. i가 imax에 도달하였으면(S1908), 비용 계산이 종료되고(S1909), 도 18의 정제가 계속된다.
제2 검색 공간의 후보 모션 벡터들에 대한 비용들을 계산하는 서브단계 S1805는 도 19의 위 설명에 설명되는 단계들과 유사하게 수행될 수 있다. 그러나, 제i 후보 모션 벡터의 비용들을 P2의 비용들과 비교하는 단계 S1905 및 제2 후보 모션 벡터 P2를 저장하는 단계 S1906는 생략될 수 있다. 이러한 것은, 제2 검색 공간 검색에서, 결과가 제1 및 제2 검색 공간에 대해 최상의 모션 벡터이기 때문이다. 제2 검색 공간이 추가로 확장되지 않으면, 제2 최상의 모션 벡터는 추가의 용도를 갖지 않는다.
제2 예시적인 실시예
제2 예시적인 실시예에 따르면, 제2 검색 공간의 결정에 사용되는 제1 후보 모션 벡터 및 제2 후보 모션 벡터는, (제1 예시적인 실시예에서와 같이) 최저 및 제2 매칭 비용과 각각 연관되는 제1 검색 공간에 포함되는 후보 모션 벡터들이다.
추가로, 제2 예시적인 실시예에 따르면, 도 3의 검색 공간 결정 유닛(310)은, 동작에서, 영역인 제2 검색 공간의 위치를 결정한다. 여기서, "영역(region)"이라는 용어는 각각의 적어도 2개의 후보 모션 벡터들이 포인팅하는 적어도 2개의 위치들을 포함하는 공간을 지칭한다. 특히, 상기 적어도 2개의 위치들은 제2 검색 공간의 픽셀 해상도에서 인접한다. 제2 검색 공간은 도 12 및 도 13에 도시되는 바와 같이 제1 검색 공간과 동일한 해상도를 가질 수 있다. 그러나, 검색 공간들은 또한 해상도에서 상이할 수 있다.
유리하게는, 도 3의 검색 공간 구성의 제1 스테이지(301)에서 결정되는, 검색 공간은 모션 벡터 MV0의 초기 추정치 및 인접하는 위치들에 포인팅하는 후보 모션 벡터들, 즉, 제1 검색 공간의 픽셀 해상도에서의 모션 벡터의 초기 추정치의 MV0에 의해 포인팅되는 위치에 가장 가까운 이웃들을 포함한다. 다시 말해서, "정사각형(square)" 지오메트리(형상)을 갖는 제1 검색 공간이 제1 스테이지 구성의 제1 스테이지(301)에서 구성되는 제1 실시예와 대조적으로, 제1 검색 공간은 "크로스(cross)" 지오메트리를 갖는다. 그러나, 동일한 검색 공간이 인코더 및 디코더 양자 모두에서 이용되는 한, 제1 검색 공간은 임의의 형상을 가질 수 있다는 점이 주목된다. 검색 공간이 크로스 또는 정사각형 지오메트리 또는 임의의 다른 배열과 같은 특정 미리 정의된 형태를 갖고, 초기 벡터 MV0의 위치가 단지 이러한 제1 검색 공간의 위치를 결정한다면, 구현의 간략함을 위해 이것이 유리하다. 다른 한편, 본 발명은 또한 (후보 MV들에 의해 포인팅되는 위치들의 면에서) 크기 및/또는 형상이 상이한 제1 검색 공간과 작동할 수 있다.
비용 함수의 값이 최저인 제1 후보 모션 벡터 MV0' 및 값이 두번째 최저인 제2 후보 MV0'secondBest가 계산되고 선택된다(302).
MV0'가 포인팅하는 위치를 정의하는 좌표들에 그리고 제1 및 제2 후보 모션 벡터들 MV0' 및 MV0'secondBest가 포인팅하는 위치들을 연결하는 라인에 의해 주어지는 방향에 기초하여, 도 3의 제2 스테이지(303)에서 제2 검색 공간의 구성을 수행하기 위해 영역이 선택된다.
보다 구체적으로, 제2 검색 공간에 포함되는 하나의 후보 모션 벡터는 제1 검색 공간에 포함되지 않는 제1 제2 후보 모션 벡터의 위치들을 연결하는 라인 상의 제2 검색 공간의 해상도에서 MV0'의 위치에 가장 가까운 위치에 포인팅한다. 제2 검색 공간의 픽셀 해상도에서 인접하는 위치들에 포인팅하는 그리고 제1 검색 공간에 포함되지 않는 하나 이상의 추가적 후보 모션 벡터가 제2 검색 공간에 포함된다.
이러한 제2 실시예에 따른 검색 공간 구성들의 예들이 도 12 및 도 13에 도시된다. 예로서, 제2 검색 공간의 픽셀 해상도는 제1 검색 공간의 픽셀 해상도와 동일하다. 도면들에서 보여질 수 있는 바와 같이, 초기 후보 모션 벡터가 포인팅하는 위치는 각각의 픽셀 해상도에서 MV0에 인접하는 4개의 픽셀 위치들, 즉 4개의 가장 가까운 이웃들에 의해 둘러싸인다. MV0 및 MV0에 인접하는 이러한 4개의 위치들에 포인팅하는 후보 모션 벡터들은 제1 검색 공간에 포함된다. 비용 함수에 따라 제1 검색 공간의 비용이 최저인 그리고 두번째 최저인 제1 및 제2 후보 모션 벡터들 MV0' 및 MV0'secondBest가 결정된다. 차이 벡터 MV0'diff에 의해 주어지는 MV0'와 MV0'secondBest를 연결하는 라인의 방향 및 MV0'에 의해 포인팅되는 위치는 도 3의 제2 스테이지(303)에서 제2 검색 공간을 결정하는데 사용된다. 여기서, MV0'diff의 정의는 제1 예시적인 실시예의 설명에서와 동일하다. 도 12 및 도 13 양자 모두에서, 제2 검색 공간은 (MV0' + MV0'diff)에 의해 주어지는 MV0'와 MV0'secondBest를 연결하는 라인 상의 위치 및 제1 검색 공간의 후보 모션 벡터들에 의해 포인팅되지 않는 상기 라인 상의 상기 위치에 인접하는 위치들(즉, 가장 가까운 이웃들)에 대략 포인팅하는 후보 모션 벡터를 포함한다.
도 12에서, MV0' 및 MV0'secondBest는 제1 검색 공간의 해상도에서 인접하지 않고; 이들은 두번째 가장 가까운 이웃들이다. 제2 검색 공간은 벡터들, 즉 상기 라인 상의 상기 위치 및 상기 위치의 4개의 가장 가까운 이웃들에 포인팅하는 벡터를 포함한다.
도 13에서, MV0' 및 MV0'secondBest는 제1 검색 공간의 해상도에서 인접하는 위치들에 포인팅한다. 이러한 경우, (MV0' + MV0'diff)에 의해 정의되는 MV0'와 MV0'secondBest를 연결하는 라인 상의 제2 검색 공간에서의 위치는 MV0'의 가장 가까운 이웃이다. 다음으로, 제2 검색 공간은 (MV0' + MV0'diff)에 대응하는 위치에 포인팅하는 벡터 및 MV0'과 동일하지 않은 (MV0' + MV0'diff)의 3개의 가장 가까운 이웃들에 포인팅하는 후보 모션 벡터를 포함한다. 따라서, 제2 검색 공간은 4개의 후보 모션 벡터들을 포함한다.
그러나, MV0' 및 MV0'secondBest가 제1 검색 공간의 픽셀 해상도에서 가장 가까운 이웃들도 아니거나 또는 2번째 가장 가까운 이웃들도 아니면, 즉, MV0' 및 MV0'secondBest가 각각 포인팅하는 픽셀 위치들 사이의 제1 검색 공간에 하나의 픽셀 위치가 존재하면, 동일한 제2 검색 공간/윈도우가 도 13에 도시되는 경우에서와 같이 결정될 수 있다.
제2 검색 공간에 의해 표시되는 검색 좌표들이 제1 검색 공간에 이미 포함되면, 다음으로 제2 검색 동작은 수행되지 않는다(종료된다). 이러한 것은 특히 제1 및 제2 스테이지들에서 사용되는 비용 함수 및/또는 매칭 템플릿이 동일한 경우일 수 있다. 그렇지만 다른 대안적인, 매칭 템플릿 및/또는 비용 함수가 제1 및 제2 검색 단계들에 대해 상이하기 때문에, 제2 검색 동작이 수행될 수 있다. 본 개시내용은 검색 공간의 크기의 감소 및 특히 비용 함수 개발의 특성들에 기초하여 제2 검색 공간을 설정하는 것에 의한 감소를 고려한다는 점이 주목된다. 임의의 템플릿이 본 발명에 적용가능하며, 이는 제1 검색 공간 및 제2 검색 공간과 같은 각각의 부분적 검색 공간들 또는 검색 공간 결정이 2개보다 많은 스테이지들에 캐스케이딩되면 추가의 검색 공간들에 대해 동일하거나 또는 상이할 수 있다.
제2 예시적인 실시예에 따르면, 도 18에 도시되는 모션 벡터 정제에서 제1 검색 공간의 후보 모션 벡터의 비용들을 계산하는 서브단계 S1803((제2 검색 공간의 경우 서브단계 S1805)은 도 19에 관하여 위에 설명된 제1 실시예에 따른 계산과 유사하게 수행될 수 있다.
제3 예시적인 실시예
지금까지 설명된 실시예들에서, 도 3에 도시되는 검색 공간 결정 유닛(310)은 매칭 비용들이 최저인 그리고 두번째 최저인 제1 검색 공간의 후보 모션 벡터들인 제1 및 제2 후보 모션 벡터를 제1 검색 공간으로부터 식별한다.
본 발명의 제3 예시적인 실시예에 따르면, 제1 및 제2 후보 모션 벡터의 선택(302)에 대해, 모션 벡터의 초기 추정치 MV0이 포인팅하는 시작 위치 주위의 위치들에 포인팅하는 4개의 후보 모션 벡터들에 대해 템플릿 매칭 비용들이 계산된다. 특히, 제2 검색 공간을 결정하기 위해, 모션 벡터의 추정치 MV0에 의해 포인팅되는 위치에 제1 검색 공간의 픽셀 해상도에서 인접하는 픽셀 위치들의 매칭 비용들이 평가된다. 상기 제1 및 제2 후보 모션 벡터들에 의해 포인팅되는 위치들에 제1 검색 공간의 픽셀 해상도에서 인접하는 그리고 모션 벡터의 추정치에 의해 포인팅되는 위치와 상이한 픽셀 위치가 제2 검색 공간의 제1 후보 모션 벡터에 의해 포인팅되는 것으로 결정된다. 이러한 제1 후보 모션 벡터는, 도 14에 도시되는 바와 같이, 매칭 비용들이 감소할 것으로 예상되는 사분면 상으로 포인팅한다.
도 15에서, 도 3에 도시되는 보다 일반적인 검색 공간 결정 유닛(310)의 수정인 검색 공간 결정 유닛(1510)이 도시된다. 모션 벡터의 초기 추정치 MV0에 기초하여, 도 14의 (a)에 예시적으로 도시되는, 제1 검색 공간이 도 15의 검색 공간 구성의 스테이지 1(1501)에서 결정되고, 모션 벡터에 대한 초기 추정치의 좌표들이 MV0_x 및 MV0_y)로 표기된다. 제1 검색 공간은 MV0 및 MV0에 대응하는 위치 주위의 픽셀 위치들, 예를 들어, 제1 검색 공간의 픽셀 해상도에서 MV0의 가장 가까운 이웃들에 포인팅하는 후보 모션 벡터들로 구성된다. 제1 검색 공간의 후보 모션 벡터들에 대해 매칭 비용들이 계산된다. 제1 및 제2 후보 모션 벡터를 선택하는 것(1501)에 의해, 매칭 비용들이 감소할 것으로 예상되는 바람직하게는 직교 방향들(예를 들어, 수직 및 수평)을 따르는 2개의 방향들이 계산된다.
도 14에서 뿐만 아니라 좌표들이 고려되는 본 출원의 나머지에서, 수평 축( "x-축(x-axis)")의 포지티브 방향은 우측에 포인팅하는 반면, 수직 축의 포지티브 방향("y-축(y-axis)")은 하부에 포인팅한다.
보다 정밀하게, 2개의 비교들 15021, 15022가 이루어지며, 이들에 대해 MV0에 대응하는 픽셀 위치에 인접하는 포인트들이 2개의 그룹들로 그룹화된다. 초기 후보 모션 벡터에 의해 포인팅되는 픽셀 위치에 제1 검색 공간의 픽셀 해상도에서 인접하는 그리고 초기 후보 모션 벡터와 동일한 수직 성분을 갖는 2개의 픽셀 위치들의 매칭 비용들이 비교된다. 이러한 제1 비교 15021에서 평가되는 2개의 비교된 벡터들로부터, 매칭 비용들이 더 낮은 벡터가 제1 검색 공간의 제1 후보 모션 벡터로서 선택된다.
또한, 초기 후보 모션 벡터에 의해 포인팅되는 픽셀 위치에 제1 검색 공간의 픽셀 해상도에서 인접하는 그리고 초기 후보 모션 벡터와 동일한 수평 성분을 갖는 2개의 픽셀 위치들의 매칭 비용들이 비교된다. 이러한 제2 비교 15022에서 평가되는 2개의 비교된 벡터들로부터, 매칭 비용들이 더 낮은 벡터가 제1 검색 공간의 제2 후보 모션 벡터로서 선택된다.
이러한 2개의 비교들의 결과로서, 제1 후보 모션 벡터와 동일한 수직 성분을 갖는 그리고 제2 후보 모션 벡터와 동일한 수평 성분을 갖는 픽셀 위치가 제2 검색 공간의 제1 후보 모션 벡터에 의해 포인팅되는 것으로 결정된다. 제1 및 제2 후보 모션 벡터는 수직 및 수평 방향으로 포지티브 또는 네거티브 1/2 평면을 각각 정의한다. 이들의 중첩하는 사분면은 매칭 비용이 감소할 것으로 예상되는 영역으로서 선택되고, 제2 공간을 정의한다. 도 14b에서, 제2 검색 공간은 하나의 포인트만을 포함한다.
제1 검색 공간은 모션 벡터의 초기 추정치 MV0 및 그 가장 가까운 이웃들, 즉 제1 검색 공간의 해상도에서 MV0에 인접하는 픽셀 위치들에 포인팅하는 후보 모션 벡터들을 포함할 수 있다. 제2 실시예에 관하여 또한 설명된 "크로스(cross)" 지오메트리를 갖는 이러한 검색 공간 구성이 도 14의 (a)에 도시된다. 사용되는 비용 함수에 따른 매칭 비용들이 검색 공간의 이러한 5개의 후보 모션 벡터들에 대해 계산된다.
다음에서, 모션 벡터의 초기 추정치 MV0이 포인팅하는 픽셀 위치의 좌표들은 (0,0)이라고 일반성을 잃지 않고 가정된다. 제2 검색 공간의 제1 모션 벡터의 좌표들(수평, 수직)을 결정하기 위해 위에 설명된 2개의 비교들이 다음으로 예를 들어 다음의 진행에 따라 수행될 수 있다.
vertical = -1, horizontal = -1;
if ( cost of candidate motion vector (0,1) < cost of candidate motion vector (0,-1))
vertical = 1;
if ( cost of candidate motion vector (1,0) < cost of candidate motion vector (-1,0))
horizontal = 1;
위에 주어진 진행 또는 유사한 진행에 기초하여 모션 벡터 (vertical, horizontal)을 결정하는 것에 의해, 매칭 비용이 감소할 것으로 예상되는 사분면이 선택된다.
따라서, 제2 검색 공간의 결정에 사용될 사분면(도 3의 303)은 좌표들(horizontal * x, vertical * y)(x, y >0)을 갖는 후보들을 포함하고, "horizontal" 및 "vertical"은 위에 설명된 바와 같이 진행하는 것에 의해 결정되는 값들을 갖는다. 사분면의 이러한 결정은 도 14의 (b)에 예시적으로 도시된다. 도시되는 예에서, 모션 벡터 (-1, 1)는 선택된 사분면(즉, 상부 우측 사분면)을 정의하는 것으로 결정된다. 이러한 구체적인 예에서 제2 검색 공간에 포함되지 않을, 다른 3개의 사분면들에서의 잠재적인 모션 벡터들은 더 작은 도트들로서 도시된다.
본 개시내용은 위 진행의 명시적 정의로 제한되는 것은 아니다. 예를 들어,(1, 1)이 (-1,-1) 대신에 초기 값들로서 사용될 수 있거나, 또는, 초기 좌표들을 설정하는 대신에, "else"-절들이 사용될 수 있고(도 15에서의 if-else 절들 15021, 15022를 비교함), "if" 조건문들의 순서(시퀀스)가 교환될 수 있다.
제2 검색 공간의 제1 후보 모션 벡터가 위에 설명된 바와 같이 결정될 때, 그 매칭 비용들이 계산된다. 구체적인 경우로서, 제2 검색 공간은 하나의 상기 제1 후보 모션 벡터만을 포함할 수 있다. 이러한 경우, 체크되는 후보 모션 벡터들(설명된 예에서, 제1 검색 공간의 5개의 후보 모션 벡터들 및 제2 검색 공간의 하나의 후보 모션 벡터) 중에서, 매칭 비용이 최저인 후보 모션 벡터가 현재 블록에 대해 사용될 모션 벡터로서 선택된다.
그러나, 제2 검색 공간의 추가의 적어도 하나의 후보 모션 벡터로서, 제2 검색 공간의 해상도에서의 위치에 포인팅하는 후보 모션 벡터가 결정될 수 있다. 이러한 적어도 하나의 추가의 후보 모션 벡터는, 모션 벡터의 추정치 및 제2 검색 공간의 후보를 연결하는 라인 상에 대략 위치되는, 제2 검색 공간의 해상도에서의 위치에 포인팅한다. 제2 검색 공간의 픽셀 해상도는 제1 검색 공간의 픽셀 해상도보다 더 높을 수 있다. 제2 검색 공간의 추가의 후보 모션 벡터는 제2 검색 공간의 제1 후보 모션 벡터 및 모션 벡터의 추정치에 의해 포인팅되는 위치들 사이에 위치되는 위치에 포인팅할 수 있다.
특히, 제2 검색 공간의 결정의 제1 후보 모션 벡터 후 1503이 제2 검색 공간의 결정의 제2 스테이지에서 계속될 수 있고, 다음으로 제2 검색 공간은 제2 검색 공간의 제1 후보 모션 벡터에 의해 정의된 사분면에서의 위치에서 포인팅하는 적어도 하나의 추가적 후보 모션 벡터를 포함하는 것으로 결정될 수 있다. 예를 들어, 지금까지 체크된 후보들 중에서, 매칭 비용들이 최소인 그리고 두번째 최소인 2개의 후보들이 식별되고 제2 검색 공간의 후보 모션 벡터들이 포인팅하는 추가의 포인트들의 결정을 위한 방향을 계산하는데 사용될 수 있다.
매칭 비용들이 최저인 그리고 두번째 최저인 후보들에 기초하여 계산되는 방향의 계산을 위한 예시적인 진행이 다음에서 주어질 것이고, 여기서 매칭 비용들이 최저인 그리고 두번째 최저인 후보들의 좌표들은 (P_min_x, P_min_y) 및 (P_second_x, P_second_y)로서 표기되고 변수들 "direction_vertical " 및 "direction_horizontal"은 상기 방향을 정의하는 벡터의 성분들을 표기한다.
direction_vertical = 0, direction_horizontal = 0;
if ( P_min_x != P_second_x )
direction_horizontal = 1;
if ( P_min_y != P_second_y )
direction_vertical = 1;
도 16에 도시되는 바와 같이, 제2 검색 공간에 대한 새로운 후보 모션 벡터들이, 제1 검색 공간 포인트의 제1 및 제2 후보 모션 벡터가 포인팅하는 픽셀 위치들에 의존하여, 0.5Х(P_min_x + direction_vertical,P_min_y - direction_horizontal) 및 0.5Х(P_min_x - vertical,P_min_y + horizontal) 또는 이러한 2개의 포인트들 중 하나로서 매칭 비용들이 최저인 후보 모션 벡터 (P_min_x,P_min_y)의 좌표들 및 벡터 (direction_vertical,direction_horizontal)에 의해 주어지는 방향에 기초하여 선택될 수 있다. 제2 검색 공간의 새로운 후보 모션 벡터들의 매칭 비용들이 계산되고, 제1 및 제2 검색의 후보 모션 벡터들 중에서, 매칭 비용이 최소인 후보 모션 벡터가 모션 벡터 정제 프로세스의 출력, 즉, 도 3의 MV0''으로서 선택된다.
도 16 예에서, 제2 검색 공간은 (제2 검색 공간의 추가적 후보 모션 벡터들의 위치들에 대한 방향을 명시하는 벡터들의 계수 0.5에 따라) 분수 픽셀 해상도, 특히 1/2 픽셀 해상도를 갖는다. 1/4 픽셀 해상도와 같은 대안적인 픽셀 해상도들 사용될 수 있고, 하나의 또는 2개의 모션 벡터 후보 대신에, 후보 모션 벡터 (P_min_x, P_min_y) 및 방향 (direction_vertical, direction_horizontal)에 의해 주어지는 라인에 대략 포인팅하는 2개 또는 4개의 후보 모션 벡터들이 사용될 수 있다.
도 16에 도시되는 예시적인 검색 공간 구성에서, 제2 검색 공간의 제1 모션 벡터는, 제2 검색 공간의 추가적 모션 벡터들의 계산, 0.5x(P_min_x + direction_vertical,P_min_y - direction_horizontal) 및 0.5x(P_min_x - vertical,P_min_y + horizontal)이 기초하는 매칭 비용이 최저인 후보 모션 벡터 (P_min_x, P_min_y)와 일치한다.
실시예들의 조합들
위에 설명된 예시적인 실시예들 각각에 따르면, 제1 검색 공간이 결정되고(301) 제1 및 제2 후보 모션 벡터가 제1 검색 공간으로부터 선택되는(302) 제1 단계의 출력에 기초하여 제2 검색 공간이 선택된다. 그러나, 전체 검색 프로세스는 제1 및 제2 검색 공간의 결정 및 각각의 검색 공간으로부터의 하나의 또는 2개의 후보의 선택보다 더 많은 단계들로 분할될 수 있다. 각각의 단계 또는 서브단계에서, 예시적인 실시예들 중 하나에 따라 새로운 검색 공간이 결정될 수 있다. 예를 들어, 도 16에 관하여 위에 설명된 검색 공간 구성은, 제2 검색 공간의 결정이 제3 예시적인 실시예 및 제1 예시적인 실시예를 후속적으로 적용하는 것을 암시하는 예이다. 이러한 것은 다음에서 설명될 것이다.
도 16에 도시되는 예시적인 검색 공간 구성에서, 제2 검색 공간은 제2 검색 공간의 제1 후보 모션 벡터 및 2개의 추가적 후보 모션 벡터들을 포함한다. 제2 검색 공간의 이러한 2개의 추가적 후보 모션 벡터들은 제1 검색 공간 및 제2의 5개의 후보 모션 벡터들 중 매칭 비용이 최저인 픽셀 위치 후보 모션 벡터에 의해 정의되는 그리고 위에 주어진 진행에 따라 계산되는 좌표들 direction_horizontal 및 direction_vertical이 있는 벡터들에 의해 주어지는 방향을 갖는 라인에 의해 정의 되는 라인 상의 픽셀 위치들에 대략 포인팅한다. 이러한 진행은 2개의 후보 모션 벡터들을 연결하는 라인에 의해 주어지는 방향에 따른 2개의 후보 모션 벡터들의 계산을 위한 예이다. 이러한 진행은 또한 도 5 내지 도 11을 참조하여 위에 설명된 제1 실시예의 제2 검색 공간의 계산에 사용될 수 있다.
다시 말해서, 제3 실시예에 따른 제2 검색 공간의 결정의 선택적인 제2 스테이지는 제1 실시예에 따른 제2 검색 공간의 결정에 대응한다. 다시 말해서, 단지 제2 검색 공간의 제1 후보 모션 벡터보다 더 많은 후보 모션 벡터들을 갖는 제2 검색 공간을 결정하는 위 예에서, 검색 공간의 추가적 모션 벡터들은 본 개시내용의 이러한 제3 실시예를 제1 실시예와 조합하는 것에 의해 획득되었다.
도 16을 참조하여 설명된 제3 예시적인 실시예의 예에서, 제2 검색 공간을 결정할 때 제3 실시예 및 제1 실시예들이 조합된다. 그러나, 본 개시내용은 상이한 실시예들의 조합의 이러한 특정 예로 제한되는 것은 아니다.
추가로, 본 개시내용은 2개의 상이한 실시예들을 조합하는 것으로 제한되는 것은 아니다. 대안적으로, 제2 검색 공간은 제1 실시예에 따라 제2 스테이지(303)를 후속하여 적용하고 따라서 상이한 픽셀 해상도들, 예를 들어, 1/2 픽셀 해상도를 먼저 그리고 1/4 픽셀 해상도를 두번째로 갖는 네스팅된 검색 공간들을 결정하는 것에 의해 결정될 수 있다.
상이한 예시적인 실시예들을 조합하는 추가의 예가 도 17에 도시된다. 도 17의 (a)에서 보여질 수 있는 바와 같이, 5개의 후보 모션 벡터들, 즉 초기 추정치 모션 벡터 및 제1 검색 공간의 픽셀 해상도(예를 들어, 전체 픽셀 해상도)에서 초기 추정치 모션 벡터에 인접하는 4개의 후보 모션 벡터들을 포함하는 제1 검색 공간이, 제2 예시적인 실시예에 따라 결정된다. 매칭 비용이 최저인 그리고 두번째 최저인 후보 모션 벡터들은 도 17의 (b)에 도시되는 추가의 5개의 후보 모션 벡터들을 포함하는 제2 실시예에 따른 영역인 제2 검색 공간을 결정하는데 사용된다. 이러한 추가의 5개의 후보 모션 벡터들에 대해, 제3 실시예의 접근법이 적용된다, 즉, 도 15의 제1 및 제2 후보 모션 벡터, MV0'first 및 MV0'second의 선택(1502)을 적용하는 것에 의해, 도 17의 (c)에 도시되는 추가적 후보 모션 벡터가 결정된다. 제1 실시예에 따르면, 다시, 매칭 비용들이 최저인 그리고 두번째 최저인 2개의 후보 모션 벡터들이 결정된다(도면에서 MV0'c 및 MV0'secondBest_c를 표기함). 도 17의 (d)에서 보여질 수 있는 바와 같이 지금까지 사용된 해상도보다 더 높은 픽셀 해상도(예를 들어, 1/2 픽셀 해상도)의 픽셀 위치들에 포인팅하는 2개의 추가적 후보 모션 벡터들이 추가되고, 이들은 MV0'c 및 MV0'secondBest_c에 대응하는 위치들을 연결하는 라인 상의 위치들에 대략 포인팅한다.
상이한 실시예들을 조합하는 것의 이점은 참조 화면의 증가된 영역에서 유사한 정확도를 유지하면서 후보 모션 벡터들의 수가 낮게 유지될 수 있다는 점이다. 예를 들어, 도 17에서 볼 수 있는 바와 같이, 3개의 실시예들에 대응하는 3개의 스테이지들의 연쇄는 7 x 7 전체 픽셀들의 정사각형에 대응하는 영역에 대해 정확도 1/2 픽셀 해상도로 예측기의 위치를 제공하는 것을 허용한다.
위에 설명된 바와 같이 모션 벡터 정제를 포함하는 모션 벡터 결정은 비디오 신호(모션 화면)의 인코딩 및/또는 디코딩의 일부분으로서 구현될 수 있다. 그러나, 모션 벡터 결정은 이동 검출, 이동 분석 등과 같은 이미지 처리에서의 다른 목적들을 위해 또한 사용될 수 있다.
모션 벡터 결정은 장치로서 구현될 수 있다. 이러한 장치는 소프트웨어와 하드웨어의 조합일 수 있다. 예를 들어, 모션 벡터 결정은 범용 프로세서, 또는 DSP(digital signal processor), 또는 FPGA(field programmable gate array) 등과 같은 칩에 의해 수행될 수 있다. 그러나, 본 발명은 프로그램가능 하드웨어 상의 구현으로 제한되는 것은 아니다. 이것은 ASIC(application-specific integrated circuit) 상에서 또는 위에 언급된 하드웨어 성분들의 조합에 의해 구현될 수 있다.
모션 벡터 결정은 컴퓨터 판독가능 매체 상에 저장되는 프로그램 명령어들에 의해 또한 구현될 수 있다. 프로그램은, 실행될 때, 컴퓨터로 하여금, 모션 벡터의 추정치를 획득하는 단계, 추정치에 기초하여 복수의 후보 모션 벡터들을 포함하는 제1 검색 공간을 결정하는 단계, 비용 함수에 따라 제1 검색 공간에서 제1 및 제2 후보 모션 벡터들을 식별하는 단계, 제1 및 제2 후보 모션 벡터들에 기초하여 하나 이상의 후보 모션 벡터를 포함하는 제2 검색 공간을 결정하는 단계, 및 제1 공간 및 제2 공간의 후보 모션 벡터들 중에서 현재 블록에 대한 모션 벡터를 선택하는 단계를 수행하게 한다. 컴퓨터 판독가능 매체는 DVD, CD, USB (플래시) 드라이브, 하드 디스크, 네트워크를 통해 이용가능한 서버 스토리지 등과 같은 프로그램이 저장되는 임의의 매체일 수 있다.
인코더 및/또는 디코더는 TV 세트, 셋 톱 박스, PC, 태블릿, 스마트폰 등을 포함하는 다양한 디바이스들에서 구현될 수 있다. 이것은 방법 단계들을 구현하는 소프트웨어, 앱일 수 있다.
요약하면, 본 발명은 비디오 시퀀스에서 화면의 현재 블록에 대한 모션 벡터를 결정하기 위한 검색 공간의 구성에 관련된다. 이러한 검색 공간 구성은 2개의 주요 스테이지들로 분할되며, 제1 및 제2 부분적 검색 공간이 각각 결정된다. 모션 벡터의 초기 추정치에 기초하여, 제1 검색 공간이 먼저 구성된다. 제1 검색 공간의 제1 및 제2 후보 모션이 비용 함수에 따라 식별된다. 제1 및 제2 후보 모션 벡터들에 기초하여, 제2 검색 공간이 구성된다. 현재 블록에 대한 모션 벡터가 제1 검색 공간 및 제2 검색 공간의 후보 모션 벡터들로부터 선택된다.
본 발명이 주로 모션 화면 비디오 코딩의 프레임워크 내에서 위에 설명되었더라도, 제안된 기술들은 2개 이상의 화면들을 포함하는 임의의 화면 세트의 코딩(즉, 인코딩 또는 디코딩)에 마찬가지로 적용될 수 있다. 화면 세트는, 예를 들어, 의료 이미징 애플리케이션에서 획득되는 정지 화면들의 세트, 예를 들어, CT(computed tomography) 스캔 이미지들의 시퀀스를 포함할 수 있다. 첨부된 청구항들에서, "비디오(video)"라는 용어는 따라서 모션 화면 시퀀스 또는 2개 이상의 화면들을 포함하는 임의의 다른 화면 세트를 의미할 수 있다.

Claims (10)

  1. 비디오 프레임의 현재 블록의 인터 예측에서 사용될 정제 모션 벡터를 결정하기 위한 장치로서,
    초기 모션 벡터를 획득하고,
    상기 초기 모션 벡터에 기초하여 제1 검색 공간을 결정하고 - 복수의 후보 모션 벡터가 상기 제1 검색 공간에 포함되고, 상기 제1 검색 공간은 정수 픽셀 해상도를 가짐 -,
    비용 함수에 따라 상기 제1 검색 공간에서 후보 모션 벡터를 결정하고,
    상기 결정된 후보 모션 벡터에 기초하여 제2 검색 공간을 결정하도록 구성되는 검색 공간 결정 유닛 - 하나 이상의 추가적인 후보 모션 벡터가 상기 제2 검색 공간에 포함되고, 상기 제2 검색 공간은 분수 픽셀 해상도를 가짐 -; 및
    상기 제1 검색 공간의 상기 복수의 후보 모션 벡터 및 상기 제2 검색 공간의 상기 하나 이상의 추가적인 후보 모션 벡터에 따라 현재 블록에 대한 상기 정제 모션 벡터를 획득하도록 구성되는 모션 벡터 선택 유닛
    을 포함하는 장치.
  2. 제1항에 있어서, 상기 비용 함수는 미리 결정된 템플릿에 기초하고, 각각의 각자의 후보 모션 벡터에 대해, 상기 미리 결정된 템플릿과 상기 각자의 후보 모션 벡터에 의해 포인팅되는 예측기 사이의 유사성의 레벨을 표시하는 장치.
  3. 제1항에 있어서, 상기 검색 공간 결정 유닛은 적어도 2개의 후보 모션 벡터들이 각각 포인팅하는 적어도 2개의 위치들을 포함하는 영역의 위치를 결정하고 - 상기 적어도 2개의 위치들은 상기 제2 검색 공간의 픽셀 해상도에서 인접함 -, 상기 제2 검색 공간을 상기 제1 검색 공간에 속하지 않는 영역의 위치들로서 결정하도록 구성되는 장치.
  4. 제1항에 있어서, 상기 검색 공간 결정 유닛에 의해 상기 제1 검색 공간을 결정하는 것은,
    상기 초기 모션 벡터 및 상기 초기 모션 벡터에 의해 포인팅되는 위치에 인접하는 상기 제1 검색 공간의 상기 정수 픽셀 해상도에서의 위치들을 포인팅하는 상기 복수의 후보 모션 벡터를 상기 제1 검색 공간에 포함시키는 것을 포함하는 장치.
  5. 제1항에 있어서,
    상기 현재 블록에 인접한 적어도 하나의 블록의 모션 벡터들을 포함하는 모션 벡터들의 리스트로부터 상기 초기 모션 벡터를 결정하기 위한 모션 벡터 결정 유닛을 더 포함하는 장치.
  6. 비트스트림으로부터 복수의 화면을 디코딩하기 위한 비디오 디코더로서,
    상기 비트스트림으로부터 초기 모션 벡터의 표시를 획득하기 위한 비트스트림 파서,
    제1항에 따른 장치를 포함하고, 상기 현재 블록의 정제 모션 벡터에 기초하여 예측 블록을 결정하도록 더 구성되는 인터 예측 유닛, 및
    상기 예측 블록에 기초하여 상기 현재 블록을 재구성하도록 구성되는 재구성 유닛
    을 포함하는 비디오 디코더.
  7. 복수의 화면을 비트스트림으로 인코딩하기 위한 비디오 인코더로서,
    제1항에 따른 장치를 포함하고, 상기 현재 블록의 정제 모션 벡터에 대응하는 예측 블록을 결정하도록 더 구성되는 인터 예측 유닛,
    상기 초기 모션 벡터의 표시를 상기 비트스트림에 포함시키도록 구성되는 비트스트림 형성기, 및
    상기 예측 블록에 기초하여 재구성된 블록을 생성하기 위해 상기 현재 블록을 재구성하고 상기 재구성된 블록을 메모리에 저장하도록 구성되는 재구성 유닛
    을 포함하는 비디오 인코더.
  8. 비디오 프레임의 현재 블록의 인터 예측에서 사용될 정제 모션 벡터를 결정하기 위한 방법으로서,
    초기 모션 벡터를 획득하는 단계,
    상기 초기 모션 벡터에 기초하여 제1 검색 공간을 결정하는 단계 - 복수의 후보 모션 벡터가 상기 제1 검색 공간에 포함되고, 상기 제1 검색 공간은 정수 픽셀 해상도를 가짐 -,
    비용 함수에 따라 상기 제1 검색 공간에서 후보 모션 벡터를 결정하는 단계,
    상기 결정된 후보 모션 벡터에 기초하여 제2 검색 공간을 결정하는 단계 - 하나 이상의 추가적인 후보 모션 벡터가 상기 제2 검색 공간에 포함되고, 상기 제2 검색 공간은 분수 픽셀 해상도를 가짐 -; 및
    상기 제1 검색 공간의 상기 복수의 후보 모션 벡터 및 상기 제2 검색 공간의 상기 하나 이상의 추가적인 모션 벡터로부터 상기 현재 블록에 대한 상기 정제 모션 벡터를 선택하는 단계
    를 포함하는 방법.
  9. 프로세서에 의해 실행될 때 제8항의 방법이 수행되게 하는 명령어들을 저장하고 있는 컴퓨터 판독가능 매체.
  10. 제8항의 방법에 의해 인코딩/디코딩되는 비트스트림을 포함하는 컴퓨터 판독가능 매체.
KR1020227002116A 2017-06-30 2017-06-30 모션 벡터 정제를 위한 검색 영역 KR102430225B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020207002037A KR102355841B1 (ko) 2017-06-30 2017-06-30 모션 벡터 정제를 위한 검색 영역
PCT/EP2017/066337 WO2019001737A1 (en) 2017-06-30 2017-06-30 RESEARCH AREA FOR MOVEMENT VECTOR ENHANCEMENT

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207002037A Division KR102355841B1 (ko) 2017-06-30 2017-06-30 모션 벡터 정제를 위한 검색 영역

Publications (2)

Publication Number Publication Date
KR20220013467A true KR20220013467A (ko) 2022-02-04
KR102430225B1 KR102430225B1 (ko) 2022-08-09

Family

ID=59285187

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207002037A KR102355841B1 (ko) 2017-06-30 2017-06-30 모션 벡터 정제를 위한 검색 영역
KR1020227002116A KR102430225B1 (ko) 2017-06-30 2017-06-30 모션 벡터 정제를 위한 검색 영역

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207002037A KR102355841B1 (ko) 2017-06-30 2017-06-30 모션 벡터 정제를 위한 검색 영역

Country Status (12)

Country Link
US (2) US11082714B2 (ko)
EP (1) EP3632108B1 (ko)
JP (1) JP2020526112A (ko)
KR (2) KR102355841B1 (ko)
CN (2) CN115118988A (ko)
AU (2) AU2017421655B2 (ko)
BR (1) BR112019028012A2 (ko)
CA (2) CA3151032A1 (ko)
IL (1) IL271770B2 (ko)
MY (1) MY194535A (ko)
SG (1) SG11201913272SA (ko)
WO (1) WO2019001737A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110692248B (zh) * 2017-08-29 2024-01-02 株式会社Kt 视频信号处理方法及装置
CN109587501B (zh) * 2017-09-28 2022-07-12 腾讯科技(深圳)有限公司 进行运动估计的方法、装置及存储介质
JP7257524B2 (ja) * 2019-01-02 2023-04-13 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオエンコーディング/デコーディングシステムにおけるサイド動き精細化
JP7232345B2 (ja) * 2019-02-08 2023-03-02 ベイジン・ダジア・インターネット・インフォメーション・テクノロジー・カンパニー,リミテッド ビデオ符号化のための双方向オプティカルフローおよびデコーダ側動きベクトル補正を選択的に適用する方法およびデバイス
JP7350857B2 (ja) * 2019-02-28 2023-09-26 ホアウェイ・テクノロジーズ・カンパニー・リミテッド インター予測のためのエンコーダ、デコーダ、および対応する方法
WO2020182043A1 (en) * 2019-03-08 2020-09-17 Huawei Technologies Co., Ltd. Search region for motion vector refinement
TWI738248B (zh) * 2019-03-14 2021-09-01 聯發科技股份有限公司 運動細化以及子分區基礎填充的視訊處理的方法以及裝置
WO2021163862A1 (zh) * 2020-02-18 2021-08-26 深圳市大疆创新科技有限公司 视频编码的方法与装置
US11418810B2 (en) * 2020-09-21 2022-08-16 Tencent America LLC Methods of inter picture motion prediction for multi-view video compression
US11875516B2 (en) 2020-12-28 2024-01-16 Waymo Llc Systems, apparatus, and methods for retrieving image data of image frames
CN113408661B (zh) * 2021-07-16 2022-02-18 北京百度网讯科技有限公司 误匹配确定方法、装置、设备和介质
KR20240065097A (ko) * 2021-09-17 2024-05-14 주식회사 윌러스표준기술연구소 Obmc를 이용한 비디오 신호 처리 방법 및 이를 위한 장치
WO2024080747A1 (ko) * 2022-10-11 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016160605A1 (en) * 2015-03-27 2016-10-06 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW321748B (ko) * 1994-02-23 1997-12-01 Rca Thomson Licensing Corp
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US6996180B2 (en) 2001-09-05 2006-02-07 Intel Corporation Fast half-pixel motion estimation using steepest descent
US20040252766A1 (en) * 2003-06-11 2004-12-16 Daeyang Foundation (Sejong University) Motion vector search method and apparatus
WO2008016605A2 (en) * 2006-08-02 2008-02-07 Thomson Licensing Adaptive geometric partitioning for video decoding
JP2008177630A (ja) * 2007-01-16 2008-07-31 Victor Co Of Japan Ltd 動きベクトル検出装置
KR101680951B1 (ko) 2007-04-12 2016-11-29 톰슨 라이센싱 비디오 인코더에서 고속으로 기하학적 모드를 결정하기 위한 방법들 및 장치
CN101247523B (zh) * 2008-03-18 2010-09-08 上海华平信息技术股份有限公司 用于h.264编码器的半像素运动估计方法
JP2009290295A (ja) * 2008-05-27 2009-12-10 Mitsubishi Electric Corp 動き補償予測装置
KR101740039B1 (ko) * 2009-06-26 2017-05-25 톰슨 라이센싱 적응형 기하학적 분할을 이용한 비디오 인코딩 및 디코딩 방법 및 장치
KR101671460B1 (ko) 2009-09-10 2016-11-02 에스케이 텔레콤주식회사 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN102263947B (zh) * 2010-05-27 2016-07-06 香港科技大学 图像运动估计的方法及系统
TWI590083B (zh) * 2010-11-18 2017-07-01 創意電子股份有限公司 一種產生影像位移偵測之快速搜尋視窗的方法
US9532066B2 (en) * 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
CN103583047B (zh) 2011-03-14 2017-03-29 寰发股份有限公司 导出运动矢量预测子的方法与装置
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
CN102316323B (zh) * 2011-07-06 2014-03-05 北京航空航天大学 一种快速的双目立体视频分形压缩与解压缩方法
US10531116B2 (en) * 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
CN106878737B (zh) * 2017-03-02 2019-10-08 西安电子科技大学 高效视频编码中的运动估计加速方法
US20190007699A1 (en) * 2017-06-28 2019-01-03 Futurewei Technologies, Inc. Decoder Side Motion Vector Derivation in Video Coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016160605A1 (en) * 2015-03-27 2016-10-06 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding

Also Published As

Publication number Publication date
AU2017421655A1 (en) 2020-01-30
EP3632108A1 (en) 2020-04-08
CN110786013A (zh) 2020-02-11
AU2021229180A1 (en) 2021-10-07
BR112019028012A2 (pt) 2020-07-07
IL271770B2 (en) 2024-03-01
CN115118988A (zh) 2022-09-27
US20210314604A1 (en) 2021-10-07
CN110786013B (zh) 2022-06-14
JP2020526112A (ja) 2020-08-27
MY194535A (en) 2022-11-30
US11082714B2 (en) 2021-08-03
CA3068595A1 (en) 2019-01-03
KR20200020882A (ko) 2020-02-26
SG11201913272SA (en) 2020-01-30
WO2019001737A1 (en) 2019-01-03
KR102355841B1 (ko) 2022-02-08
KR102430225B1 (ko) 2022-08-09
CA3151032A1 (en) 2019-01-03
EP3632108B1 (en) 2023-08-02
NZ760611A (en) 2021-05-28
CA3068595C (en) 2022-05-24
US11736718B2 (en) 2023-08-22
IL271770B1 (en) 2023-11-01
AU2017421655B2 (en) 2022-12-22
IL271770A (en) 2020-02-27
US20200137415A1 (en) 2020-04-30
AU2021229180B2 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
KR102355841B1 (ko) 모션 벡터 정제를 위한 검색 영역
US11582477B2 (en) Limited memory access window for motion vector refinement
US11153595B2 (en) Memory access window and padding for motion vector refinement
US11159820B2 (en) Motion vector refinement of a motion vector pointing to a fractional sample position
US20200236388A1 (en) Memory access window for sub prediction block motion vector derivation
US20210409754A1 (en) Search region for motion vector refinement
NZ760611B2 (en) Search region for motion vector refinement

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
GRNT Written decision to grant