KR20200015499A - 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치 - Google Patents

서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20200015499A
KR20200015499A KR1020197034929A KR20197034929A KR20200015499A KR 20200015499 A KR20200015499 A KR 20200015499A KR 1020197034929 A KR1020197034929 A KR 1020197034929A KR 20197034929 A KR20197034929 A KR 20197034929A KR 20200015499 A KR20200015499 A KR 20200015499A
Authority
KR
South Korea
Prior art keywords
motion vector
pixels
motion
subpixel
list
Prior art date
Application number
KR1020197034929A
Other languages
English (en)
Other versions
KR102314547B1 (ko
Inventor
기욤 라로쉬
파트리스 오노
조나단 따께
크리스토프 지스께
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Priority to KR1020217032802A priority Critical patent/KR102459789B1/ko
Publication of KR20200015499A publication Critical patent/KR20200015499A/ko
Application granted granted Critical
Publication of KR102314547B1 publication Critical patent/KR102314547B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • 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

Landscapes

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

Abstract

비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 디바이스. 본 개시내용은, 더 구체적으로, 프레임 레이트 업변환 모드 또는 FRUC 모드라고 언급되는 디코더측 움직임 벡터 도출 모드를 이용하는 특정한 인코딩 모드에 따른 인코딩에 관한 것이다. FRUC 병합 모드에서, 도출 프로세스는 서브픽셀 레벨에서의 획득된 움직임 벡터의 정확도를 증가시키기 위한 정교화 단계를 포함한다. 이 프로세스는, 상이한 패턴들에 따라 획득된 움직임 벡터 주위의 상이한 서브픽셀 위치의 평가를 포함한다. 본 발명은 공지된 정교화 단계를 개선하기 위해 고안되었다. 매칭 타입의 특성 및/또는 템플릿 내의 신호를 고려함으로써 코딩 효율을 개선시키는 것을 목표로 한다.

Description

서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치
본 개시내용은 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 디바이스에 관한 것이다. 본 개시내용은, 더 구체적으로, 프레임 레이트 업변환 모드 또는 FRUC 모드라고 언급되는 디코더측 움직임 벡터 도출 모드를 이용하는 특정한 인코딩 모드에 따른 인코딩에 관한 것이다.
비디오 데이터의 예측 인코딩은, 픽셀들의 블록들로의 프레임의 분할에 기초한다. 픽셀들의 각각의 블록에 대해, 이용가능한 데이터에서 예측자 블록(predictor block)이 검색된다. 예측자 블록은, INTER 코딩 모드에서 현재의 프레임과는 상이한 기준 프레임 내의 블록이거나, INTRA 코딩 모드에서 현재 프레임 내의 이웃하는 픽셀들로부터 생성될 수도 있다. 예측자 블록을 결정하는 상이한 방식에 따라 상이한 인코딩 모드들이 정의된다. 인코딩의 결과는, 예측자 블록의 표시, 및 인코딩 블록과 예측자 블록 사이의 차이로 구성된 잔차 블록이다.
INTER 코딩 모드와 관련하여, 예측자 블록의 표시는 움직임 벡터로서, 인코딩될 블록의 위치와 관련하여 예측자 블록의 기준 이미지에서의 위치를 제공한다. 움직임 벡터 자체는, 움직임 벡터 예측자에 기초하여 예측적으로 인코딩된다. HEVC(High Efficiency Video Coding) 표준은, 움직임 벡터의 예측 인코딩을 위한 수 개의 공지된 인코딩 모드들, 즉, 병합 도출 프로세스인 AMVP(Advanced Motion Vector Prediction) 모드를 정의한다. 이들 모드들은, 움직임 벡터 예측자의 후보 목록의 구성 및 인코딩에 이용될 이 목록 내의 움직임 벡터 예측자의 인덱스의 시그널링에 기초한다. 전형적으로, 잔차 움직임 벡터도 시그널링된다.
최근, 시그널링이 전혀없는 움직임 벡터 예측자의 디코더측 도출 프로세스를 정의하는 FRUC라는, 움직임 벡터 예측에 관한 새로운 코딩 모드가 도입되었다. 도출 프로세스의 결과는, 디코더에 의한 인덱스 또는 잔차 움직임 벡터의 어떠한 전송도 없이 움직임 벡터 예측자로서 이용된다.
FRUC 병합 모드에서, 도출 프로세스는 서브픽셀 레벨에서의 획득된 움직임 벡터의 정확도를 증가시키기 위한 정교화 단계를 포함한다. 이 프로세스는, 상이한 패턴들에 따라 획득된 움직임 벡터 주변의 상이한 서브픽셀 위치의 평가를 포함한다.
본 발명은 공지된 정교화 단계를 개선하기 위해 고안되었다. 매칭 타입의 특성 및/또는 템플릿 내의 신호를 고려함으로써 코딩 효율을 개선시키는 것을 목표로 한다.
본 발명의 제1 양태에 따르면, 프레임을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 이 방법은 픽셀들의 블록에 대해 하기의 단계들을 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 단계;
- 선택된 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 선택된 움직임 벡터를 정교화하는 단계; 여기서
- 적어도 일부의 서브픽셀 위치들은 1/16 서브픽셀 이상의 해상도에서 선택된다.
한 실시예에서, 선택된 움직임 벡터를 정교화하는 단계는 복수의 검색 단계를 포함하고; 이들 검색 단계들 중 적어도 하나는 1/16 서브픽셀 이상의 해상도에서 서브픽셀 위치들을 포함한다.
한 실시예에서, 복수의 검색 단계는 적어도 3개의 연속 단계를 포함하고; 3개의 연속 검색 단계들 각각은 주어진 해상도에서 서브픽셀 위치들을 포함하며; 그리고 마지막 2개의 검색 단계와 연관된 각각의 주어진 해상도는 이전 검색 단계의 주어진 해상도보다 크다.
한 실시예에서, 복수의 검색 단계는, 적어도, 제1 서브픽셀 해상도에서 수행되는 다이아몬드 패턴에 기초한 검색 단계, 및 제1 서브픽셀 해상도보다 큰 서브픽셀 해상도에서 수행되는 크로스 패턴에 기초한 2개의 검색 단계를 포함한다.
한 실시예에서, 적어도 일부의 검색 단계는 픽셀들의 블록을 인코딩하는데 이용되는 매칭 타입에 따라 서브픽셀 해상도에서 수행된다.
한 실시예에서, 제1 검색 단계는, 1/4 서브픽셀 해상도에서 수행되는 다이아몬드 패턴에 기초한 검색 단계이고; 제2 검색 단계는, 1/8 서브픽셀 해상도에서 수행되는 크로스 패턴에 기초한 검색 단계이며; 제3 검색 단계는 1/16 서브픽셀 해상도에서 수행되는 크로스 패턴에 기초한 검색 단계이다.
본 발명의 또 다른 양태에 따르면, 프레임들을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 이 방법은 픽셀들의 블록에 대해 하기의 단계들을 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 단계;
- 선택된 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 선택된 움직임 벡터를 정교화하는 단계; 여기서
- 서브픽셀 위치들은 복수의 패턴에서 선택된 적어도 하나의 패턴에 따라 평가된다;
- 복수의 패턴은 수평 패턴 및 수직 패턴을 포함한다.
한 실시예에서, 복수의 패턴은 적어도 하나의 대각선 패턴을 더 포함한다.
한 실시예에서, 복수의 패턴 중의 패턴은 이웃하는 픽셀들의 블록에서 검출된 에지 방향에 기초하여 선택된다.
한 실시예에서, 복수의 패턴 중의 적어도 하나의 패턴은 1/16 서브픽셀 이상의 해상도에서 정의된다.
본 발명의 또 다른 양태에 따르면, 프레임들을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 이 방법은 픽셀들의 블록에 대해 하기의 단계들을 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 단계;
- 적어도 이웃하는 픽셀들의 블록의 신호 콘텐츠에 기초하여, 선택된 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 선택된 움직임 벡터를 정교화하기로 결정하는 단계.
한 실시예에서, 신호 콘텐츠는 이웃하는 픽셀들의 블록에서의 주파수들이다.
본 발명의 또 다른 양태에 따르면, 프레임들을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 이 방법은 픽셀들의 블록에 대해 하기의 단계들을 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 단계; 여기서:
- 움직임 벡터들의 움직임 벡터 목록의 도출은 픽셀들의 블록의 이웃하는 픽셀들의 패턴에 의해 정의된 템플릿에 기초한다;
- 움직임 벡터들의 움직임 벡터 목록의 도출에 이용되는 템플릿들은 템플릿들의 콘텐츠 신호에 기초하여 결정된다.
한 실시예에서, 신호 콘텐츠는 템플릿들에서의 주파수들이다.
본 발명의 또 다른 양태에 따르면, 프로그램가능한 장치를 위한 컴퓨터 프로그램 제품이 제공되고, 이 컴퓨터 프로그램 제품은, 프로그램가능한 장치에 로딩되어 이에 의해 실행될 때 본 발명에 따른 방법을 구현하기 위한 명령어들의 시퀀스를 포함한다.
본 발명의 또 다른 양태에 따르면, 본 발명에 따른 방법을 구현하기 위한 컴퓨터 프로그램의 명령어들을 저장하는 컴퓨터 판독가능한 저장 매체가 제공된다.
본 발명의 또 다른 양태에 따르면, 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스가 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 디코더 디바이스는 하기의 것에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 것;
- 선택된 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 선택된 움직임 벡터를 정교화하는 것; 여기서
- 적어도 일부의 서브픽셀 위치들은 1/16 서브픽셀 이상의 해상도에서 선택된다.
본 발명의 또 다른 양태에 따르면, 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스가 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 디코더 디바이스는 하기의 것에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 것;
- 선택된 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 선택된 움직임 벡터를 정교화하는 것; 여기서
- 서브픽셀 위치들은 복수의 패턴에서 선택된 적어도 하나의 패턴에 따라 평가된다;
- 복수의 패턴은 수평 패턴 및 수직 패턴을 포함한다.
본 발명의 또 다른 양태에 따르면, 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스가 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 디코더 디바이스는 하기의 것에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 것;
- 적어도 이웃하는 픽셀들의 블록의 신호 콘텐츠에 기초하여, 선택된 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 선택된 움직임 벡터를 정교화하기로 결정하는 것.
본 발명의 또 다른 양태에 따르면, 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스가 제공되고, 각각의 프레임은 픽셀들의 블록들로 분할되며, 디코더 디바이스는 하기의 것에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함한다:
- 디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
- 하나의 움직임 벡터를 선택하기 위해 움직임 벡터들의 목록을 평가하는 것; 여기서:
- 움직임 벡터들의 움직임 벡터 목록의 도출은 픽셀들의 블록의 이웃하는 픽셀들의 패턴에 의해 정의된 템플릿에 기초한다;
- 움직임 벡터들의 움직임 벡터 목록의 도출에 이용되는 템플릿들은 템플릿들의 콘텐츠 신호에 기초하여 결정된다.
본 발명에 따른 방법들의 적어도 일부는 컴퓨터로 구현될 수 있다. 따라서, 본 발명은, 완전히 하드웨어 실시예, (펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함한) 완전히 소프트웨어 실시예, 또는 여기서는 "회로", "모듈" 또는 "시스템"이라 부를 수 있는 소프트웨어 및 하드웨어 양태를 결합한 실시예의 형태를 취할 수 있다. 또한, 본 발명은, 매체에 구현된 컴퓨터 이용가능한 프로그램 코드를 갖는 표현의 임의의 유형 매체(tangible medium)로 구현된 컴퓨터 프로그램 제품의 형태를 취할 수도 있다.
본 발명은 소프트웨어로 구현될 수 있으므로, 본 발명은, 임의의 적합한 캐리어 매체 상에서 프로그램가능한 장치에 제공하기 위한 컴퓨터 판독가능한 코드로서 구현될 수 있다. 유형의 비일시적인 캐리어 매체는, 플로피 디스크, CD-ROM, 하드 디스크 드라이브, 자기 테이프 디바이스 또는 고체 메모리 디바이스 등의 저장 매체를 포함할 수 있다. 일시적인 캐리어 매체는, 전기 신호, 전자 신호, 광 신호, 음향 신호, 자기 신호, 또는 전자기 신호, 예를 들어, 마이크로파 또는 RF 신호 등의, 신호를 포함할 수 있다.
이제, 본 발명의 실시예들이 이하의 도면들을 참조하여 단지 예로서 설명될 것이다, 도면들에서:
도 1은 HEVC 인코더 아키텍처를 도시한다;
도 2는 디코더의 원리를 도시한다;
도 3은 FRUC 병합 모드에서의 템플릿 매칭(template matching) 및 양방향 매칭(bilateral matching)을 도시한다;
도 4는 FRUC 병합 정보의 디코딩을 도시한다;
도 5는 병합 모드 및 병합 FRUC 모드의 인코더 평가를 도시한다;
도 6은 JEM의 코딩 유닛 및 서브코딩 유닛 레벨에서의 병합 FRUC 모드 도출을 도시한다;
도 7은 JEM 템플릿 매칭 방법에 대한 현재 블록 주변의 템플릿을 도시한다;
도 8은 움직임 벡터 정교화를 도시한다;
도 9는 본 발명의 한 실시예에서 움직임 벡터 정교화를 위한 적응적 서브픽셀 해상도를 도시한다;
도 10은 종래 기술 및 본 발명의 한 실시예에 의해 획득된 결과의 한 예를 제공한다;
도 11은 본 발명의 한 실시예에서 이용되는 몇가지 움직임 벡터 정교화 검색 형상들을 도시한다;
도 11은 본 발명의 한 실시예에서 이용되는 몇가지 움직임 벡터 정교화 검색 형상들을 도시한다;
도 12는 본 발명의 한 실시예의 움직임 벡터 정교화를 위한 적응적 검색 형상을 도시한다;
도 13은 본 발명의 한 실시예의 적응성 움직임 벡터 정교화를 도시한다;
도 14는 본 발명의 한 실시예의 움직임 벡터 정교화를 위한 템플릿 선택을 도시한다;
도 15는 본 발명의 하나 이상의 실시예의 구현을 위한 컴퓨팅 디바이스의 개략적인 블록도이다.
도 1은 HEVC 인코더 아키텍처를 도시한다. 비디오 인코더에서, 원본 시퀀스(101)는 코딩 유닛이라 불리는 픽셀들의 블록들(102)로 분할된다. 코딩 모드는 각각의 블록에 영향을 미친다. HEVC에서 전형적으로 이용되는 2개의 코딩 모드 패밀리가 있다: 공간적 예측 또는 INTRA 모드(103)에 기초하는 모드들, 및 움직임 추정(104) 및 움직임 보상(105)에 기초한 시간적 예측 또는 INTER 모드에 기초하는 모드들. INTRA 코딩 유닛은, 일반적으로, 인트라 예측이라 불리는 프로세스에 의해 그 인과적 경계(causal boundary)에서 인코딩된 픽셀들로부터 예측된다.
시간적 예측은 먼저, 움직임 추정 단계(104)에서 코딩 유닛에 가장 가까운 기준 영역을, 기준 프레임(116)이라 불리는 이전 또는 미래 프레임에서 발견하는 것으로 구성된다. 이 기준 영역은 예측자 블록을 구성한다. 그 다음, 이 코딩 유닛은, 움직임 보상 단계(105)에서 잔차를 계산하기 위해 예측자 블록을 이용하여 예측된다.
공간적 및 시간적 예측 양쪽 모두의 경우에서, 잔차는 원본 예측자 블록으로부터 코딩 유닛을 감산함으로써 계산된다.
INTRA 예측에서, 예측 방향이 인코딩된다. 시간적 예측에서, 적어도 하나의 움직임 벡터가 인코딩된다. 그러나, 움직임 벡터 인코딩에 관련된 비트 레이트 비용을 더 감소시키기 위해, 움직임 벡터는 직접 인코딩되지 않는다. 실제로, 움직임이 균일하다고 가정하면, 움직임 벡터를, 이 움직임 벡터와 그 주변의 움직임 벡터 사이의 차이로서 인코딩하는 것이 특히 흥미롭다. 예를 들어 H.264/AVC 코딩 표준에서, 움직임 벡터는 현재 블록의 위에 및 좌측에 위치한 3개의 블록들 사이에서 계산된 중간 벡터(median vector)에 관해 인코딩된다. 중간 벡터와 현재 블록 움직임 벡터 사이에서 계산된, 잔차 움직임 벡터라고도 하는, 차이만이 비트스트림으로 인코딩된다. 이것은 모듈 "Mv 예측 및 코딩"(117)에서 처리된다. 각각의 인코딩된 벡터의 값은 움직임 벡터 필드(118)에 저장된다. 예측에 이용되는 이웃하는 움직임 벡터는, 움직임 벡터 필드(118)로부터 추출된다.
그 다음, 레이트 왜곡 성능을 최적화하는 모드가 모듈(106)에서 선택된다. 중복성을 더욱 감소시키기 위해, 모듈(107)에서 변환, 전형적으로 DCT가 잔차 블록에 적용되고, 모듈(108)에서 양자화가 계수들에 적용된다. 그 다음, 계수들의 양자화된 블록은 모듈(109)에서 엔트로피 코딩되고 그 결과는 비트스트림(110)에 삽입된다.
그 다음, 인코더는 모듈들(111 내지 116)에서 미래 움직임 추정을 위해 인코딩된 프레임의 디코딩을 수행한다. 이들 단계들은 인코더와 디코더가 동일한 기준 프레임을 갖는 것을 허용한다. 코딩된 프레임을 재구성하기 위해, 잔차는 모듈(111)에서 역양자화되고 모듈(112)에서 역변환되어 픽셀 영역에서 "재구성된" 잔차를 제공한다. 인코딩 모드(INTER 또는 INTRA)에 따르면, 이 잔차는 INTER 예측자(114) 또는 INTRA 예측자(113)에 추가된다.
그 다음, 이 제1 재구성은 하나 또는 여러 종류의 사후 필터링에 의해 모듈(115)에서 필터링된다. 이 사후 필터들은 인코딩 및 디코딩된 루프에 통합된다. 이것은, 인코더 및 디코더측에서 동일한 기준 프레임을 이용하기 위해 인코더 및 디코더측에서의 재구성된 프레임에 이들 필터들이 적용될 필요가 있음을 의미한다. 이 사후 필터링의 목표는 압축 아티팩트를 제거하는 것이다.
도 2에서, 디코더의 원리가 표현되어 있다. 비디오 스트림(201)은 먼저 모듈(202)에서 엔트로피 디코딩된다. 그 다음, 잔차 데이터는 모듈(203)에서 역양자화되고 모듈(204)에서 역변환되어 픽셀 값들을 획득한다. 모드 데이터는 또한, 모드의 기능으로 엔트로피 디코딩되고, INTRA 타입 디코딩 또는 INTER 타입 디코딩이 수행된다. INTRA 모드의 경우, INTRA 예측자는 비트스트림(205)에 명시된 INTRA 예측 모드의 기능에서 결정된다. 모드가 INTER라면, 움직임 정보는 비트스트림(202)으로부터 추출된다. 이것은 기준 프레임 인덱스와 움직임 벡터 잔차로 구성된다. 움직임 벡터 예측자는 움직임 벡터 잔차에 추가되어 움직임 벡터(210)를 획득한다. 그 다음, 움직임 벡터는 기준 프레임(206)에서 기준 영역을 위치파악하는데 이용된다. 움직임 벡터 필드 데이터(211)는, 다음 디코딩된 움직임 벡터의 예측에 이용되도록, 디코딩된 움직임 벡터로 업데이트된다는 점에 유의한다. 그 다음, 디코딩된 프레임의 이 제1 재구성은, 인코더측에서 이용된 것과 정확히 동일한 사후 필터로 사후 필터링된다(207). 디코더의 출력은 압축해제된 비디오(209)이다.
HEVC 표준은 3개의 상이한 INTER 모드를 이용한다: 인터(Inter) 모드, 병합(Merge) 모드 및 병합 스킵(Merge Skip) 모드. 이들 모드들 사이의 주요 차이점은 비트스트림의 데이터 시그널링이다. 움직임 벡터 코딩의 경우, 현재 HEVC 표준은, 그 이전 것들에 비해 움직임 벡터 예측을 위한 경쟁 기반의 방식을 포함한다. 이것은, 여러 후보들이 인터 또는 병합 모드 각각에 대한 최상의 움직임 벡터 예측자 또는 최고의 움직임 정보를 발견하기 위하여 인코더측의 레이트 왜곡 기준과 더불어 경쟁하고 있음을 의미한다. 움직임 정보의 최상의 예측자 또는 최상의 후보에 대응하는 인덱스가 비트스트림에 삽입된다. 디코더는 동일한 세트의 예측자들 또는 후보들을 도출할 수 있고 디코딩된 인덱스에 따라 최상의 것을 이용한다.
예측자들과 후보들의 도출의 설계는, 복잡성에 큰 영향을 미치지 않으면서 최상의 코딩 효율성을 달성하는데 매우 중요하다. HEVC에서, 2개의 움직임 벡터 도출이 이용된다: 하나는 인터 모드(Advanced Motion Vector Prediction(AMVP))에 대한 것이고 또 하나는 병합 모드(Merge Derivation Process)에 대한 것이다.
이미 언급한 바와 같이, 병합 모드("고전형(classical)" 또는 Skip(스킵))의 후보는, 모든 움직임 정보: 방향, 목록 및 기준 프레임 인덱스 및 움직임 벡터를 나타낸다. 이하에서 설명되는 병합 도출 프로세스에 의해 여러 후보가 생성되며, 각각은 인덱스를 갖는다. 현재의 HEVC 설계에서, 양쪽 병합 모드들에 대한 최대 후보는 5와 같다.
현재 버전의 JEM에서 2가지 타입의 검색이 가능하다: 템플릿 매칭 및 양방향 매칭. 도 3은 이들 2개의 방법을 도시한다. 양방향 매칭(301)의 원리는, 현재 코딩 유닛의 움직임 궤적을 따라, 후술되는 템플릿 매칭과의 유사성에 의해 때때로 템플릿이라고도 불리는, 2개의 블록들 사이의 최상의 매치를 발견하는 것이다.
템플릿 매칭(302)의 원리는, 현재 블록 주변의 재구성된 픽셀들과 평가된 움직임 벡터가 가리키는 블록 주변의 이웃하는 픽셀들 사이의 매칭 비용을 계산함으로써 현재 코딩 유닛의 움직임 정보를 도출하는 것이다. 템플릿은, 현재 블록 주변의 이웃하는 픽셀들의 패턴에 대응하고 예측자 블록 주변의 이웃하는 픽셀들의 대응 패턴에 대응한다.
양쪽 매칭 타입(템플릿 또는 양방향)에 대해, 계산된 상이한 매칭 비용이 비교되어 최상의 것을 발견한다. 최상의 매치를 획득하는 움직임 벡터 또는 움직임 벡터들의 쌍(couple)이 도출된 움직임 정보로서 선택된다. 추가적인 상세사항은 JVET-F1001에서 찾을 수 있다.
양쪽 매칭 방법들은, 전체 움직임 정보, 움직임 벡터, 기준 프레임, 예측의 타입을 도출할 가능성을 제공한다. JEM에서 "FRUC"로 언급된, 디코더측의 움직임 정보 도출은 모든 HEVC 인터 모드들: AMVP, 병합(Merge) 및 병합 스킵(Merge Skip)에 적용된다.
AMVP의 경우, 모든 움직임 정보가 시그널링된다: 단일 또는 이중 예측, 기준 프레임 인덱스, 예측자 인덱스 움직임 벡터 및 잔차 움직임 벡터, FRUC 방법이 적용되어 예측자 목록인 경우 제1 예측자에서 설정되는 새로운 예측자를 결정한다. 따라서, 인덱스 0을 갖는다.
병합 및 병합 스킵 모드의 경우, CU에 대해 FRUC 플래그가 시그널링된다. FRUC 플래그가 거짓일 때, 병합 인덱스가 시그널링되고 정규 병합 모드가 이용된다. FRUC 플래그가 참일 때, 추가적인 FRUC 모드 플래그가 시그널링되어 어느 방법(양방향 매칭 또는 템플릿 매칭)이 블록에 대한 움직임 정보를 도출하는데 이용될지를 표시한다. 양방향 매칭은 P 프레임이 아니라 B 프레임에만 적용된다는 점에 유의한다.
병합 및 병합 스킵 모드의 경우, 현재 블록에 대해 움직임 벡터 필드가 정의된다. 이것은, 벡터가 현재 코딩 유닛보다 작은 서브코딩 유닛에 대해 정의됨을 의미한다. 게다가, 고전적인 병합의 경우, 각각의 목록에 대해 하나의 움직임 벡터가 블록에 대한 움직임 정보를 형성할 수 있다.
도 4는, 블록에 대한 병합 모드의 경우 FRUC 플래그의 이러한 시그널링을 나타내는 플로차트이다. 블록은, HEVC 문구에 따른 코딩 유닛 또는 예측 유닛일 수 있다.
제1 단계(401)에서, 코딩 유닛이 스킵 모드에 따라 인코딩되는지를 알기 위해 스킵 플래그가 디코딩된다. 이 플래그가 거짓이면, 단계 402에서 테스트되고, 병합 플래그가 단계 403에서 디코딩되고 단계 405에서 테스트된다. 코딩 유닛이 스킵 또는 병합 모드에 따라 인코딩될 때, 단계 404에서 병합 FRUC 플래그가 디코딩된다. 코딩 유닛이 스킵 또는 병합 모드에 따라 인코딩되지 않을 때, 단계 406에서 고전적인 AMVP 인터 모드의 인트라 예측 정보가 디코딩된다. 현재 코딩 유닛의 FRUC 플래그가 참일 때, 단계 407에서 테스트되고, 현재 슬라이스가 B 슬라이스라면, 단계 408에서 매칭 모드 플래그가 디코딩된다. FRUC에서의 양방향 매칭은 B 슬라이스에 대해서만 이용가능하다는 점에 유의해야 한다. 슬라이스가 B 슬라이스가 아니고 FRUC가 선택된다면, 모드는 필연적으로 템플릿 매칭이며 매칭 모드 플래그는 존재하지 않는다. 코딩 유닛이 FRUC가 아니라면, 단계 409에서 고전적인 병합 인덱스가 디코딩된다.
FRUC 병합 모드는 인코더측에서 고전적인 병합 모드(및 기타의 가능한 병합)와 경쟁한다. 도 5는 JEM에서의 현재 인코딩 모드 평가 방법을 도시한다. 먼저 단계 501에서 HEVC의 고전적인 병합 모드가 평가된다. 후보 목록은 먼저, 단계 502에서 원본 블록과 목록 내의 각각의 후보 사이의 간단한 SAD(Sum of Absolute Difference; 절대 차이의 합)로 평가된다. 그 다음, 단계들 504 내지 508에 의해 예시된, 제약된 후보들의 목록 중의 각각의 후보의 실제 레이트 왜곡(RD) 비용이 평가된다. 평가에서, 잔차가 있는 레이트 왜곡, 단계 505, 및 잔차가 없는 레이트 왜곡, 단계 506이 평가된다. 결국, 단계 509에서 최상의 병합 후보가 결정되며, 이 최상의 병합 후보는 잔차를 갖거나 갖지 않을 수 있다.
그 다음, FRUC 병합 모드는 단계들 510 내지 516에서 평가된다. 각각의 매칭 방법, 즉, 양방향 및 템플릿 매칭에 대해(단계 510), 단계 511에서 현재 블록에 대한 움직임 벡터 필드가 획득되고, 단계 512 및 단계 513에서 잔차를 수반하거나 수반하지 않은 전체 레이트 왜곡 비용 평가가 계산된다. 단계 515에서, 잔차 유무에 관계없이, 최상의 움직임 벡터(516)가 이들 레이트 왜곡 비용에 기초하여 결정된다. 마지막으로, 단계 517에서, 고전적인 병합 모드와 FRUC 병합 모드 사이의 최상의 모드가 다른 모드들의 가능한 평가 전에 결정된다.
도 6은 인코더측의 FRUC 병합 평가 방법을 도시한다. 각각의 매칭 타입, 즉, 템플릿 매칭 타입 및 양방향 타입에 대해(단계 601), 코딩 유닛 레벨이 먼저 모듈(61)에 의해 평가되고, 그 다음, 모듈(62)에 의한 서브코딩 유닛 레벨 평가가 후속된다. 목표는 현재 코딩 유닛(603)에서 각각의 서브코딩 유닛에 대한 움직임 정보를 발견하는 것이다.
모듈(61)은 코딩 유닛 레벨 평가를 처리한다. 단계 611에서 움직임 정보의 목록이 도출된다. 이 목록 내의 각각의 움직임 정보에 대해, 단계 612에서 왜곡 비용이 계산되고 서로 비교된다. 템플릿에 대한 최상의 움직임 벡터 또는 양방향에 대한 최상의 쌍(best couple)(613)은 비용을 최소화하는 것들이다. 그 다음, 움직임 벡터 정교화 단계(614)가 적용되어 획득된 움직임 벡터의 이 정확도를 향상시킨다. FRUC 방법에서, 템플릿 매칭 추정을 위해 고전적인 이산 코사인 변환 보간 필터(DCTIF) 보간 필터 대신에 쌍선형 보간(bilinear interpolation)이 이용된다. 이것은, 전통적인 DCTIF의 경우인 블록 주변의 7개 픽셀 대신에, 블록 주변의 메모리 액세스를 단지 1개 픽셀로 감소시킨다. 사실상 쌍선형 보간 필터는 한 방향에 대한 서브픽셀 값을 획득하기 위해 단지 2개의 픽셀만을 필요로 한다.
움직임 벡터 정교화 후, 단계 615에서 현재 코딩 유닛에 대한 더 양호한 움직임 벡터가 획득된다. 이 움직임 벡터는 서브코딩 유닛 레벨 평가에 이용된다.
단계 602에서, 현재 코딩 유닛은 수 개의 서브코딩 유닛으로 세분된다. 서브코딩 유닛은, 쿼드 트리 구조(quad tree structure)에서 코딩 유닛의 분할 깊이에 의존하는 정사각형 블록이다. 최소 크기는 4x4이다.
각각의 서브CU에 대해, 서브CU 레벨 평가 모듈(62)은 최상의 움직임 벡터를 평가한다. 단계 615에서 CU 레벨에서 획득된 최상의 움직임 벡터를 포함하는 움직임 벡터 목록이 단계 621에서 도출된다. 각각의 움직임 벡터에 대해, 단계 622에서 왜곡 비용이 평가된다. 그러나, 비용은 또한, 발산하는 움직임 벡터 필드를 피하기 위해 코딩 유닛 레벨에서 획득된 최상의 움직임 벡터와 현재 움직임 벡터 사이의 거리를 나타내는 비용을 포함한다. 최상의 움직임 벡터(623)는 최소 비용에 기초하여 획득된다. 그 다음, 단계 614에서, 이 벡터(623)는 CU 레벨에서 수행되는 것과 동일한 방식으로 MV 정교화 프로세스(624)에 의해 정교화된다.
프로세스의 종료시에, 하나의 매칭 타입에 대해, 각각의 서브CU에 대한 움직임 정보가 획득된다. 인코더측에서, 2개의 매칭 타입 사이의 최상의 RD 비용이 비교되어 최상의 것을 선택한다. 디코더측에서 이 정보는 비트스트림으로부터 디코딩된다(도 4의 단계 408).
템플릿 FRUC 매칭 모드의 경우, 템플릿(702, 703)은, 도 7에서 회색으로 도시된 바와 같이 레이트 왜곡 비용을 추정하는데 이용되는 블록 상방의 4개의 라인 및 블록(701)의 좌측의 4개의 행을 포함한다. 2개의 별개의 템플릿, 즉, 좌측 템플릿(702) 및 상방 템플릿(703)이 이용된다. 현재 블록 또는 매칭된 블록(701)은 왜곡을 결정하는데 이용되지 않는다.
도 8은, 식별된 최상의 예측자(613 또는 623) 주변의 추가 검색에 의한 도 6의 움직임 벡터 정교화 단계(614 및 624)를 도시한다.
이 방법은, 목록(612 또는 622)에서 식별된 최상의 움직임 벡터 예측자(801)를 입력으로서 취한다.
단계 802에서, 다이아몬드 검색이 1/4 픽셀 위치들에 대응하는 해상도에서 적용된다. 이 다이아몬드 검색은, 최상의 벡터 움직임을 중심으로, 1/4 픽셀 해상도에서, 다이어그램 81로 예시된 다이아몬드 패턴에 기초한다. 이 단계는 1/4 픽셀 해상도에서 새로운 최상의 움직임 벡터(803)를 야기한다.
이 다이아몬드 검색의 최상의 획득된 움직임 벡터 위치(803)는, 단계 804에서 해상도 1/4 픽셀에서의 크로스 패턴에 기초한 크로스 검색의 중심이 된다. 이 크로스 검색 패턴은, 최상의 벡터 움직임(803)을 중심으로, 1/4 픽셀 해상도에서의 다이어그램 82로 예시되어 있다. 이 단계는 1/4 픽셀 해상도에서 새로운 최상의 움직임 벡터(805)를 야기한다.
이 검색 단계(804)로 획득된 새로운 최상의 움직임 벡터 위치(805)는, 단계 806에서 해상도 1/8 픽셀에서의 크로스 검색을 위한 중심이 된다. 이 단계는 1/8 픽셀 해상도에서 새로운 최상의 움직임 벡터(807)를 야기한다. 다이어그램 83은, 1/8 해상도에서, 모든 위치를 테스트한 이들 3개의 검색 단계 패턴을 도시한다.
본 발명은 공지된 정교화 단계를 개선하기 위해 고안되었다. 매칭 타입의 특성 및/또는 템플릿 내의 신호를 고려함으로써 코딩 효율을 개선시키는 것을 목표로 한다.
본 발명의 한 실시예에서, 서브픽셀 정교화 정밀도는 정교화 방법의 각각의 단계에서 증가된다.
정교화 단계들은 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 수행된다. 서브픽셀 위치들은 주어진 서브픽셀 해상도에서 결정된다. 서브픽셀 해상도는 2개의 픽셀들 사이의 서브픽셀 위치들의 수를 결정한다. 해상도가 높을수록, 2개의 픽셀들 사이의 서브픽셀 위치들의 수가 높아진다. 예를 들어, 1/8 픽셀 해상도는 2개의 픽셀들 사이의 8개의 서브픽셀 위치들에 대응한다.
도 9는 이 실시예를 도시한다. 제1 다이어그램(91)에서, 도 8에서 설명된 종래 기술의 패턴이 1/16 픽셀 해상도에서 예시되어 있다. 다이어그램 92의 예에 도시된 바와 같이, 제1 단계는 1/4번째 픽셀에서 다이아몬드 검색을 유지하고, 그 다음, 크로스 검색은 8번째 픽셀에 있고 마지막 크로스 검색은 1/16번째 픽셀에 있다. 이 실시예는 양호한 위치 주변에서 더 정확한 위치를 획득할 가능성을 제공한다. 또한, 움직임 벡터는, 이전의 하위-제약보다 초기 위치에 평균적으로 더 가깝다.
하나의 추가 실시예에서, 정교화는 템플릿 매칭에 대해서만 적용되고 양방향 매칭에는 적용되지 않는다.
도 10은 이들 실시예들을 나타내는 플로차트이다. 이전 단계들에 의해 획득된 최상의 움직임 벡터(613 또는 623)에 대응하는 최상의 움직임 벡터(1001)는 1/4 픽셀 위치에서의 다이아몬드 검색(1002)의 중심 위치로서 설정된다. 다이아몬드 검색(1002)은 새로운 최상의 움직임 벡터(1003)를 야기한다. 매칭 타입은 단계 1004에서 테스트된다. 매칭 타입이 템플릿 매칭이라면, 다이아몬드 검색으로 획득된 움직임 벡터(1003)는 1/8 픽셀 정밀도에서 크로스 검색(1009)의 중심이 되어 새로운 최상의 움직임 벡터(1010)를 야기한다. 이 새로운 최상의 움직임 벡터(1010)는 1/16 픽셀 정밀도에서 크로스 검색(1011)을 거쳐 최종적인 최상의 움직임 벡터(1012)를 획득한다.
매칭 타입이 템플릿 매칭이 아니라면, 단계 1005에서 1/4 픽셀에서의 정규 크로스 검색이 수행되어 새로운 최상의 움직임 벡터(1006)를 야기하고, 후속해서 1/8 픽셀 검색 단계(1007)에 의해 최종적인 최상의 움직임 벡터(1008)를 얻는다.
이 실시예는, 특히 단일예측(uniprediction)에 대한 코딩 효율을 향상시킨다. 양방향 예측의 경우, 2개의 유사한 블록들 사이의 평균화는 때때로 서브픽셀 해상도의 증가와 유사하다. 예를 들어, 양방향 예측을 위한 양쪽의 블록들이 동일한 기준 프레임으로부터 나오고 그들 2개의 움직임 벡터들 사이의 차이가 더 낮은 서브픽셀 해상도와 같을 경우, 양방향 예측은 서브픽셀 해상도의 증가에 대한 경우에 대응한다. 단일 예측의 경우 2개 블록들 사이의 이러한 추가 평균화가 존재하지 않는다. 결과적으로, 특히 이러한 더 높은 해상도가 비트스트림에서 시그널링될 필요가 없는 경우, 단일 예측을 위해 서브픽셀 해상도를 증가시키는 것이 더 중요하다.
한 실시예에서, 다이아몬드 또는 크로스 검색 패턴은, 수평, 대각선, 또는 수직 패턴으로 대체된다. 도 11은, 이 실시예에서 이용될 수 있는 다양한 다이어그램을 도시한다. 다이어그램(1101)은, 1/8 픽셀 수평 패턴에 따라 검색된 위치들을 도시한다. 다이어그램(1102)은, 1/8 픽셀 수직 패턴에 따라 검색된 위치들을 도시한다. 다이어그램(1103)은, 1/8 픽셀 대각선 패턴에 따라 검색된 위치들을 도시한다. 다이어그램(1104)은, 또 다른 1/8 픽셀 대각선 패턴에 따라 검색된 위치들을 도시한다. 다이어그램(1105)은, 1/16 픽셀 수평 패턴에 따라 검색된 위치들을 도시한다.
수평 패턴은, 수평으로 정렬된 서브픽셀 위치들의 패턴이다. 수직 패턴은, 수직으로 정렬된 서브픽셀 위치들의 패턴이다. 대각선 패턴은, 대각선으로 정렬된 서브픽셀 위치들의 패턴이다.
이들 패턴들의 이점은, 예측에 대해 이 에지의 더 양호한 정교화를 제공하기 때문에, 주로, 블록이 에지를 포함하고 있을 때 흥미롭다. 사실상, 고전적인 움직임 벡터 추정에서, 움직임 벡터의 정교화는, 테스트된 추가 위치들이 검출된 에지의 수직 축 중에서 선택될 때 더 높은 결과를 제공한다.
도 12는, 이 실시예에 따른 패턴을 선택하는 방법의 한 예를 제공한다. 이 플로차트는, 예를 들어 도 8의 모듈들(802, 804, 806)의 하나 이상의 패턴 검색을 변경하는데 이용될 수 있다. 단계 1201에서 테스트되는 바와 같이 매칭 타입이 템플릿 매칭일 때, 현재 블록의 좌측 템플릿이 단계 1202에서 추출된다. 그 다음, 블록이 에지를 포함하는지의 여부가 결정된다. 존재한다면, 단계 1203에서 에지의 방향이 결정된다. 예를 들어, 현재 블록의 기울기가 계산되어 에지의 존재 및 그 방향을 결정할 수 있다. 단계 1204에서 테스트되는 바와 같이 이 "directionLeft"가 수평 패턴이면, 단계 1205에서 움직임 벡터 정교화를 위해 수직 패턴, 예를 들어 패턴 1102가 선택된다.
좌측 템플릿에 어떠한 에지도 없거나, 식별된 방향이 수평이 아니라면, 단계 1206에서 현재 블록의 상방 템플릿이 추출된다. 템플릿이 에지를 포함하는지가 결정되고, 존재한다면, 단계 1207에서 그 방향이 결정된다. 단계 1208에서 테스트되는 바와 같이 이 "directionUp"이 수직이라면, 단계 1209에서 움직임 벡터 정교화를 위해 선택된 패턴은, 수평 패턴, 예를 들어 패턴 1101 또는 1105이다. 그렇지 않다면, 단계 1210에서 초기 패턴(81, 82, 83)이 선택된다.
좌측 블록이 수평 에지를 포함한다면, 이 에지가 현재 블록을 통과해야 한다는 점에 유의한다. 동일한 방식으로 상방 블록이 수직 에지를 포함한다면, 이 에지가 현재 블록을 통과해야 한다. 반대로, 좌측 블록이 수직 에지를 포함한다면, 이 에지는 현재 블록 등을 통과하지 않아야 하고, ... 등등의 방식이다.
매칭 타입이 단계 1201에서 양방향 매칭인 것으로 결정된다면, 단계 1211에서 하나의 템플릿 블록이 선택된다. 그 다음, 단계 1212에서 템플릿이 방향 및 그것이 어느 방향인지를 포함하는지가 결정된다. 단계 1213에서 테스트되는 바와 같이, 이 방향이 수평이라면, 단계 1205에서 수직 패턴이 선택된다. 단계 1214에서 테스트되는 바와 같이, 이 방향이 수직이라면, 단계 1209에서 수평 패턴이 선택된다. 양방향 매칭을 위해, 대각선 패턴들(1103 및 1104)로서 어떤 다른 선형 패턴들이 이용될 수 있다. 그 경우, 1212에서 결정되는 바와 같이, 에지 방향에 가장 수직인 선형 패턴이 선택된다. 단계 1212에서 어떠한 에지도 검출되지 않으면, 초기 패턴이 유지된다.
움직임 벡터 정교화를 위한 이러한 패턴 적합화의 이점은, 패턴이 템플릿 내부에 포함된 신호에 적합화된다는 사실에 따른 코딩 효율 개선이다.
패턴은 또한, 적합화될 수 있다. 예를 들어, 다이어그램 1105는, 1/16 픽셀 정밀도의 수평 패턴을 나타내며, 여기서 더 많은 위치들이 높은 움직임 벡터 정밀도로 초기 움직임 벡터 위치 주변에 집중되었다.
한 실시예에서, 템플릿들의 신호 콘텐츠는 움직임 벡터 정교화를 위해 테스트된 위치들의 수를 결정하는데 이용된다. 예를 들어, 현재 블록 주변의 템플릿에서의 높은 주파수의 존재는, 정교화 단계의 적용을 결정하는데 이용된다. 그 이유는, 충분한 높은 주파수들이 없는 경우, 움직임 벡터의 서브픽셀 정교화는 적절하지 않다는 것이다.
도 13은 이 실시예의 한 예를 제공한다.
단계 1301에서 테스트되는 바와 같이, 매칭 모드가 템플릿 매칭이라면, 좌측 템플릿, 전형적으로 현재 블록의 이웃하는 4개의 행이 단계 1302에서 추출된다. 그 다음, 단계 1303에서 이 블록이 높은 주파수를 포함하는지가 결정된다. 이 결정은, 예를 들어 기울기들의 합을 임계값과 비교함으로써 획득될 수 있다. 단계 1304에서 테스트되는 바와 같이, 이 좌측 템플릿이 높은 주파수들을 포함한다면, 도 6의 단계들 614 및 624에 대응하는 움직임 벡터 정교화 단계 1305가 적용된다.
이 좌측 템플릿이 충분한 높은 주파수들을 포함하지 않는다면, 1306 단계에서 상방 템플릿이 추출된다. 추출된 템플릿이 높은 주파수들을 포함하는지가 단계 1307에서 결정된다. 단계 1308에서 테스트되는 바와 같이, 높은 주파수들이 포함되어 있다면, 움직임 벡터 정교화 단계가 단계 1305에서 적용된다. 그렇지 않다면, 움직임 벡터 정교화 단계는 단계 1309에서 스킵된다.
단계 1301에서 매칭 타입이 양방향 매칭인 것으로 결정된다면, 단계 1310에서 하나의 템플릿이 추출된다. 그 다음, 단계 1314에서, 추출된 템플릿이 높은 주파수를 포함하는지가 결정된다. 단계 1313에서 테스트되는 바와 같이, 추출된 템플릿이 높은 주파수들을 포함하지 않는다면, 단계 1309에서 움직임 벡터 정교화가 적용되지 않고, 그렇지 않다면 단계 1305에서 적용된다.
역시 또 다른 실시예에서, 템플릿의 신호 콘텐츠는, 템플릿 매칭 타입 FRUC 평가를 위한 움직임 벡터를 결정하는데 이용되는 왜곡 추정에 이용될 템플릿을 결정하는데 이용된다.
도 14는 이 실시예를 도시한다.
프로세스는 단계 1401에서 시작한다. 단계들 1402 및 1403에서 좌측 템플릿 및 상방 템플릿이 추출된다. 각각의 추출된 템플릿에 대해, 단계들 1404 및 1405에서, 추출된 템플릿이 높은 주파수를 포함하는지가 결정된다. 단계 1406 및 1407에서 테스트되는 바와 같이, 테스트된 템플릿들이 높은 주파수를 포함한다면, 이들은 단계들 1408 및 1409의 FRUC 평가에서 왜곡 추정에 이용된다. 양쪽 템플릿들 모두가 높은 주파수들을 포함할 때, 이들 양쪽 모두는 FRUC 평가에 이용된다. 어떠한 템플릿도 높은 주파수를 포함하지 않는다면, 단계 1411에서 상방 템플릿이 선택되어 왜곡 추정에 이용된다.
이들 실시예들 모두는 조합될 수 있다.
도 15는 본 발명의 하나 이상의 실시예의 구현을 위한 컴퓨팅 디바이스(1500)의 개략적인 블록도이다. 컴퓨팅 디바이스(1500)는, 마이크로-컴퓨터, 워크스테이션 또는 경량의 휴대형 디바이스 등의 디바이스일 수 있다. 컴퓨팅 디바이스(1500)는 하기의 것들에 접속된 통신 버스를 포함한다:
- CPU로 표기된, 마이크로 프로세서 등의, 중앙 처리 유닛(1501);
- 본 발명의 실시예들의 방법의 실행가능한 코드를 저장하기 위한, RAM으로 표기된, 랜덤 액세스 메모리(1502) 뿐만 아니라, 본 발명의 실시예들에 따른 이미지의 적어도 일부를 인코딩 또는 디코딩하기 위한 방법을 구현하기 위해 필요한 변수들 및 파라미터들을 기록하도록 적합화된 레지스터들 ― 그 메모리 용량은 예를 들어 확장 포트에 접속된 선택사항적 RAM에 의해 확장될 수 있음 ―;
- 본 발명의 실시예들을 구현하기 위한 컴퓨터 프로그램을 저장하기 위한, ROM으로 표기된, 판독 전용 메모리(1503);
- 네트워크 인터페이스(1504)는, 전형적으로, 처리될 디지털 데이터가 전송되거나 수신되는 통신 네트워크에 접속된다.
네트워크 인터페이스(1504)는 단일 네트워크 인터페이스이거나, 한 세트의 상이한 네트워크 인터페이스들(예를 들어, 유선 및 무선 인터페이스들, 또는 상이한 종류들의 유선 또는 무선 인터페이스들)로 구성될 수 있다. 데이터 패킷은 전송을 위해 네트워크 인터페이스에 기입되거나, CPU(1501)에서 실행 중인 소프트웨어 애플리케이션의 제어하에서 수신을 위해 네트워크 인터페이스로부터 판독된다;
- 사용자 인터페이스(1505)는 사용자로부터 입력을 수신하거나 사용자에게 정보를 디스플레이하는데 이용될 수 있다;
- HD로 표기된 하드 디스크(1506)는 대용량 저장 디바이스로서 제공될 수 있다;
- I/O 모듈(1507)은, 비디오 소스 또는 디스플레이 등의 외부 디바이스로부터/로 데이터를 수신/전송하는데 이용될 수 있다.
실행가능한 코드는, 판독 전용 메모리(1503), 하드 디스크(1506) 또는 예를 들어 디스크 등의 이동식 디지털 매체에 저장될 수 있다. 한 변형에 따르면, 프로그램의 실행가능한 코드는, 네트워크 인터페이스(1504)를 통해, 통신 네트워크에 의해 수신되어, 실행되기 전에, 하드 디스크(1506) 등의 통신 디바이스(1500)의 저장 수단들 중 하나에 저장될 수 있다.
중앙 처리 유닛(1501)은 본 발명의 실시예들에 따른 프로그램 또는 프로그램들의 소프트웨어 코드의 명령어들 또는 부분들의 실행을 제어하고 지시하도록 적합화되고, 명령어들은 전술된 저장 수단들 중 하나에 저장된다. 전원이 켜진 후, CPU(1501)는, 예를 들어 프로그램 ROM(1503) 또는 하드 디스크(HD)(1506)로부터 이들 명령어들이 로딩된 후 소프트웨어 애플리케이션에 관련된 메인 RAM 메모리(1502)로부터의 명령어들을 실행할 수 있다. 이러한 소프트웨어 애플리케이션은, CPU(1501)에 의해 실행될 때, 본 발명의 플로차트의 단계들이 수행되게 한다.
본 발명의 알고리즘의 임의의 단계는, PC("Personal Computer"), DSP("Digital Signal Processor") 또는 마이크로제어기 등의 프로그램가능한 컴퓨팅 머신에 의한 한 세트의 명령어들 또는 프로그램의 실행에 의해 소프트웨어로 구현되거나; 아니면 FPGA("Field-Programmable Gate Array") 또는 ASIC("Application-Specific Integrated Circuit") 등의 전용 컴포넌트 또는 머신에 의해 하드웨어로 구현될 수 있다.
본 발명이 특정한 실시예들을 참조하여 설명되었지만, 본 발명은 특정한 실시예들로 제한되는 것은 아니며, 본 발명의 범위 내에 놓여 있는 수정들이 본 기술분야의 통상의 기술자에게는 명백할 것이다.
단지 예로서 제공되고 첨부된 청구항들에 의해서만 결정되는 본 발명의 범위를 제한하려는 의도는 아닌 전술된 예시적인 실시예들을 참조할 때 많은 추가적인 수정 및 변형들이 본 기술분야의 통상의 기술자들에게 자명할 것이다. 특히, 적절한 경우, 상이한 실시예들로부터의 상이한 피처들은 상호교환될 수 있다.
청구항들에서, 용어 "포함하는"은 다른 요소나 단계를 배제하는 것은 아니며, 부정 관사 "한(a)" 또는 "하나의(an)"는 복수를 배제하지 않는다. 상이한 피처들이 서로 상이한 종속항들에서 인용된다는 단순한 사실이, 이들 피처들의 조합이 유익하게 이용될 수 없다는 것을 나타내는 것은 아니다.

Claims (20)

  1. 프레임들을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 방법은, 픽셀들의 블록에 대해:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계;
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 단계; 및
    선택된 상기 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 상기 선택된 움직임 벡터를 정교화하는(refining) 단계
    를 포함하고,
    적어도 일부의 서브픽셀 위치들은 1/16 서브픽셀 이상의 해상도에서 선택되는, 방법.
  2. 제1항에 있어서,
    상기 선택된 움직임 벡터를 정교화하는 단계는 복수의 검색 단계를 포함하고,
    상기 검색 단계들 중 적어도 하나는 1/16 서브픽셀 이상의 해상도에서의 서브픽셀 위치들을 포함하는, 방법.
  3. 제2항에 있어서,
    상기 복수의 검색 단계는 적어도 3개의 연속 단계를 포함하고,
    상기 3개의 연속 검색 단계 각각은 주어진 해상도에서의 서브픽셀 위치들을 포함하며,
    마지막 2개의 검색 단계와 연관된 각각의 주어진 해상도는 이전 검색 단계의 주어진 해상도보다 큰, 방법.
  4. 제2항에 있어서,
    상기 복수의 검색 단계는, 적어도, 제1 서브픽셀 해상도에서 수행되는 다이아몬드 패턴에 기초한 검색 단계, 및 상기 제1 서브픽셀 해상도보다 큰 서브픽셀 해상도에서 수행되는 크로스 패턴에 기초한 2개의 검색 단계를 포함하는, 방법.
  5. 제2항에 있어서,
    적어도 일부의 검색 단계들은 상기 픽셀들의 블록을 인코딩하는데 이용되는 매칭 타입(matching type)에 따라 서브픽셀 해상도에서 수행되는, 방법.
  6. 제4항에 있어서,
    제1 검색 단계는 1/4 서브픽셀 해상도에서 수행되는 다이아몬드 패턴에 기초한 검색 단계이고,
    제2 검색 단계는 1/8 서브픽셀 해상도에서 수행되는 크로스 패턴에 기초한 검색 단계이며,
    제3 검색 단계는 1/16 서브픽셀 해상도에서 수행되는 크로스 패턴에 기초한 검색 단계인, 방법.
  7. 프레임들을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 방법은, 픽셀들의 블록에 대해:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계;
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 단계; 및
    선택된 상기 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 상기 선택된 움직임 벡터를 정교화하는 단계
    를 포함하고,
    서브픽셀 위치들은 복수의 패턴에서 선택된 적어도 하나의 패턴에 따라 평가되며,
    상기 복수의 패턴은 수평 패턴 및 수직 패턴을 포함하는, 방법.
  8. 제7항에 있어서,
    상기 복수의 패턴은 적어도 하나의 대각선 패턴을 더 포함하는, 방법.
  9. 제6항 또는 제7항에 있어서,
    상기 복수의 패턴 중의 하나의 패턴은 이웃하는 픽셀들의 블록에서 검출된 에지 방향에 기초하여 선택되는, 방법.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    상기 복수의 패턴 중의 적어도 하나의 패턴은 1/16 서브픽셀 이상의 해상도에서 정의되는, 방법.
  11. 프레임들을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 방법은, 픽셀들의 블록에 대해:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계;
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 단계; 및
    적어도 이웃하는 픽셀들의 블록의 신호 콘텐츠에 기초하여, 선택된 상기 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 상기 선택된 움직임 벡터를 정교화하기로 결정하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서,
    상기 신호 콘텐츠는 상기 이웃하는 픽셀들의 블록에서의 주파수들인, 방법.
  13. 프레임들을 포함하는 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 방법은, 픽셀들의 블록에 대해:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 단계; 및
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 단계
    를 포함하고,
    상기 움직임 벡터들의 움직임 벡터 목록의 도출은 상기 픽셀들의 블록의 이웃하는 픽셀들의 패턴에 의해 정의된 템플릿들에 기초하며,
    상기 움직임 벡터들의 움직임 벡터 목록의 도출에 이용되는 상기 템플릿들은 상기 템플릿들의 콘텐츠 신호에 기초하여 결정되는, 방법.
  14. 제13항에 있어서,
    상기 신호 콘텐츠는 상기 템플릿들에서의 주파수들인, 방법.
  15. 프로그램가능한 장치를 위한 컴퓨터 프로그램 제품이며,
    상기 컴퓨터 프로그램 제품은 상기 프로그램가능한 장치에 로딩되고 이에 의해 실행될 때 제1항 내지 제14항 중 어느 한 항에 따른 방법을 구현하기 위한 명령어들의 시퀀스를 포함하는, 컴퓨터 프로그램 제품.
  16. 제1항 내지 제14항 중 어느 한 항에 따른 방법을 구현하기 위한 컴퓨터 프로그램의 명령어들을 저장하는, 컴퓨터-판독가능한 저장 매체.
  17. 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 디코더 디바이스는:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 것; 및
    선택된 상기 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 상기 선택된 움직임 벡터를 정교화하는 것
    에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함하고,
    적어도 일부의 서브픽셀 위치들은 1/16 서브픽셀 이상의 해상도에서 선택되는, 디코더 디바이스.
  18. 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 디코더 디바이스는:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 것; 및
    선택된 상기 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 상기 선택된 움직임 벡터를 정교화하는 것
    에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함하고,
    서브픽셀 위치들은 복수의 패턴에서 선택된 적어도 하나의 패턴에 따라 평가되며,
    상기 복수의 패턴은 수평 패턴 및 수직 패턴을 포함하는, 디코더 디바이스.
  19. 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 디코더 디바이스는:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 것; 및
    적어도 이웃하는 픽셀들의 블록의 신호 콘텐츠에 기초하여, 선택된 상기 움직임 벡터의 부근의 서브픽셀 위치들에서 움직임 벡터들을 평가함으로써 상기 선택된 움직임 벡터를 정교화하기로 결정하는 것
    에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함하는, 디코더 디바이스.
  20. 프레임들을 포함하는 비디오 데이터를 디코딩하기 위한 디코더 디바이스이며,
    각각의 프레임은 픽셀들의 블록들로 분할되고,
    상기 디코더 디바이스는:
    디코더측 움직임 벡터 도출 방법에 의해 움직임 정보가 획득되는 모드를 이용하여 움직임 벡터들의 움직임 벡터 목록을 도출하는 것;
    하나의 움직임 벡터를 선택하기 위해 상기 움직임 벡터들의 목록을 평가하는 것
    에 의해 픽셀들의 블록을 디코딩하도록 구성된 프로세서를 포함하고,
    상기 움직임 벡터들의 움직임 벡터 목록의 도출은 상기 픽셀들의 블록의 이웃하는 픽셀들의 패턴에 의해 정의된 템플릿들에 기초하며,
    상기 움직임 벡터들의 움직임 벡터 목록의 도출에 이용되는 상기 템플릿들은 상기 템플릿들의 콘텐츠 신호에 기초하여 결정되는, 디코더 디바이스.
KR1020197034929A 2017-07-04 2018-06-27 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치 KR102314547B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217032802A KR102459789B1 (ko) 2017-07-04 2018-06-27 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1710747.5 2017-07-04
GB1710747.5A GB2564133B (en) 2017-07-04 2017-07-04 Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
PCT/EP2018/067197 WO2019007766A1 (en) 2017-07-04 2018-06-27 METHOD AND APPARATUS FOR ENCODING OR DECODING VIDEO DATA WITH SUB-PIXEL MOTION VECTOR DECOMPOSITION

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217032802A Division KR102459789B1 (ko) 2017-07-04 2018-06-27 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200015499A true KR20200015499A (ko) 2020-02-12
KR102314547B1 KR102314547B1 (ko) 2021-10-19

Family

ID=59592616

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197034929A KR102314547B1 (ko) 2017-07-04 2018-06-27 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치
KR1020217032802A KR102459789B1 (ko) 2017-07-04 2018-06-27 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217032802A KR102459789B1 (ko) 2017-07-04 2018-06-27 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치

Country Status (8)

Country Link
US (6) US11394997B2 (ko)
EP (2) EP3649784A1 (ko)
JP (3) JP2020523818A (ko)
KR (2) KR102314547B1 (ko)
CN (6) CN116506641A (ko)
GB (1) GB2564133B (ko)
MA (1) MA50939A (ko)
WO (1) WO2019007766A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023091775A1 (en) * 2021-11-22 2023-05-25 Beijing Dajia Internet Information Technology Co., Ltd. Decoder side motion information derivation

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2563943B (en) * 2017-06-30 2021-02-24 Canon Kk Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
US11750832B2 (en) * 2017-11-02 2023-09-05 Hfi Innovation Inc. Method and apparatus for video coding
EP3841751B1 (en) * 2018-09-19 2024-04-17 Huawei Technologies Co., Ltd. Method for skipping refinement based on patch similarity in bilinear interpolation based decoder-side motion vector refinement
TWI738248B (zh) * 2019-03-14 2021-09-01 聯發科技股份有限公司 運動細化以及子分區基礎填充的視訊處理的方法以及裝置
GB2585017A (en) * 2019-06-24 2020-12-30 Canon Kk Video coding and decoding
US20240223776A1 (en) * 2023-01-03 2024-07-04 Alibaba (China) Co., Ltd. Intra template matching prediction mode for motion prediction

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091460A (en) * 1994-03-31 2000-07-18 Mitsubishi Denki Kabushiki Kaisha Video signal encoding method and system
US6992725B2 (en) * 2001-10-22 2006-01-31 Nec Electronics America, Inc. Video data de-interlacing using perceptually-tuned interpolation scheme
EP1578137A2 (en) * 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
US8761258B2 (en) * 2005-06-17 2014-06-24 The Hong Kong University Of Science And Technology Enhanced block-based motion estimation algorithms for video compression
US8005308B2 (en) * 2005-09-16 2011-08-23 Sony Corporation Adaptive motion estimation for temporal prediction filter over irregular motion vector samples
US8385419B2 (en) * 2006-04-26 2013-02-26 Altera Corporation Methods and apparatus for motion search refinement in a SIMD array processor
US8036428B2 (en) * 2006-04-28 2011-10-11 Pixart Imaging Inc. Method and apparatus for detecting motion of image in optical navigator
US20080002772A1 (en) * 2006-06-28 2008-01-03 Hong Kong Applied Science and Technology Research Institute Company Limited Motion vector estimation method
US8355440B2 (en) * 2006-08-07 2013-01-15 Vixs Systems, Inc. Motion search module with horizontal compression preprocessing and methods for use therewith
US8428118B2 (en) * 2006-08-17 2013-04-23 Ittiam Systems (P) Ltd. Technique for transcoding MPEG-2/MPEG-4 bitstream to H.264 bitstream
US8265136B2 (en) * 2007-02-20 2012-09-11 Vixs Systems, Inc. Motion refinement engine for use in video encoding in accordance with a plurality of sub-pixel resolutions and methods for use therewith
US8184704B2 (en) * 2007-12-05 2012-05-22 Advanced Micro Devices, Inc. Spatial filtering of differential motion vectors
CN101686393B (zh) * 2008-09-28 2012-10-17 华为技术有限公司 应用于模板匹配的快速运动搜索方法及装置
US20110176611A1 (en) * 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
US9438925B2 (en) * 2013-12-31 2016-09-06 Vixs Systems, Inc. Video encoder with block merging and methods for use therewith
EP3139605A4 (en) * 2014-04-28 2017-05-17 Panasonic Intellectual Property Corporation of America Encoding method, decoding method, encoding apparatus, and decoding apparatus
US10958927B2 (en) * 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
WO2017156669A1 (en) * 2016-03-14 2017-09-21 Mediatek Singapore Pte. Ltd. Methods for motion vector storage in video coding
CN109155847A (zh) * 2016-03-24 2019-01-04 英迪股份有限公司 用于编码/解码视频信号的方法和装置
US10621731B1 (en) * 2016-05-31 2020-04-14 NGCodec Inc. Apparatus and method for efficient motion estimation for different block sizes
US10778999B2 (en) * 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
EP3343925A1 (en) * 2017-01-03 2018-07-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
GB2563943B (en) * 2017-06-30 2021-02-24 Canon Kk Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
US20190215518A1 (en) * 2018-01-10 2019-07-11 Qualcomm Incorporated Histogram of gradient based optical flow
EP4018659A4 (en) * 2019-09-19 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SCALE WINDOW IN VIDEO CODING

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jianle Chen et. al., "Algorithm description of JVET Joint Exploration Test Model 6 (JEM6)", Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 6th Meeting: Hobart, AU, 2017.07.01., JVET-F1001-v3* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023091775A1 (en) * 2021-11-22 2023-05-25 Beijing Dajia Internet Information Technology Co., Ltd. Decoder side motion information derivation

Also Published As

Publication number Publication date
GB201710747D0 (en) 2017-08-16
US20240089498A1 (en) 2024-03-14
US20200221121A1 (en) 2020-07-09
KR20210126162A (ko) 2021-10-19
KR102314547B1 (ko) 2021-10-19
CN116506639A (zh) 2023-07-28
EP4152752A1 (en) 2023-03-22
KR102459789B1 (ko) 2022-10-28
JP2022008472A (ja) 2022-01-13
US20220368941A1 (en) 2022-11-17
CN110710212B (zh) 2023-06-30
CN116506641A (zh) 2023-07-28
CN116506642A (zh) 2023-07-28
JP2020523818A (ja) 2020-08-06
US11849142B2 (en) 2023-12-19
CN110710212A (zh) 2020-01-17
GB2564133A (en) 2019-01-09
EP3649784A1 (en) 2020-05-13
US20240089495A1 (en) 2024-03-14
US20240089496A1 (en) 2024-03-14
JP7542118B2 (ja) 2024-08-29
GB2564133B (en) 2021-03-17
US20240089497A1 (en) 2024-03-14
JP2023139206A (ja) 2023-10-03
CN116506638A (zh) 2023-07-28
US11394997B2 (en) 2022-07-19
CN116506640A (zh) 2023-07-28
JP7330243B2 (ja) 2023-08-21
WO2019007766A1 (en) 2019-01-10
MA50939A (fr) 2020-05-13

Similar Documents

Publication Publication Date Title
KR102459789B1 (ko) 서브픽셀 움직임 벡터 정교화를 수반한 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치
KR102434319B1 (ko) 메모리 액세스가 감소된 fruc 모드에서 비디오 데이터를 인코딩 또는 디코딩하기 위한 방법 및 장치
GB2588563A (en) Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
GB2595194A (en) Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
GB2595195A (en) Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant