KR20210018896A - 부분 코스트 계산 - Google Patents

부분 코스트 계산 Download PDF

Info

Publication number
KR20210018896A
KR20210018896A KR1020217000057A KR20217000057A KR20210018896A KR 20210018896 A KR20210018896 A KR 20210018896A KR 1020217000057 A KR1020217000057 A KR 1020217000057A KR 20217000057 A KR20217000057 A KR 20217000057A KR 20210018896 A KR20210018896 A KR 20210018896A
Authority
KR
South Korea
Prior art keywords
block
subset
templates
video block
current
Prior art date
Application number
KR1020217000057A
Other languages
English (en)
Other versions
KR102605638B1 (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 KR1020237039589A priority Critical patent/KR20230161539A/ko
Publication of KR20210018896A publication Critical patent/KR20210018896A/ko
Application granted granted Critical
Publication of KR102605638B1 publication Critical patent/KR102605638B1/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • 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/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법은 상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계, 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치들의 부분 세트에 기초하여 상기 하나 도는 그 이상의 템플릿을 이용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 그리고 최소 매칭 코스트를 갖는 템플릿을 이용하여 상기 현재 비디오 블록의 상기 움직임 정보를 조정하는 단계를 포함한다. 여기서, 상기 하나 또는 그 이상의 템플릿에는 다중 샘플을 가지는 비디오 블록이 포함된다.

Description

부분 코스트 계산
본 문서는 비디오 코딩 기술들에 관한 것이다.
비디오 압축 기술의 발전에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 사용한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
비디오 코딩에서 디코더 측 움직임 벡터 유도(Decoder Side Motion Vector Derivation; 이하 DMVD)와 관련된 기술들이 개시된다. 본 개시는 HEVC와 같은 기존 비디오 코딩 표준 또는 최종 확정될 표준(다목적 비디오 코딩 Versatile Video Coding)에 적용될 수 있다. 또한, 본 개시는 미래의 비디오 코딩 표준들 또는 비디오 코덱에도 적용될 수 있다.
예시적인 양상에서, 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법이 개시된다. 상기 방법은 상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계, 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 그리고 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는(refining) 단계를 포함한다. 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함된다.
다른 예시적인 양상에서, 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법이 개시된다. 상기 방법은 상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계, 상기 현재 비디오 블록의 크기를 판단하는 단계, 상기 현재 비디오 블록의 크기가 제1 크기 보다 작다는 판단에 따라, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계, 상기 현재 비디오 블록의 크기가 제1 크기 보다 작지 않다는 판단에 따라, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계, 그리고 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는 단계를 포함한다.
또 다른 예시적인 양상에서, 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법이 개시된다. 상기 방법은 상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계, 상기 현재 비디오 블록의 크기를 판단하는 단계, 상기 현재 비디오 블록의 크기가 제1 크기 보다 크다는 판단에 따라, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계, 상기 현재 비디오 블록의 크기가 제1 크기 보다 크지 않다는 판단에 따라, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계, 그리고 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는 단계를 포함한다.
또 다른 예시적인 양상에서, 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법이 개시된다. 상기 방법은 상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하고, 상기 현재 비디오 블록의 모양을 판단하는 단계, 상기 현재 비디오 블록의 모양이 제1 모양이라는 판단에 따라, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 상기 현재 비디오 블록의 모양이 제2 모양이라는 판단에 따라, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 현재 비디오 블록의 모양이 제3 모양이라는 판단에 따라, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치들에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 그리고 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는 단계를 포함한다.
다른 예시적인 양상에서, 전술 한 방법들 각각을 구현하도록 구성된 프로세서를 포함하는 장치가 개시된다.
또 다른 예시적인 양상에서, 이들 방법은 컴퓨터 실행 가능 명령어의 형태로 구현될 수 있고 컴퓨터 판독 가능한 프로그램 매체에 저장될 수 있다.
본 문서에서 상기 및 기타 양상들은 더 상세히 기술된다.
본 발명에 따르면, 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법이 제공될 수 있다.
도 1은 머지 후보 리스트 구성을 위한 유도 프로세스의 일 예를 보여준다.
도 2는 공간적 머지 후보의 예시적인 위치들을 보여준다.
도 3은 공간적 머지 후보들의 중복성 검사를 위해 고려되는 후보 쌍의 예들을 보여준다.
도 4a 및 도 4b는 Nx2N 및 2NxN 파티션의 제2 PU에 대한 예시적인 위치들을 보여준다.
도 5는 시간적 머지 후보에 대한 움직임 벡터 스케일링의 예시적인 도시이다.
도 6은 시간적 머지 후보, C0 및 C1에 대한 후보 위치의 예들을 보여준다.
도 7은 결합 양예측(bi-predictive) 머지 후보의 일 예를 보여준다.
도 8은 움직임 벡터 예측 후보들에 대한 예시적인 유도 프로세스를 보여준다.
도 9는 공간적 움직임 벡터 후보에 대한 움직임 벡터 스케일링의 예시적인 도시이다.
도 10은 양방향(Bilateral) 매칭의 일 예를 보여준다.
도 11은 템플릿 매칭의 일 예를 보여준다.
도 12는 FRUC에서 단방향(Unilateral) ME의 일 예를 보여준다.
도 13은 양방향 템플릿 매칭(bilateral template matching)에 기반한 DMVR의 일 예를 보여준다.
도 14는 템플릿 매칭에서 간소화된 템플릿의 일 예를 보여준다.
도 15는 비디오 디코딩의 예시적인 방법에 대한 순서도이다.
도 16은 비디오 디코딩의 다른 예시적인 방법에 대한 순서도이다.
도 17은 비디오 디코딩의 또 다른 예시적인 방법에 대한 순서도이다.
도 18은 비디오 디코딩의 또 다른 예시적인 방법에 대한 순서도이다.
도 19는 비디오 디코딩 장치의 블록도이다.
도 20은 비디오 인코더의 예시적인 구현을 보여준다.
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2018년 6월 7일에 제출된 미국 가출원 제62/682,150호에 대한 우선권과 혜택을 적시에 청구하기 위해 만들어졌다. 미국 법 하의 모든 목적을 위해, 미국 가출원 제62/682,150호의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 문서는 압축 해제 또는 디코딩된 디지털 비디오의 품질을 향상시키기 위해 비디오 비트스트림의 디코더에 의해 사용될 수 있는 다양한 기술들을 제공한다. 더 나아가, 비디오 인코더 또한 추가 인코딩에 사용되는 디코딩된 프레임을 복원하기 위해 인코딩 과정에서 이러한 기술들을 구현할 수 있다.
섹션 제목들은 본 문서에서 이해의 편의를 위해 사용된 것으로 실시예들 및 기술들을 해당 섹션들로 한정하지 않는다. 따라서, 한 섹션의 실시예들은 다른 섹션들의 실시예들과 결합될 수 있다. 또한, 일부 실시예가 비디오 코딩 단계들을 상세히 설명하는 경우, 코딩을 취소하는 상응하는 디코딩 단계들이 디코더에 의해 구현될 것임을 이해할 것이다. 또한, 용어 “비디오 처리”는 비디오 코딩 또는 압축, 비디오 디코딩 또는 압축 해제, 그리고 비디오 픽셀들이 하나의 압축된 포멧에서 다른 압축된 포멧으로 또는 상이한 압축된 비트 레이트로 표현되는 비디오 트랜스 코딩을 포함한다.
1. 기술 프레임워크
비디오 코딩 표준들은 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 주로 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였다. 두 기관은 H.262/MPEG-2 Video, H.264/MPEG-4 Advanced Video Coding (AVC) 그리고 H.265/HEVC 표준들을 공동으로 제작하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 함께 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어서는 미래형 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG는 공동 비디오 탐사 팀 (Joint Video Exploration Team (JVET))를 공동 설립하였다. 그 이후로, 많은 새로운 기법들이 JVET에 의해 채택되어 공동 탐사 모델 (Joint Exploration Model (JEM))이라는 참조 소프트웨어에 포함되었다. 2018년 4월, HEVC 대비 비트 레이트 50% 감소를 목표로하는 VVC 표준 작업을 위해, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 공동 비디오 전문가 팀 (Joint Video Expert Team (JVET))이 결성되었다.
2. HEVC/H.265에서 화면 간 예측
화면 간 예측된 각각의 예측 유닛(Prediction unit; 이하 PU)은 하나 또는 두 개의 참조 픽처 리스트에 대한 움직임 파라미터들을 가진다. 움직임 파라미터들은 움직임 벡터 및 참조 픽처 인덱스를 포함한다. 상기 두 참조 픽처 리스트들 중 하나의 사용은 inter_pred_idc를 사용하여 시그널링될 수도 있다. 움직임 벡터들은 예측자(predictor)들과 관련하여 델타들(deltas)로 명시적으로 인코딩될 수 있다.
코딩 유닛(CU)이 스킵 모드로 코딩될 경우, 하나의 PU가 상기 CU와 연관되며, 중요한 잔여 계수들, 코딩된 움직임 벡터 델타 또는 참조 픽쳐 인덱스가 존재하지 않는다. 머지 모드가 지정되면, 현재 PU에 대한 움직임 파라미터들이 공간적 및 시간적 후보들을 포함하여 인접 PU들로부터 획득된다. 상기 머지 모드는 스킵 모드에 대해서 뿐만 아니라, 어떤 화면 간 예측된 PU에도 적용될 수 있다. 머지 모드의 대안은 움직임 파라미터들의 명시적인 전송으로, 이 경우 움직임 벡터(더 상세히 말해, 움직임 벡터 예측자에 대비되는 움직임 벡터 차분), 각 참조 픽처 리스트에 대한 해당 참조 픽처 인덱스, 그리고 참조 픽처 리스트 사용이 각각의 PU별로 명시적으로 시그널링된다. 본 문서에서 이러한 모드는 향상된 움직임 벡터 예측(Advanced Motion Vector Prediction; 이하 AMVP)이라고 명명된다.
시그널링이 두 참조 픽처 리스트 중 하나를 사용해야 함을 지시할 경우, 상기 PU는 샘플들의 한 블록에서 생성된다. 이것을 '단예측'(uni-prediction)이라고 한다. 단예측은 P 슬라이스와 B 슬라이스 모두에 대해 사용할 수 있다.
시그널링이 두 참조 픽처 리스트 모두 사용되어야 함을 나타내면 상기 PU는 샘플들의 두 블록에서 생성된다. 이를 '양예측'(bi-prediction)이라고 한다. 양예측은 B-슬라이스에 대해서만 사용할 수 있다.
아래 텍스트는 HEVC에서 규정된 화면 간 예측 모드들에 관한 상세한 설명을 제공한다. 가장 먼저 머지 모드를 설명할 것이다.
2.1.1. 머지 모드
2.1.1.1. 머지 모드에 대한 후보 유도
머지 모드를 사용하여 PU가 예측되는 경우, 머지 후보 리스트(merge candidates list)의 항목을 가리키는 인덱스가 비트 스트림으로부터 파싱되어 움직임 정보를 검색하는 데 사용된다. 이 리스트의 구성은 HEVC 표준에 규정되어 있으며, 아래와 같은 단계들의 순서에 따라 요약될 수 있다.
· 단계 1: 초기 후보들 유도
o 단계 1.1: 공간적 후보들 유도
o 단계 1.2: 공간적 후보들에 대한 중복성 검사
o 단계 1.3: 시간적 후보들 유도
· 단계 2: 추가 후보들 삽입
o 단계 2.1: 양예측(bi-predictive) 후보들 생성
o 단계 2.2: 제로 움직임 후보들 삽입
이 단계들은 도 1에도 개략적으로 도시되어 있다. 공간적 머지 후보 유도를 위해, 5개의 상이한 위치에 있는 후보 중에서 최대 4개의 머지 후보가 선택된다. 시간적 머지 후보 유도를 위해, 두 후보 중 최대 하나의 머지 후보가 선택된다. 각 PU에 대해 일정한 수의 후보가 디코더에서 가정되기 때문에, 단계 1에서 획득된 후보의 수가 슬라이스 헤더에서 시그널링되는 머지 후보의 최대 수(MaxNumMergeCand)에 미치지 않으면, 추가 후보가 생성된다. 후보의 수가 일정하기 때문에 최적 머지 후보의 인덱스는 절단된 단항 이진화(TU)를 사용하여 인코딩 된다. 만약 CU의 크기가 8이면, 현재 CU의 모든 PU는 2N X 2N 예측 유닛의 머지 후보 리스트와 동일한 단일 머지 후보 리스트를 공유한다.
아래에서는 위에서 언급한 단계들과 관련된 동작들이 상세히 설명된다.
2.1.1.2. 공간적 후보 유도
공간적 머지 후보들 유도 시, 최대 4개의 머지 후보들이 도 2에 도시된 위치들에 위치한 후보들 가운데에서 선택된다. 유도 순서는 A1, B1, B0, A0 및 B2 순이다. 위치 A1, B1, B0의 어느 한 PU가 사용할 수 없는 경우(예를 들어, 다른 슬라이스 또는 타일에 속하기 때문) 또는 화면 내 부호화된 경우에만, 위치 B2가 고려된다. 위치 A1의 후보가 추가된 후 나머지 후보들의 추가는 중복 검사를 거친다. 이를 통해, 동일한 움직임 정보를 가진 후보가 리스트에서 제외되어 코딩 효율이 향상된다. 계산 복잡성을 줄이기 위해, 상기 언급된 중복 검사에서 가능한 모든 후보 쌍이 고려되는 것은 아니다. 그 대신, 도 3에서 화살표로 연결된 쌍들만이 고려되고, 중복 검사에 사용되는 해당 후보가 동일한 움직임 정보를 가지고 있지 않은 경우에만 후보가 리스트에 추가된다. 중복되는 운동 정보의 다른 소스는 2Nx2N와는 상이한 분할들과 관련된 "제2 PU " 이다. 일 예로, 도 4는 각각 Nx2N 및 2NxN의 경우에 대한 제2 PU를 도시한다. 현재 PU가 Nx2N으로 분할되면, A1위치의 후보는 리스트 구성에 고려되지 않는다. 실제로, 이 후보를 추가할 경우 동일한 움직임 정보를 갖는 2개의 예측 유닛이 초래되며, 이는 코딩 유닛에 단지 하나의 PU를 갖기에는 불필요하다. 마찬가지로, 현재 PU가 2NxN으로 분할되는 경우, 위치 B1은 고려되지 않는다.
2.1.1.3. 시간적 후보 유도
이 단계에서는, 오직 하나의 후보만이 리스트에 추가된다. 특히, 이 시간적 머지 후보의 유도 시, 주어진 참조 픽처 리스트 내에서 현재 픽처와 가장 작은 POC 차이를 갖는 픽처에 속하는 동일 위치의(co-located) PU를 기반으로, 스케일링된 움직임 벡터가 유도된다. 상기 동일 위치 PU의 유도에 사용될 상기 참조 픽처 리스트는 슬라이스 헤더에서 명시적으로 시그널링된다. 시간적 머지 후보에 대한 상기 스케일링된 움직임 벡터는 도 5의 점선으로 나타낸 바와 같이 획득되며, POC 거리들인 tb 및 td를 사용하여 상기 동일 위치 PU의 움직임 벡터로부터 스케일링 된다. 여기서, tb는 현재 픽처의 참조 픽처와 현재 픽처 사이의 POC 차이로 정의되고, td는 동일 위치 픽처의 참조 픽처와 동일 위치 픽처 사이의 POC 차이로 정의된다. 시간적 머지 후보의 참조 픽처 인덱스는 0으로 설정된다. 상기 스케일링 프로세스의 실제 구현은 HEVC 설명서에 기술되어 있다. B-슬라이스의 경우, 2개의 움직임 벡터가 하나는 참조 픽쳐 리스트 0을 위해 다른 하나는 참조 픽처 리스트 1을 위해 획득되고, 이것들이 결합되어 양예측(bi-predictive) 머지 후보가 만들어진다.
참조 프레임에 속하는 동일 위치 PU(Y)에서, 시간적 후보에 대한 위치는 도 6에 도시 된 바와 같이 후보 C0 및 C1 중에서 선택된다. 위치 C0의 PU를 사용할 수 없거나 화면 내 부호화되었거나 현재 CTU 행 외부에 있는 경우, 위치 C1 이 사용된다. 그 외의 경우, 위치 C0 이 시간적 머지 후보의 유도에 사용된다.
2.1.1.4. 추가 후보 삽입
공간적 및 시간적 머지 후보들 외에도 결합 양예측(bi-predictive) 머지 후보 및 제로 머지 후보라는 두 가지 추가 유형의 머지 후보들이 있다. 결합 양예측 머지 후보들은 공간적 및 시간적 머지 후보들을 활용하여 생성된다. 결합 양예측 머지 후보는 오직 B 슬라이스에 대해서만 사용된다. 결합 양예측 후보들은 초기 후보의 제1 참조 픽처 리스트 운동 파라미터들과 다른 후보의 제2 참조 픽처 리스트 파라미터들을 결합하여 생성된다. 이 두 튜플들(tuples)이 상이한 움직임 추정들(motion hypotheses)을 제공하는 경우, 그것들은 새로운 양예측 후보를 형성한다. 일 예로, 도 7은 mvL0 및 refIdxL0 또는 mvL1 및 refIdxL1을 가지는 원본 리스트(왼쪽)의 두 후보가 최종 목록(오른쪽)에 추가된 결합 양예측 후보를 생성하는 데 사용되는 경우를 도시한다. 이러한 추가 머지 후보를 생성하기 위해 고려되는 조합과 관련한 많은 규칙들이 있으며, HEVC 설명서에서 정의된다.
제로 움직임 후보들이 삽입되어 머지 후보 목록의 나머지 항목들을 채우고 이로써 MaxNumMergeCand 용량에 도달한다. 이 후보들은 0에서 시작하여 새로운 제로 움직임 후보가 리스트에 추가될 때마다 증가하는 참조 픽처 인덱스와 제로 공간 변위를 가진다. 이러한 후보들이 사용하는 참조 프레임의 수는 단방향 예측 및 양방향 예측에 대해 각각 1개 및 2개이다. 마지막으로 이러한 후보들에 대해서는 중복 검사가 수행되지 않는다.
2.1.1.5. 병렬 처리를 위한 움직임 추정 영역
인코딩 프로세스의 속도를 높이기 위해, 움직임 추정은 병렬로 수행될 수 있으며, 이를 통해 주어진 영역 내의 모든 예측 유닛들에 대한 움직임 벡터들이 동시에 유도된다. 연관된 움직임 추정이 완료되기 전에는 하나의 예측 유닛이 인접 PU로부터 움직임 파라미터들을 도출할 수 없기 때문에, 공간적 이웃으로부터 머지 후보들의 유도는 병렬 처리를 방해할 수 있다. 코딩 효율과 처리 지연 사이의 균형을 완화하기 위해, HEVC는 움직임 추정 영역(motion estimation region; 이하 MER)을 정의하며, 이 영역의 크기는 구문 요소 "log2_parallel_merge_level_minus2"를 사용하여 픽처 파라미터 세트에서 시그널링된다. MER이 정의되면, 동일한 영역에 속하는 머지 후보들은 사용할 수 없는 것으로 표시되어 리스트 구성에서 고려되지 않는다.
2.1.2. AMVP
AMVP는 움직임 파라미터들의 명시적 전송에 사용되는, 움직임 벡터와 인접 PU들의 시공간적 상관 관계를 활용한다. 각 참조 픽처 리스트에 대해, 먼저 왼쪽, 위쪽, 시간적으로 인접한 PU 위치들의 가용성을 확인하고, 중복 후보들을 제거하고, 후보 리스트가 일정한 길이가 되도록 제로 벡터를 추가함으로써 움직임 벡터 후보 리스트가 구성된다. 다음으로, 인코더는 상기 후보 리스트에서 최상의 예측자를 선택하고 선택한 후보를 지시하는 해당 인덱스를 전송할 수 있다. 머지 인덱스 시그널링과 마찬가지로, 최상의 움직임 벡터 후보의 인덱스는 절단된 단항(truncated unary)을 사용하여 인코딩된다. 이 경우 인코딩 될 최대 값은 2이다(도 8 참조). 아래 섹션들에서는 움직임 벡터 예측 후보의 유도 과정에 대해 상세히 설명한다.
2.1.2.1. AMVP 후보 유도
도 8은 움직임 벡터 예측 후보에 대한 유도 과정을 요약한 것이다.
움직임 벡터 예측 시, 공간적 움직임 벡터 후보와 시간적 움직임 벡터 후보라는 두 가지 유형의 움직임 벡터 후보들이 고려된다. 공간적 움직임 벡터 후보 유도를 위해, 도 2에 도시된 바와 같이 5개의 상이한 위치에 있는 각 PU의 모션 벡터들에 기반하여 2개의 움직임 벡터 후보들이 최종적으로 유도된다.
시간적 움직임 벡터 후보 유도를 위해, 하나의 움직임 벡터 후보가 2개의 상이한 동등 위치들을(co-located positions) 기반으로 도출된 2개의 후보들 중에서 선택된다. 시공간 후보들의 제1 리스트가 생성된 후, 중복된 움직임 벡터 후보들이 상기 리스트에서 제거된다. 만약 잠재적 후보의 수가 2보다 크면, 관련 참조 픽쳐 리스트 내의 참조 픽처 인덱스가 1보다 큰 움직임 벡터 후보는 상기 리스트에서 제거된다. 시공간적 움직임 벡터 후보의 수가 2 미만인 경우, 추가 제로 움직임 벡터 후보가 상기 리스트에 추가된다.
2.1.2.2. 공간적 움직임 벡터 후보
공간적 움직임 벡터 후보의 유도 시, 최대 2개의 후보가 5개의 잠재적 후보 가운데에서 고려되며, 이 잠재적 후보들은 도 2에 도시된 위치들에 있는 PU들로부터 유도된다. 이 위치들은 움직임 머지의 위치들과 동일하다. 현재 PU의 왼쪽에 대한 유도 순서는 A0, A1, 스케일링된 A0, 스케일링된 A1 순으로 정의된다. 현재 PU의 위쪽에 대한 유도 순서는 B0, B1, B2, 스케일링된 B0, 스케일링된 B1, 스케일링된 B2 순으로 정의된다. 따라서, 각 측면에 대해 움직임 벡터 후보로 사용할 수 있는 4개의 경우가 있으며, 2개의 경우는 공간적 스케일링을 사용할 필요가 없는 경우이고, 2개의 경우는 공간적 스케일링이 사용되는 경우이다. 상기 4개의 서로 다른 경우들은 아래와 같이 요약된다.
- 공간적 스케일링 없음
(1) 동일한 참조 픽처 리스트 및 동일한 참조 픽처 인덱스 (동일한 POC)
(2) 상이한 참조 픽처 리스트 및 동일한 참조 픽처 (동일한 POC)
- 공간적 스케일링
(3) 동일한 참조 픽처 리스트 및 상이한 참조 픽처 (상이한 POC)
(4) 상이한 참조 픽처 리스트 및 상이한 참조 픽처 (상이한 POC)
공간적 스케일링이 없는 경우를 먼저 확인한 다음 공간적 스케일링을 확인한다. 공간 스케일링은 참조 픽처 리스트와 상관없이 주변 PU의 참조 픽처와 현재 PU의 참조 픽쳐 사이의 POC가 다를 때 고려된다. 왼쪽 후보들의 모든 PU가 사용될 수 없거나 화면 내 부호화된 경우, 왼쪽 및 위쪽 MV 후보들의 병렬 유도를 돕기 위해 위쪽 움직임 벡터에 대한 스케일링이 허용된다. 그렇지 않은 경우, 공간적 스케일링은 위쪽 움직임 벡터에 대해 허용되지 않는다.
공간적 스케일링 프로세스에서, 주변 PU의 움직임 벡터는, 도 9에 도시된 것처럼, 시간적 스케일링과 유사한 방식으로 스케일링된다. 주요한 차이점은 현재 PU의 참조 픽처 리스트와 인덱스가 입력으로 제공된다는 것이다. 실제 스케일링 프로세스는 시간적 스케일링 프로세스와 동일하다.
2.1.2.3. 시간적 움직임 벡터 후보
참조 픽처 인덱스 유도와는 별개로, 시간적 머지 후보의 유도를 위한 모든 프로세스는 공간적 움직임 벡터 후보의 유도를 위한 것과 같다(도 6 참조). 참조 픽처 인덱스는 디코더로 시그널링된다.
2.2. JEM에서 새로운 화면 내 예측 방법
2.2.1. 패턴 정합 움직임 벡터 유도
패턴 정합 움직임 벡터 유도(pattern matched motion vector derivation: 이하 PMMVD) 모드는 프레임율 상승 변환 (Frame-Rate Up Conversion: 이하 FRUC) 기술에 기반한 특별한 머지 모드이다. 이 모드에서는 블록의 움직임 정보가 시그널링되지 않고 디코더 측에서 도출된다.
FRUC 플래그가 CU에 대해 시그널링되는 것은, 그것의 머지 플래그가 참일 때이다. 상기 FRUC 플래그가 거짓이면, 머지 인덱스가 시그널링되고, 레귤러 머지 모드가 사용된다. 상기 FRUC 플래그가 참이면, 추가 FRUC 모드 플래그가 시그널링되어 상기 블록의 움직임 신호를 유도하기 위해 어떤 방법(양방향 매칭 또는 템플릿 매칭)이 사용되어야 하는지 나타낸다.
인코더 측에서, CU에 대해 FRUC 머지 모드를 사용할지 여부에 대한 결정은 일반(normal) 머지 후보에 대해서와 같이 RD 코스트 선택에 기반한다. 즉, 상기 두 매칭 모드(양방향 매칭 및 템플릿 매칭) 모두 RD 코스트 선택을 사용하여 CU에 대해 확인된다. 최소 비용으로 이어지는 것은 다른 CU 모드들과 더 비교된다. 만약 FRUC 매칭 모드가 가장 효율적인 경우, FRUC 플래그는 해당 CU에 대해 참으로 설정되고, 관련 매칭 모드가 사용된다.
FRUC 머지 모드에서의 움직임 유도 프로세스는 2 단계로 구성된다. CU 레벨 움직임 탐색이 먼저 수행되고, 그 다음으로 Sub-CU 레벨 움직임 조정이 수행된다. CU 수준에서, 초기 움직임 벡터는 양방향 매칭 또는 템플릿 매칭에 기반하여 CU 전체에 대해 유도된다. 먼저, MV 후보 리스트가 생성되고, 최소 매칭 코스트로 이어지는 후보가 추가 CU 레벨 조정을 위한 출발점으로 선택된다. 그 다음으로, 상기 출발점을 중심으로 양방향 매칭 또는 템플릿 매칭을 기반으로 한 로컬 탐색이 수행되고, 최소 매칭 비용의 MV 결과가 CU 전체에 대한 MV로 간주된다. 그 후, 유도된 CU 움직임 벡터들을 출발점으로 하여, 움직임 정보가 서브 CU 레벨에서 추가로 조정된다.
예를 들어,
Figure pct00001
CU 움직임 정보 유도를 위해 다음과 같은 유도 과정이 수행된다. 첫 번째 단계에서, 전체
Figure pct00002
CU에 대한 MV가 유도된다. 두 번째 단계에서, 상기 CU는 서브
Figure pct00003
CU들로 더 분할된다. M의 값은 (1)에서와 같이 계산되며, D는 미리 정의된 분할 깊이로 JEM에서 기본적으로 3으로 설정된다. 다음으로, 각 서브 CU에 대한 MV가 유도된다.
Figure pct00004
} (1)
도 10에 도시된 것처럼, 양방향 매칭은 두 상이한 참조 픽처들에서 현재 CU의 움직임 궤적을 따라 두 블록들간의 가장 가까운 매칭을 찾음으로써 현재 CU의 움직임 정보를 유도하는 데에 사용된다. 연속적인 움직임 궤적의 가정하에, 두 참조 블록을 가리키는 움직임 벡터 MV0 및 MV1은 현재 픽처와 상기 두 참조 픽처 사이의 시간적 거리들, 즉 TD0 및 TD1에 비례해야 한다. 특별한 경우로, 현재 픽처가 두 참조 픽처 사이에 시간적으로 존재하고 현재 픽처에서 상기 두 참조 픽처까지의 시간적 거리가 같을 때, 양방향 매칭은 미러 기반 양방향 MV가 된다.
도 11에 도시 된 바와 같이, 템플릿 매칭은 현재 픽처에서의 템플릿(현재 CU의 상단 및/또는 좌측 인접 블록들)과 참조 픽처에서의 블록(템플릿과 동일한 크기) 사이에서 가장 가까운 매칭을 찾아 현재 CU의 움직임 정보를 도출하는 데 사용된다. 앞서 언급한 FRUC 머지 모드를 제외하고 템플릿 매칭은 AMVP 모드에도 적용된다. HEVC에서처럼, JEM에서 AMVP는 2가지 후보를 가진다. 템플릿 매칭 방법을 사용하면, 새로운 후보가 유도된다. 만약 템플릿 매칭에 의해 새로 유도된 후보가 기존 제1 AMVP 후보와 다른 경우, AMVP 후보 리스트의 맨 처음에 삽입되고 해당 리스트 크기는 2로 설정된다(기존 제2 AMVP 후보 제거를 의미). AMVP 모드에 적용시, 오직 CU 레벨 탐색만 적용된다.
2.2.2. CU 레벨 MV 후보 세트
CU 레벨에서 설정된 MV 후보의 구성은 아래와 같다.
(i) 현재 CU가 AMVP 모드 인 경우 원래 AMVP 후보
(ii) 모든 머지 후보들
(iii) 섹션 2.2.4 에 소개된 보간된 MV 필드의 여러 MV
(iv) 상단 및 좌측 주변 움직임 벡터
양방향 매칭을 사용하는 경우, 머지 후보의 유효한 각각의 MV는 양방향 매칭을 가정하여 MV 쌍을 생성하기 위한 입력으로 사용된다. 예를 들어, 머지 후보의 유효한 하나의 MV는 참조 리스트 A에서 (MVa, refa)이다. 다음으로, 그것의 쌍을 이룬 양방향 MV의 참조 픽쳐 refb가 다른 쪽 참조 리스트 B에서 발견되어 refa 및 refb가 시간적으로 현재 픽처의 다른 사이드에 있게 된다. 이러한 refb가 참조 리스트 B에서 사용 가능하지 않은 경우, refb는 refa와 다른 레퍼런스로 결정되고, 그것의 현재 픽처까지의 시간적 거리는 리스트 B에서 최소가 된다. refb가 결정된 후, MVb는 현재 픽처와 refa, refb 사이의 시간적 거리를 기반으로 MVa를 스케일링하여 도출된다.
보간된 MV 필드로부터 4개의 MV 또한 CU 레벨 후보 리스트에 추가된다. 보다 구체적으로, 현재 CU의 위치 (0, 0), (W/2, 0), (0, H/2) 및 (W/2, H/2)의 보간된 MV들이 추가된다.
FRUC가 AMVP 모드에서 적용되면, 원래 AMVP 후보들도 CU 레벨 MV 후보 세트에 추가된다.
CU 레벨에서, AMVP CU에 대해 최대 15개의 MV 및 머지 CU에 대해 최대 13개의 MV가 후보 리스트에 추가된다.
2.2.3. 서브 CU 레벨 MV 후보 세트
서브 CU 레벨에서 설정된 MV 후보의 구성은 아래와 같다.
(i) CU 레벨 탐색에서 결정된 MV
(ii) 상단, 왼쪽, 왼쪽 상단 및 오른쪽 상단 주변 MV들
(iii) 참조 픽처들에서 동일 위치(collocated) MV들의 스케일링된 버전들
(iv) 최대 4개의 ATMVP 후보
(v) 최대 4개의 STMVP 후보
참조 픽처로부터 스케일링된 MV는 다음과 같이 유도된다. 두 리스트의 모든 참조 픽처가 횡단된다. 참조 픽처에서 서브 CU의 동일 위치에 있는(collocated) MV들이 시작 CU 레벨 MV(starting CU-level MV)의 참조로 스케일링된다.
ATMVP 및 STMVP 후보는 4개의 제1 후보로 한정된다.
서브 CU 레벨에서 최대 17개의 MV가 후보 리스트에 추가된다.
2.2.4. 보간된 MV 필드 생성
프레임을 코딩하기 전에, 단방향 ME를 기반으로 픽처 전체에 대해 보간된 움직임 필드가 생성된다. 그러면 상기 움직임 필드는 후에 CU 레벨 또는 서브 CU 레벨 MV 후보로 사용될 수 있다.
먼저, 두 참조 리스트에 있는 각 참조 픽처의 움직임 필드는 4x4 블록 레벨에서 횡단된다. 각 4x4 블록에 대해, 만약 (도 12에 도시된 것처럼) 현재 픽처에서 4x4 블록을 통과하는 블록과 관련된 움직임이 있고 블록에 보간된 움직임이 할당되지 않은 경우, 참조 블록의 움직임은 시간적 거리 TD0 및 TD1에 따라 현재 픽처로 스케일링되고 (HEVC에서 TMVP의 MV 스케일링과 동일), 상기 스케일링된 움직임은 현재 프레임의 블록에 할당된다. 스케일링된 MV가 4x4 블록에 할당되지 않은 경우, 블록의 움직임은 보간된 움직임 필드에서 사용할 수 없는 것으로 표시된다.
2.2.5. 보간 및 매칭 코스트
움직임 벡터가 분수 샘플 위치를 가리키는 경우, 움직임 보상 보간이 필요하다. 복잡성을 줄이기 위해, 양방향 매칭과 템플릿 매칭 모두에 대해 일반(regular) 8 탭 HEVC 보간 대신 양방향 선형(bi-linear) 보간이 사용된다.
매칭 코스트 계산은 단계마다 조금씩 다르다. CU 레벨에서 설정된 후보자 세트에서 후보자를 선택하는 경우, 매칭 코스트는 양방향 매칭 또는 템플릿 매칭의 SAD(Sum of Absolute Difference)이다. 시작 MV(starting MV)가 결정된 후 서브 CU 레벨 탐색에서 양방향 매칭의 매칭 코스트 C는 다음과 같이 계산된다.
Figure pct00005
(2)
여기서, w는 경험적으로 4로 설정된 가중치이고, MV and MV S 는 각각 현재 MV와 시작 MV를 나타낸다. SAD는 서브 CU 레벨의 템플릿 매칭의 매칭 코스트로 여전히 사용된다.
FRUC 모드에서 MV는 휘도 샘플만 사용하여 유도된다. 유도된 움직임은 MC 화면 간 예측을 위한 휘도와 색차 모두에 사용된다. MV가 결정되면 휘도에 대해서는 8 탭 보간 필터와 색차에 대해서는 4 탭 보간 필터를 사용하여 최종 MC를 수행한다.
2.2.6. MV 조정(MV refinement)
MV 조정은 양방향 매칭 코스트 또는 템플릿 매칭 코스트를 기준으로 하는 패턴 기반 MV 탐색이다. JEM에서는 2개의 탐색 패턴, 즉 무제약 중심 바이어스 다이아몬드 탐색(Unrestricted Center-biased Diamond Search; 이하 UCBDS) 및 적응형 교차 탐색이 각각 CU 레벨 및 서브 CU 레벨의 MV 조정을 위해 지원된다. CU 레벨 및 서브 CU 레벨 MV 조정에서, MV는 1/4 휘도 샘플 MV 정확도에서 직접적으로 탐색되고, 1/8 휘도 샘플 MV 조정이 뒤따른다. CU 및 서브 CU 단계에 대한 MV 조정의 탐색 범위는 8개의 휘도 샘플과 같게 설정된다.
2.2.7. 템플릿 매칭 FRUC 머지 모드에서 예측 방향 선택
양방향(bilateral) 매칭 머지 모드에서, 양예측은 항상 적용된다. 왜냐하면 CU의 움직임 정보가 두 상이한 참조 픽처들에서 상기 현재 CU의 움직임 궤적을 따라 두 블록들간의 가장 가까운 매칭을 기반으로 유도되기 때문이다. 이와 같은 제한은 템플릿 매칭 머지 모드에 대해서는 존재하지 않는다. 템플릿 매칭 머지 모드에서, 인코더는 CU에 대해 list0으로부터의 단예측(uni-prediction), list1로부터의 단예측, 또는 양예측 가운데 선택할 수 있다. 상기 선택은 아래와 같이 템플릿 매칭 코스트를 기반으로 한다.
If costBi <= factor * min (cost0, cost1)
양예측이 사용된다.
Otherwise, if cost0 <= cost1
list0으로부터의 단예측이 사용된다.
Otherwise,
list1으로부터의 단예측이 사용된다.
여기서 cost0은 list0 템플릿 매칭의 SAD, cost1은 list1 템플릿 매칭의 SAD, 그리고 costBi는 양예측 템플릿 매칭의 SAD이다. 계수의 값은 1.25와 같으며, 이는 선택 프로세스가 양예측에 편향되어 있음을 의미한다.
화면 내 예측 방향 선택은 오직 CU 레벨 템플릿 매칭 프로세스에만 적용된다.
2.2.8. 디코더 측 움직임 벡터 조정
양예측 동작에서, 하나의 블록 영역의 예측을 위해, list0의 움직임 벡터(MV)와 list1의 MV를 각각 사용하여 형성된 2개의 예측 블록들이 결합되어 단일 예측 신호를 형성한다. 디코더 측 움직임 벡터 조정(DMVR) 방법에서, 상기 양예측의 두 움직임 벡터는 양방향(bilateral) 탬플릿 매칭 프로세스에 의해 추가 조정된다. 디코더에 적용된 상기 양방향 탬플릿 매칭은 추가 움직임 정보의 전송 없이 조정된 MV를 획득하기 위해 양방향 탬플릿과 참조 픽처들의 복원 샘플들 사이에 왜곡 기반 탐색을 수행한다.
도 13에 도시된 바와 같이, DMVR에서 양방향 템플릿은 각각 list0의 초기 MV0 및 list1의 MV1로부터 형성된 두 예측 블록들의 가중 조합(예를 들어, 평균)으로 생성된다. 상기 템플릿 매칭 작업은 상기 생성된 탬플릿과 참조 픽처에서의 (초기 예측 블록 주변의) 샘플 영역 사이에 코스트 기준들을 계산하는 것으로 구성된다. 두 참조 픽처 각각에 대해, 최소 템플릿 코스트를 산출하는 MV는 원래 MV를 대체하기 위한 해당 리스트의 업데이트된 MV로 간주된다. 각 리스트에 대해 9개의 MV 후보들이 JEM에서 탐색된다. 상기 9개의 MV 후보들은 원래의 MV와 수평 또는 수직 방향 또는 두 방향 모두에서 상기 원래 MV에 대한 하나의 휘도 샘플 오프셋을 가지는 8개의 주변 MV들을 포함한다. 마지막으로, 두 개의 새로운 MV들, 즉, 도 13에 도시된 바와 같이, MV0' 및 MV1' 은 최종 양예측(uni-prediction) 결과들을 생성하는 데에 사용된다. 절대 차이의 합(Sum of absolute differences; 이하 SAD)이 코스트 기준으로 사용된다. 하나의 주변 MV에 의해 생성된 예측 블록의 코스트를 계산하는 경우, 실재 MV 대신에 (정수 픽셀로) 반올림된 MV를 실제로 사용하여 상기 예측 블록을 획득한다는 사실에 유의해야 한다.
DMVR은, 추가 구문 요소의 전송 없이, 과거의 참조 픽처로부터 하나의 MV 및 미래의 참조 픽처로부터 다른 하나의 MV를 가지는 양예측의 머지 모드에 적용된다. JEM에서, LIC, 어파인 모션, FRUC 또는 서브 CU 머지 후보들이 CU에 대해 허용되면, DMVR이 적용되지 않는다.
2.2.9. 문제의 예들
DMVR 및 FRUC와 같은 DMVD 방법은 움직임 추정을 수행하여 움직임 정보를 유도하거나 조정하는데, 이는 디코더에 매우 복잡하다. 모션 추정 동안, 이 방법들은 중에 한 가지 공통 문제를 공유한다. 즉, 템플릿과 후보 블록 사이의 차이(절대 차이, 제곱 차이 등)가 블록의 모든 픽셀들에 대해 계산되고 합산된 다음 최적의 매칭 블록을 선택하는 데에 사용된다. 이는 필요하지 않다. 왜냐하면 부분적인 픽셀의 차이가 최적의 후보 블록 또는 MV를 선택하기에 충분하지 않기 때문이다. 한편, 일반적으로 휘도 성분만이 움직임 벡터의 유도 또는 조정에 사용되며 색차 성분은 고려되지 않는다.
DMVR의 경우 다음과 같은 또 다른 복잡성 문제가 있다. 모션 보상을 두 번 수행하는데, 한 번은 템플릿을 생성하기 위한 것이고, 또 한 번은 최종 예측 블록을 생성하기 위한 것이다. 결과적으로, 각 참조 픽처 리스트(예를 들어, 예측 방향)에 대해, 초기 MV와 조정된 MV가 분수 성분만을 갖는 경우, 수평 보간과 수직 보간을 두 번 수행한다. 이것은 최악의 경우 복잡성을 극적으로 증가시킨다. 한편 DMVR은 머지 모드에서만 작동하며 AMVP 모드에서는 작동하지 않는다. MV 조정에서, 시그널링된 MV(머지 후보에서 유도된 MV)를 시작 MV로 취하고, 그것의 주변 MV를 확인한다. 하지만, 상기 시그널링된 MV의 MV 정밀도는 고려되지 않는다. AMVR에서는 낮은 정밀도의 MV가 선택될 수 있다. 예를 들어, 허용 가능한 최고 MV 정밀도가 1/4 픽셀이라고 가정하면, AMVR에서는 4 픽셀 또는 1 픽셀 MV를 사용할 수 있다. 이 경우, DMVR은 MV 정밀도를 조정하는 데에 사용될 수 있다. 서브 블록 레벨에서 적용될 수 있는 FRUC와 달리, DMVR은 ATMVP 및 STMVP 경우를 제외하고 블록 레벨에서 수행되며, 이는 코딩 성능 손실로 이어질 수 있다.
FRUC의 경우, 양방향 매칭을 수행할 때, 식 4에서와 같이, 시작 MV와 후보 MV 사이의 MV 차이를 고려하여 신뢰하기 힘든 움직임 벡터들을 억제한다. MV 차이에 고정된 가중치 계수가 곱해지며, 이는 비합리적 일 수 있다. 큰 블록의 경우 SAD가 지배적인 역할을 하고 MV 차이는 무시할 수 있으며, 작은 블록의 경우 MV 차이가 지나치게 클 수 있다.
2.2.10. 예시적인 실시예들
우리는 DMVD 방법들의 복잡성을 줄이고 코딩 성능을 향상시키기 위한 몇 가지 측면을 제안한다. 개시된 방법들은 기존 DMVD 방법들 뿐만 아니라 디코더 측에서 움직임/모드 유도를 위한 미래의 방법들에도 적용될 수 있을 것이다.
첫째, 템플릿과 후보 블록 사이의 코스트(예를 들어, 차이, 왜곡, 또는 왜곡과 MV를 모두 고려하는 코스트)는 디코더 측 움직임 추정에서, 즉, 움직임 정보 유도 또는 조정 절차에서, 오직 부분적인 픽셀들에 대해서만 계산된다. 둘째, DMVR에 대해, 보간 시간이 줄어든다. 셋째, 개시된 기술들을 사용하는 일부 실시예들은 AMVP 모드에 DMVR을 적용한다. 넷째, MV 차이의 가중치 계수는 상이한 블록 크기에 따라 다를 수 있다.
아래에 열거되는 예들은 개시된 기술들이 비디오 디코딩 프로세스에 구현될 수 있는 몇 가지 방식들을 제공한다.
prec는 움직임 벡터 정밀도를 나타내며, prec가 N과 같은 경우, 해당 움직임 벡터가 1/2^N 픽셀(pel)의 정밀도를 가진다는 것을 의미한다. N은 양의 정수, 0, 또는 음의 정수일 수 있다.
1. 템플릿과 후보 블록 간의 코스트(예를 들어, 차이)는 움직임 정보 유도 또는 조정 절차에서 부분적으로 선택된 행들(rows)에 대해서만 계산된다.
a. 일 예에서, 선택된 행들은 매 N개 행의 i 번째 행 모두로 정의된다. 여기서, N> 1 및 1 <= i <= N이다. 예를 들어, N은 2이고 i 은 1이다.
b. 일 예에서, N개의 행을 가진 각 그룹에 대해, 상기 그룹 내에서 특정 행들이 상기 선택된 행들로 사용된다. 예를 들어, 4개 행마다 첫 번째 행과 두 번째 행이 사용된다.
c. 일 예에서, 상기 블록의 임의로 선택된 행들, 예를 들어, 첫 번째 행과 마지막 행 또는 처음 두 행과 마지막 두 행에 대해 코스트가 계산된다.
d. 부분적인 행들을 선택할 때 동일한 규칙이 모든 블록 크기에 적용될 수 있다. 또는 상이한 블록 크기 및/또는 상이한 블록 형태(예를 들어, 정사각형 또는 직사각형 또는 블록 폭과 블록 높이 사이의 비율)에 상이한 규칙들이 적용될 수 있다.
i. 일 예에서, 코스트 계산 동안, 더 큰 블록 크기에 대해 더 많은 행을 건너 뛰고 그 반대의 경우도 마찬가지이다. 예를 들어, 블록 크기가 16x16보다 작은 경우(즉, 너비 * 높이 <16 * 16), 매 2행의 첫 번째 행에 대해 차이가 계산되지만, 다른 블록 크기의 경우, 매 4행의 첫 번째 행에 대해 계산된다.
ii. 일 예에서, 코스트 계산 동안, 높이가 더 큰 블록 모양에 대해 더 많은 행을 건너 뛰고 그 반대의 경우도 마찬가지이다. 예를 들어, 블록 높이가 16보다 작은 경우, 매 2행의 첫 번째 행에 대해 코스트가 계산되지만, 다른 블록 크기의 경우, 매 4행의 첫 번째 행에 대해 계산된다.
iii. 일 예에서, 이러한 단순화는 최악의 복잡성을 억제하기 위해 하나 또는 여러 개의 가장 작은 블록 크기(즉, 가장 작은 너비 * 높이)에만 적용된다. 예를 들어, 상기 단순화는 면적이 8x8보다 작은 블록에만 적용된다.
iv. 일 예에서, 이러한 단순화는 하나 또는 여러 개의 가장 큰 블록 크기에만 적용된다. 예를 들어, 상기 단순화는 면적이 32x32보다 큰 블록에만 적용된다.
v. 일 예에서, 이러한 단순화는 가장 큰 블록 높이 또는 너비를 가진 하나 또는 여러 블록 모양에만 적용된다.
vi. 일 예에서, 이러한 단순화는 일부 선택된 블록 모양에만 적용된다.
2. 블록의 각 행 또는 블록의 선택된 각 행에 대해, 코스트는 모든 열 또는 부분적인 열에 대해서만 계산된다.
a. 일 예에서, 상기 코스트는 매 T개의 열에서 M개의 연속적인 열(유효한 열 Y에서 시작 가능)에 대해 계산된다. 여기서 T> 0, 1 <= M <= T, 1 <= Y <= T - M + 1. 예를 들어, T = 8, M = 4 및 Y = 1이다.
b. 일 예에서, 매 T개의 열에서 선택된 M개의 열에 대해 상기 코스트가 계산된다.
c. 일 예에서, 상기 코스트는 행의 임의 선택된 M개의 열(예를 들어, 처음 K개의 열과 마지막 L개의 열)에 대해 계산된다.
d. 부분적인 열들을 선택할 때 동일한 규칙이 모든 블록 크기에 적용될 수 있다. 또는 상이한 블록 크기 및/또는 상이한 블록 형태(예를 들어, 정사각형 또는 직사각형 또는 블록 폭과 블록 높이 사이의 비율)에 상이한 규칙들이 적용될 수 있다.
i. 일 예에서, 코스트 계산 동안, 더 큰 블록 크기에 대해 더 많은 열을 건너 뛰고 그 반대의 경우도 마찬가지이다. 예를 들어, 블록 크기가 16x16보다 작은 경우, 매 8개 열의 처음 4개 열에 대해 차이가 계산되지만, 다른 블록 크기의 경우, 매 16개 열마다 처음 4개 열에 대해 계산된다. 열이 8 또는 16 보다 작은 경우, 처음 4개 열만 차이를 계산하는 데 사용된다.
ii. 일 예에서, 코스트 계산 동안, 너비가 더 큰 블록 모양에 대해 더 많은 열을 건너 뛰고 그 반대의 경우도 마찬가지이다. 예를 들어, 블록의 너비가 16보다 작은 경우, 매 8개 열의 처음 4개 열에 대해 코스트가 계산되지만, 다른 블록 크기의 경우, 매 16개 열의 처음 4개 열에 대해 계산된다.
iii. 일 예에서, 이러한 단순화는 최악의 복잡성을 억제하기 위해 하나 또는 여러 개의 가장 작은 블록 크기에만 적용된다.
iv. 일 예에서, 이러한 단순화는 하나 또는 여러 개의 가장 큰 블록 크기에만 적용된다.
v. 일 예에서, 이러한 단순화는 가장 큰 블록 폭을 가진 하나 또는 여러 블록 모양에만 적용된다.
vi. 일 예에서, 이러한 단순화는 일부 선택된 블록 모양에만 적용된다.
3. DMVR에서는, 템플릿을 생성할 때, JEM에서와 같이 실제 MV를 사용하는 대신 정수 수평 성분 또는 수직 성분이 있는 정수 MV 또는 MV를 사용하여 움직임 보상을 수행한다.
a. 일 예에서, MV(수평 구성 요소 및 수직 구성 요소 모두)는 두 예측 방향 모두에 대해 정수 정밀도로 반올림된다.
b. 일 예에서, 한 예측 방향의 MV는 정수 정밀도로 반올림되고 다른 예측 방향의 MV는 변경되지 않는다.
c. 일 예에서, 오직 하나의 MV 성분(수평 성분 또는 수직 성분)만 각 예측 방향에 대해 정수 정밀도로 반올림된다.
d. 일 예에서, 한 예측 방향의 MV가 정수 정밀도로 반올림되고, 다른 예측 방향의 오직 한 MV 구성 요소만이 정수 정밀도로 반올림된다.
e. 일 예에서, 한 예측 방향의 MV는 변경되지 않고, 다른 예측 방향의 오직 한 MV 구성 요소만 정수 정밀도로 반올림된다.
f. fmv는 분수 mv를 나타내고, imv는 반올림 된 정수 정밀도 mv를 나타낸다. sign (x)는 x의 부호를 나타내고
Figure pct00006
.이다.
i.
Figure pct00007
ii.또는
Figure pct00008
iii.또는
Figure pct00009
g. 이러한 단순화는 모든 블록 크기 또는 하나 또는 몇몇 블록 크기 및/또는 특정 블록 모양에 적용될 수 있다.
i. 일 예에서, 이러한 단순화는 JEM 또는 BMS(bench mark set)의 4x4 또는 HEVC의 4x8 및 8x4와 같이 하나 또는 몇몇 가장 작은 블록 크기에 적용된다.
ii. 일 예에서, 이러한 단순화는 하나 또는 몇몇 가장 큰 블록 크기에 적용된다.
iii. 일 예에서, 이러한 단순화는 일부 선택된 블록 크기에 적용된다.
4. 또는, DMVR에서, 템플릿을 생성할 때, (이중 선형 필터 같은) 보간 필터의 더 짧은 탭이 움직임 보상에 사용된다.
5. DMVR은 서브 블록 레벨에서 수행하는 것이 좋다. 블록은 다양한 방법으로 서브 블록으로 분할 될 수 있다.
a. 일 예에서, 모든 블록은 고정된 MxN 서브 블록 크기, 예를 들어, 4x4 또는 4x8 또는 8x4 또는 8x8 또는 8x16 또는 16x8 또는 16x16 등으로 분할된다. 블록 너비/높이가 서브 블록 너비/높이의 정수 배수인 경우, 서브 블록으로 분할되고, 그렇지 않은 경우, 서브 블록으로 분할되지 않는다.
b. 일 예에서, 블록은 동일한 크기를 갖는 K개의 서브 블록으로 분할된다. 여기서, K >= 2이다. 예를 들어, MxN 블록은 4(M/2)x(N/2) 서브 블록 또는 2(M/2)xN 서브 블록 또는 2Mx(N/2) 블록으로 분할된다.
c. 일 예에서, 분할 방법은 블록 크기 또는 블록 모양 또는 기타 코딩된 정보에 좌우된다. 예를 들어, 8x32 블록은 4x8 서브 블록으로 분할되고, 32x8 블록은 8x4 서브 블록으로 분할된다.
d. 일 예에서, 서브 블록의 템플릿 생성시, 전체 블록의 유도된 움직임 정보는 현재 블록 레벨 DMVR에서와 같이 활용될 수 있다.
i. 또는, 전체 블록의 유도된 움직임 정보가 유무와 상관없이 주변 서브 블록(들)의 조정된 움직임 정보가 템플릿을 형성하기 위해 활용될 수 있다.
e. 일 예에서, 한 서브-블록의 탐색 포인트는 다른 서브-블록(들)로부터 조정된 움직임 정보 또한 고려할 수 있다.
6. 일 예에서, (PMMVD에서) 템플릿 매칭에 의해 사용되는 템플릿은 도 14에 도시 된 바와 같이 현재 블록의 위에 있는 픽셀만을 포함하고, 현재 블록에 남아있는 픽셀은 포함하지 않는다.
7. 기존 DMVD 방법들에서는 휘도 구성 요소만이 움직임 벡터를 유도하거나 조정하기 위해 고려된다. 색차 성분 또한 고려할 것을 제안한다. 주어진 움직임 벡터의 3가지 색 성분의 코스트를 Ci로 나타낸다(여기서 i는 색 성분 인덱스를 나타낸다).
a. 최종 코스트는 Wi*Ci로 정의되며, 여기서 Wi는 i 번째 색 성분에 대한 가중치를 나타낸다.
b. 또는 최종 코스트는 (W0*C0 + W1*(C1+C2))로 정의된다. 일부 예에서 W0 또는 W1은 1과 같다.
c. 일 예에서, DMVR을 색차 성분들에 적용하는 경우, 움직임 벡터의 반올림이 적용되어 정수 움직임 벡터들이 활용될 수 있으며, 색차 성분들에는 보간을 적용할 필요가 없다.
d. 일 예에서, DMVR을 색차 성분들에 적용하는 경우, 만약 보간이 필요하다면, (이중 선형 필터와 같은) 보간 필터의 더 짧은 탭이 적용될 수 있다.
8. 상기 방법들은 특정 색 성분 또는 모든 색 성분들에 적용될 수 있다.
a. 상이한 규칙들이 상이한 색 성분들에 적용되거나, 또는 휘도 및 색차 성분들이 상이한 규칙들을 활용할 수 있다.
b. 또는 상기 방법들의 적용 여부 및 적용 방법은 시퀀스 파라미터 세트, 픽처 파라미터 세트, 슬라이스 헤더 등에서 더 시그널링 될 수 있다.
도 15는 비디오 디코딩의 예시적인 방법(1500)에 대한 순서도이다. 상기 방법(1500)은 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계(1502), 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계(1504), 그리고 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는(refining) 단계(1506)를 포함한다. 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함된다.
도 16은 비디오 디코딩의 예시적인 방법(1600)에 대한 순서도이다. 상기 방법(1600)은 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계(1602), 상기 현재 비디오 블록의 크기가 제1 크기 보다 작은지를 판단하는 단계(1604), 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계(1606), 상기 현재 비디오 블록의 크기가 제1 크기 보다 작은 경우, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계(1608), 그리고 상기 현재 비디오 블록의 크기가 제1 크기 보다 작지 않은 경우, 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는 단계(1610)를 포함한다.
도 17은 비디오 디코딩의 예시적인 방법(1700)에 대한 순서도이다. 상기 방법(1700)은 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계(1702), 상기 현재 비디오 블록의 크기가 제1 크기 보다 큰지 여부를 판단하는 단계(1704), 만약 상기 현재 비디오 블록의 크기가 제1 크기 보다 크다면, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계(1706), 만약 상기 현재 비디오 블록의 크기가 제1 크기 보다 크지 않다면, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계(1708), 그리고 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 비디오 블록의 상기 운동 정보를 조정하는 단계(1710)를 포함한다.
도 18은 비디오 디코딩의 예시적인 방법(1800)에 대한 순서도이다. 상기 방법(1800)은 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계(1802), 상기 현재 비디오 블록의 모양이 선택된 모양들 중 하나인지 여부를 판단하는 단계(1804), 만약 상기 현재 비디오 블록의 모양이 선택된 모양들 중 하나라면, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계(1806), 만약 상기 현재 비디오 블록의 모양이 선택된 모양들 중 하나가 아니라면, 다수의 샘플을 갖는 비디오 블록을 포함하는 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계(1808), 그리고 최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 비디오 블록의 상기 움직임 정보를 조정하는 단계(1810)를 포함한다.
상기 방법들과 관련하여, 일부 실시예에서는 픽셀 위치들의 부분 세트가 하나 또는 그 이상의 템플릿 각각의 행들의 서브 세트를 포함한다. 일부 실시예에서, 픽셀 위치들의 부분 세트는 하나 또는 그 이상의 템플릿 각각의 N개 행의 모든 그룹으로부터의 모든 i번째 행을 포함한다.
섹션 2.2.10은 방법 1500, 1600, 1700 또는 1800에 의해 구현될 수 있는 추가적인 실시예 및 변형들을 제공한다.
도 19은 현재 개시된 기술의 다양한 부분들을 구현하기 위해 활용될 수 있는 하드웨어 장치(1900)의 일 실시예의 블록 다이어그램이다. 하드웨어 장치(1900)는 노트북, 스마트폰, 태블릿, 캠코더, 또는 비디오를 처리할 수 있는 기타 유형의 장치일 수 있다. 상기 장치(1900)는 데이터를 처리하는 프로세서 또는 컨트롤러(1902)와 상기 프로세서(1902)와 통신하여 데이터를 저장 및/또는 버퍼링하는 메모리(1904)를 포함한다. 예를 들어, 프로세서(1902)는 중앙 처리 장치(CPU) 또는 마이크로 컨트롤러(MCU)를 포함할 수 있다. 일부 구현에서 프로세서(1902)는 필드 프로그래밍 가능 게이트 어레이(FPGA)를 포함할 수 있다. 일부 구현에서 장치(1900)는 스마트폰 장치의 다양한 시각 및/또는 통신 데이터 처리 기능을 위해 그래픽 처리 장치(GPU), 비디오 처리 장치(VPU) 및/또는 무선 통신 장치를 포함하거나 이것들과 통신한다. 예를 들어, 메모리(1904)는 프로세서 실행 코드를 포함 및 저장할 수 있다. 이 코드는, 프로세서(1902)에 의해 실행될 경우, 정보, 명령 및/또는 데이터를 수신하고, 정보 및 데이터를 처리하고, 처리된 정보/데이터를 액추에이터(actuator)나 외부 디스플레이 같은 다른 장치에 전송하거나 제공하는 것 같은 다양한 작업을 수행하기 위해 장치(1900)를 구성한다. 장치(1900)의 다양한 기능을 지원하기 위해 메모리(1904)는 프로세서(1902)가 처리하거나 참조하는 명령어, 소프트웨어, 수치, 이미지 및 기타 데이터와 같은 정보 및 데이터를 저장할 수 있다. 예를 들어, 다양한 유형의 랜덤 액세스 메모리(Ramdom Access Memory (RAM)) 장치, 읽기 전용 기억(Read Only Memory (ROM)) 장치, 플래시 메모리 장치 및 기타 적합한 저장 매체를 사용하여 메모리(1904)의 저장 기능을 구현할 수 있다. 장치(1900)는 변환 및 디코딩과 같은 반복적인 계산 기능을 수행하기 위한 전용 비디오 처리 회로(1906)를 추가로 포함할 수 있다. 장치(1900)는 방법 1500, 1600, 1700 또는 1800을 구현하는 데 사용될 수 있다.
도 20은 비디오 인코더의 예시적인 구현을 보여주는 블록도이다. 상기 비디오 인코더는 변환, 움직임 추정 그리고 잔여 오류 코딩과 같은 코딩 도구를 사용하여 코딩된 비디오 픽처들에서 작동한다. 인코딩된 비디오 프레임은 인코더에서 복원(움직임 모상)되고 다른 비디오 픽처들의 화면내 코딩을 위한 참조 픽처로 사용된다. 본 문서에 설명된 기술들은 도 19와 관련하여 설명된 하드웨어 플랫폼을 사용하여 비디오 인코더 또는 비디오 디코더에 의해 구현될 수 있다.
상기로부터, 현재 개시된 기술의 구체적인 실시예들은 여기서 설명의 목적을 위해 기재되었으며, 본 발명의 범위에서 벗어나지 않는 한 다양한 수정이 이루어질 수 있다는 점이 이해될 것이다. 따라서, 현재 개시된 기술은 첨부된 청구항들에 의하는 바를 제외하고는 한정되지 않는다.
개시된 실시예들 및 다른 실시예들, 그리고 본 문서에 기재된 모듈 및 기능적 작업들은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 본 문서에서 개시된 구조들 및 구조적 등가물들, 또는 그 중 하나 이상의 조합이 포함될 수 있다. 개시된 실시예들 및 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품들로, 즉, 컴퓨터 판독 가능한 매체에 코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현되어, 데이터 처리 장치에 의해 실행하거나, 또는 상기 장치의 작동을 제어할 수 있다. 상기 컴퓨터 판독 가능한 매체는 기계 판독 가능한 저장 디바이스, 기계 판독 가능한 저장 기판, 메모리 디바이스, 기계 판독 가능한 전파된 신호를 달성하는 물질의 조성, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는, 데이터를 처리하기 위한 모든 장치, 디바이스 및 기계를 포괄하며, 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터들을 포함한다. 상기 장치는, 장치는 또한 하드웨어 외에도, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함할 수 있고, 코드는 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성한다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이며, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 인터프리터 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨터 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로도 배치될 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 상응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부에 저장되거나(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트), 당해 프로그램 전용의 단일 파일에 저장되거나, 또는 다수의 조직화된 파일들(예를 들어, 하나 이상의 모듈, 서브프로그램, 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 한 위치에 배치되거나 또는 다수의 위치에 걸쳐서 분산되고 통신 네트워크에 의해 접속된 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 문서에서 설명된 프로세스와 논리 흐름은 하나 이상의 프로그래머블 프로세서에 의해 수행될 수 있고, 이 프로그래머블 프로세서는 입력 데이터에 작용하여 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행한다. 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 전용 논리 회로가 프로세스와 논리 흐름을 수행하고 장치로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는, 예를 들어, 범용 및 전용 마이크로프로세서 및 임의 종류의 디지털 컴퓨터 중 하나 이상의 프로세서가 있다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 양자로부터 명령어들과 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령을 실행하는 프로세서 및 명령어와 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 수 있다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크), 광자기 디스크 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
본 특허문서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 임의 구현예의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로서도 이해되어서는 안 되며, 특정한 구현예들의 특정한 실시예에 고유할 수 있는 특징의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로서도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되기까지 하였지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 기술되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 기술되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (23)

  1. 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법으로서,
    상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계;
    하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨; 및
    최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는(refining) 단계를 포함하는 방법.
  2. 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법으로서,
    상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계;
    상기 현재 비디오 블록의 크기를 판단하는 단계;
    상기 현재 비디오 블록의 크기가 제1 크기 보다 작다는 판단에 따라, 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계, 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨; 및
    상기 현재 비디오 블록의 크기가 제1 크기 보다 작지 않다는 판단에 따라, 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계 - 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨 -; 그리고
    최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는 단계를 포함하는 방법.
  3. 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법으로서,
    상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계;
    상기 현재 비디오 블록의 크기를 판단하는 단계;
    상기 현재 비디오 블록의 크기가 제1 크기 보다 크다는 판단에 따라, 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계, 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨; 및
    상기 현재 비디오 블록의 크기가 제1 크기 보다 크지 않다는 판단에 따라, 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 블록의 매칭 코스트를 추정하는 단계, 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨; 그리고
    최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는 단계를 포함하는 방법.
  4. 비디오의 디지털 표현을 포함하는 비트 스트림을 디코딩하는 방법으로서,
    상기 비트 스트림으로부터 현재 비디오 블록에 대한 움직임 정보를 디코딩하는 단계;
    상기 현재 비디오 블록의 모양을 판단하는 단계;
    상기 현재 비디오 블록의 모양이 제1 모양이라는 판단에 따라, 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨;
    상기 현재 비디오 블록의 모양이 제2 모양이라는 판단에 따라, 하나 또는 그 이상의 템플릿 각각에서의 픽셀 위치의 부분 세트에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨; 및
    현재 비디오 블록의 모양이 제3 모양이라는 판단에 따라, 하나 또는 그 이상의 템플릿 각각에서의 모든 픽셀 위치들에 기반하여 상기 하나 또는 그 이상의 템플릿을 사용하여 상기 현재 비디오 블록의 매칭 코스트를 추정하는 단계, 여기서, 상기 하나 또는 그 이상의 템플릿 각각에는 다수의 샘플을 갖는 비디오 블록이 포함됨; 및
    최소 매칭 코스트를 가지는 템플릿을 사용하여 상기 현재 블록의 상기 움직임 정보를 조정하는 단계를 포함하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀 위치의 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 행들의 서브 세트를 포함하는 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀 위치의 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 N개 행의 모든 그룹으로부터의 모든 i번째 행을 포함하고, 여기서,
    N은 1보다 큰 정수이고,
    i는 1보다 크거나 같고 N보다 작거나 같은 정수인 것을 특징으로 하는 방법.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀 위치의 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 N개 행의 모든 그룹으로부터의 처음 i개의 행을 포함하고, 여기서,
    N은 1보다 큰 정수이고,
    i는 1보다 크거나 같고 N보다 작거나 같은 정수인 것을 특징으로 하는 방법.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀 위치의 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 N개 행의 모든 그룹으로부터의 i개 행의 서브 세트를 포함하고, 여기서,
    N은 1보다 큰 정수이고,
    i는 1보다 크거나 같고 N보다 작거나 같은 정수인 것을 특징으로 하는 방법.
  9. 제1항 내지 제4항 중 어느 한 항에 있어서, 다른 블록 내의 픽셀 위치의 다른 부분 세트에 기반하여 다른 블록을 생성하는 단계를 더 포함하는 방법.
  10. 제9항에 있어서, 상기 현재 비디오 블록과 상기 다른 블록은 같은 크기를 가지고, 상기 부분 세트와 상기 다른 부분 세트는 상이한 것을 특징으로 하는 방법.
  11. 제9항에 있어서, 상기 현재 비디오 블록과 상기 다른 블록은 다른 크기를 가지고, 상기 부분 세트와 상기 다른 부분 세트는 상이한 것을 특징으로 하는 방법.
  12. 제9항에 있어서, 상기 현재 비디오 블록과 상기 다른 블록은 다른 모양을 가지고, 상기 부분 세트와 상기 다른 부분 세트는 상이한 것을 특징으로 하는 방법.
  13. 제11항에 있어서, 상기 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 행들의 제1 서브 세트를 포함하고, 상기 다른 부분 세트는 상기 다른 블록의 행들의 제2 서브 세트를 포함하고, 여기서, 상기 제1 서브 세트는 상기 제2 서브 세트와 상이한 것을 특징으로 하는 방법.
  14. 제12항에 있어서, 상기 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 행들의 제1 서브 세트를 포함하고, 상기 다른 부분 세트는 상기 다른 블록의 행들의 제2 서브 세트를 포함하고, 여기서, 상기 제1 서브 세트는 상기 제2 서브 세트와 상이한 것을 특징으로 하는 방법.
  15. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀 위치의 부분 세트는 상기 현재 블록의 T개 열의 모든 그룹으로부터 모든 Y번째 열에서 시작하는 M개의 연속적인 열의 세트를 포함하고, 여기서, T > 0, 1 <= M <= T 및 1 <= Y <= T - M +1인 것을 특징으로 하는 방법.
  16. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀 위치의 부분 세트는 T개 열들의 모든 그룹으로부터의 처음 M개 열을 포함하고, 여기서, M 및 T는 정수인 것을 특징으로 하는 방법.
  17. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀 위치의 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 열들의 서브 세트를 포함하는 방법.
  18. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 열들의 제3 서브 세트를 포함하고, 상기 다른 부분 세트는 상기 다른 블록의 열들의 제4 서브 세트를 포함하고, 여기서, 상기 제3 서브 세트는 상기 제4 서브 세트와 상이한 것을 특징으로 하는 방법.
  19. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 부분 세트는 상기 하나 또는 그 이상의 템플릿 각각의 열들의 제3 서브 세트를 포함하고, 상기 다른 부분 세트는 상기 다른 블록의 열들의 제4 서브 세트를 포함하고, 상기 제3 서브 세트는 상기 제4 서브 세트와 상이한 것을 특징으로 하는 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 기재된 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 디코딩 장치.
  21. 제1항 내지 제19항 중 어느 한 항에 기재된 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 인코딩 장치.
  22. 프로세서에 의해 실행되면, 상기 프로세서가 제1항 내지 제19항 중 하나 또는 그 이상의 항에서 언급된 방법을 구현하도록 하는 컴퓨터 코드를 저장하는 컴퓨터 프로그램 제품.
  23. 본 문서에 설명된 방법, 장치 또는 시스템.
KR1020217000057A 2018-06-07 2019-06-06 부분 코스트 계산 KR102605638B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237039589A KR20230161539A (ko) 2018-06-07 2019-06-06 부분 코스트 계산

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862682150P 2018-06-07 2018-06-07
US62/682,150 2018-06-07
PCT/IB2019/054710 WO2019234672A1 (en) 2018-06-07 2019-06-06 Partial cost calculation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237039589A Division KR20230161539A (ko) 2018-06-07 2019-06-06 부분 코스트 계산

Publications (2)

Publication Number Publication Date
KR20210018896A true KR20210018896A (ko) 2021-02-18
KR102605638B1 KR102605638B1 (ko) 2023-11-22

Family

ID=67402974

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237039589A KR20230161539A (ko) 2018-06-07 2019-06-06 부분 코스트 계산
KR1020217000057A KR102605638B1 (ko) 2018-06-07 2019-06-06 부분 코스트 계산

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237039589A KR20230161539A (ko) 2018-06-07 2019-06-06 부분 코스트 계산

Country Status (8)

Country Link
US (3) US20200374543A1 (ko)
EP (2) EP3788788A1 (ko)
JP (2) JP7096373B2 (ko)
KR (2) KR20230161539A (ko)
CN (8) CN110582000B (ko)
GB (1) GB2589222B (ko)
TW (7) TWI736907B (ko)
WO (7) WO2019234672A1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7104186B2 (ja) 2018-06-05 2022-07-20 北京字節跳動網絡技術有限公司 Ibcとatmvpとの間でのインタラクション
WO2019234672A1 (en) 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partial cost calculation
CN110636298B (zh) 2018-06-21 2022-09-13 北京字节跳动网络技术有限公司 对于Merge仿射模式和非Merge仿射模式的统一约束
TWI729422B (zh) 2018-06-21 2021-06-01 大陸商北京字節跳動網絡技術有限公司 色彩分量間的子區塊移動向量繼承
CN112313956A (zh) * 2018-06-22 2021-02-02 索尼公司 图像处理装置和方法
KR102611261B1 (ko) 2018-06-29 2023-12-08 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 업데이트 대상 lut 또는 비업데이트 lut의 구별
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
CN110662057B (zh) 2018-06-29 2022-06-21 北京字节跳动网络技术有限公司 视频处理方法、装置、设备以及存储比特流的方法
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
KR20240005239A (ko) 2018-06-29 2024-01-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut와 amvp 사이의 상호작용
BR112020024142A2 (pt) 2018-06-29 2021-03-02 Beijing Bytedance Network Technology Co., Ltd. método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制
WO2020008350A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Luts with intra prediction modes and intra mode prediction from non-adjacent blocks
TW202025760A (zh) 2018-09-12 2020-07-01 大陸商北京字節跳動網絡技術有限公司 要檢查多少個hmvp候選
GB2591906B (en) 2018-09-24 2023-03-08 Beijing Bytedance Network Tech Co Ltd Bi-prediction with weights in video coding and decoding
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
WO2020084554A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Searching based motion candidate derivation for sub-block motion vector prediction
CN112997480B (zh) 2018-11-10 2023-08-22 北京字节跳动网络技术有限公司 成对平均候选计算中的取整
EP3857879A4 (en) 2018-11-12 2022-03-16 Beijing Bytedance Network Technology Co., Ltd. SIMPLIFICATION OF COMBINED INTER-INTRA PREDICTION
WO2020103870A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
JP7241870B2 (ja) 2018-11-20 2023-03-17 北京字節跳動網絡技術有限公司 部分的な位置に基づく差分計算
EP4325849A3 (en) 2018-11-22 2024-04-17 Beijing Bytedance Network Technology Co., Ltd. Coordination method for sub-block based inter prediction
CN111263152B (zh) 2018-11-30 2021-06-01 华为技术有限公司 视频序列的图像编解码方法和装置
WO2020143741A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Invoke of lut updating
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN113424525B (zh) * 2019-02-14 2023-11-10 北京字节跳动网络技术有限公司 解码器侧细化工具的尺寸选择性应用
US11190797B2 (en) * 2019-03-01 2021-11-30 Qualcomm Incorporated Constraints on decoder-side motion vector refinement based on weights for bi-predicted prediction
WO2020177756A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Size dependent inter coding
ES2957801T3 (es) * 2019-03-12 2024-01-25 Lg Electronics Inc Método y dispositivo de inter predicción basándose en DMVR y BDOF
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CN113647099B (zh) 2019-04-02 2022-10-04 北京字节跳动网络技术有限公司 解码器侧运动矢量推导
AU2020262284B2 (en) 2019-04-24 2023-09-21 Bytedance Inc. Constraints on quantized residual differential pulse code modulation representation of coded video
CN117857783A (zh) * 2019-05-01 2024-04-09 字节跳动有限公司 使用量化残差差分脉冲码调制编解码的帧内编解码视频
CN117615130A (zh) 2019-05-02 2024-02-27 字节跳动有限公司 基于编解码树结构类型的编解码模式
JP7481430B2 (ja) 2019-08-13 2024-05-10 北京字節跳動網絡技術有限公司 サブブロックに基づくインター予測における動き精度
US11736720B2 (en) * 2019-09-03 2023-08-22 Tencent America LLC Motion vector refinement methods for video encoding
WO2021052507A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Sub-picture coding and decoding of video
CN111050182B (zh) * 2019-12-27 2022-02-18 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置
CN113014925B (zh) * 2021-01-27 2022-08-23 重庆邮电大学 一种h.266/vvc帧间编码cu快速划分方法及存储介质
US11671616B2 (en) 2021-03-12 2023-06-06 Lemon Inc. Motion candidate derivation
US11936899B2 (en) * 2021-03-12 2024-03-19 Lemon Inc. Methods and systems for motion candidate derivation
CN117597923A (zh) * 2021-04-09 2024-02-23 交互数字Ce专利控股有限公司 用于视频编码和解码的利用模板匹配的帧内块复制
WO2022253318A1 (en) * 2021-06-04 2022-12-08 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
CN117616756A (zh) * 2021-06-04 2024-02-27 抖音视界有限公司 用于视频处理的方法、设备和介质
WO2023284695A1 (en) * 2021-07-14 2023-01-19 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
CN117837145A (zh) * 2021-08-19 2024-04-05 联发科技(新加坡)私人有限公司 使用模板匹配细化候选选择
WO2023088472A1 (en) * 2021-11-22 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2023088473A1 (en) * 2021-11-22 2023-05-25 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2023202569A1 (en) * 2022-04-19 2023-10-26 Mediatek Inc. Extended template matching for video coding
US20240137552A1 (en) * 2022-10-10 2024-04-25 Tencent America LLC Method and apparatus for extended decoder side motion vector refinement

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110103482A1 (en) * 2009-11-02 2011-05-05 Chung-Ang University Industry-Academy Cooperation Foundation Fast motion estimation apparatus and method based on adaptive search range and partial matching error
KR20160132863A (ko) * 2014-03-17 2016-11-21 퀄컴 인코포레이티드 비-자연스러운 비디오 데이터의 모션 추정을 위한 방법
US20180098079A1 (en) * 2016-10-05 2018-04-05 Qualcomm Incorporated Systems and methods of adaptively determining template size for illumination compensation

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5661524A (en) * 1996-03-08 1997-08-26 International Business Machines Corporation Method and apparatus for motion estimation using trajectory in a digital video encoder
US5987180A (en) * 1997-09-26 1999-11-16 Sarnoff Corporation Multiple component compression encoder motion search method and apparatus
US6876703B2 (en) * 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7720151B2 (en) * 2003-02-11 2010-05-18 Texas Instruments Incorporated Motion estimation using early decision for goodness of estimation with quick convergence feedback
US7145950B2 (en) * 2003-07-14 2006-12-05 Primax Electronics Ltd. Method of motion vector determination in digital video compression
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
GB0500174D0 (en) * 2005-01-06 2005-02-16 Kokaram Anil Method for estimating motion and occlusion
EP1835749A1 (en) 2006-03-16 2007-09-19 THOMSON Licensing Method for coding video data of a sequence of pictures
WO2007124491A2 (en) * 2006-04-21 2007-11-01 Dilithium Networks Pty Ltd. Method and system for video encoding and transcoding
US8428118B2 (en) * 2006-08-17 2013-04-23 Ittiam Systems (P) Ltd. Technique for transcoding MPEG-2/MPEG-4 bitstream to H.264 bitstream
US8553758B2 (en) * 2007-03-02 2013-10-08 Sony Corporation Motion parameter engine for true motion
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
US9225996B2 (en) * 2007-12-19 2015-12-29 Vixs Systems, Inc. Motion refinement engine with flexible direction processing and methods for use therewith
US8228990B2 (en) * 2008-01-16 2012-07-24 Sony Corporation Template matching scheme using multiple predictors as candidates for intra-prediction
JP2011515060A (ja) * 2008-03-09 2011-05-12 エルジー エレクトロニクス インコーポレイティド ビデオ信号のエンコーディングまたはデコーディング方法及び装置
US8520731B2 (en) * 2009-06-05 2013-08-27 Cisco Technology, Inc. Motion estimation for noisy frames based on block matching of filtered blocks
US8638395B2 (en) * 2009-06-05 2014-01-28 Cisco Technology, Inc. Consolidating prior temporally-matched frames in 3D-based video denoising
JP2013502150A (ja) * 2009-08-12 2013-01-17 トムソン ライセンシング 改善されたイントラ・クロマ符号化および復号のための方法および装置
TWI566586B (zh) * 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
US20110176611A1 (en) 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
KR20120112724A (ko) * 2010-02-09 2012-10-11 니폰덴신뎅와 가부시키가이샤 움직임 벡터 예측 부호화 방법, 움직임 벡터 예측 복호 방법, 동화상 부호화 장치, 동화상 복호 장치 및 그들의 프로그램
US8976873B2 (en) * 2010-11-24 2015-03-10 Stmicroelectronics S.R.L. Apparatus and method for performing error concealment of inter-coded video frames
US9380314B2 (en) * 2010-12-20 2016-06-28 Texas Instruments Incorporated Pixel retrieval for frame reconstruction
JP5721851B2 (ja) * 2010-12-21 2015-05-20 インテル・コーポレーション Dmvd処理のシステムおよび方法の改善
US8755437B2 (en) * 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
CN102710934B (zh) * 2011-01-22 2015-05-06 华为技术有限公司 一种运动预测或补偿方法
US9762927B2 (en) * 2013-09-26 2017-09-12 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
US10531116B2 (en) * 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
EP3139605A4 (en) * 2014-04-28 2017-05-17 Panasonic Intellectual Property Corporation of America Encoding method, decoding method, encoding apparatus, and decoding apparatus
CN104780383B (zh) * 2015-02-02 2017-09-19 杭州电子科技大学 一种3d‑hevc多分辨率视频编码方法
US10958927B2 (en) * 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
EP3314894B1 (en) * 2015-06-25 2024-03-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Refinement of a low-pel resolution motion estimation vector
MY197611A (en) * 2015-09-25 2023-06-28 Huawei Tech Co Ltd Apparatus and method for video motion compensation
KR102480191B1 (ko) * 2016-05-13 2022-12-21 브이아이디 스케일, 인크. 비디오 코딩을 위한 일반화된 다중-가설 예측 시스템 및 방법
US10602191B2 (en) * 2016-05-13 2020-03-24 Gopro, Inc. Apparatus and methods for video compression
WO2017205701A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Weighted angular prediction for intra coding
US10944963B2 (en) 2016-05-25 2021-03-09 Arris Enterprises Llc Coding weighted angular prediction for intra coding
EP3264768A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with adaptive motion information refinement
US11638027B2 (en) 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
US10750203B2 (en) 2016-12-22 2020-08-18 Mediatek Inc. Method and apparatus of adaptive bi-prediction for video coding
EP3560202A4 (en) 2016-12-27 2020-07-29 MediaTek Inc. METHOD AND DEVICE FOR BILATERAL TEMPLATE MV REFINING FOR VIDEO CODING
EP3343925A1 (en) * 2017-01-03 2018-07-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10701366B2 (en) 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10523964B2 (en) * 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
WO2019001741A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
EP3451664A1 (en) * 2017-09-01 2019-03-06 Thomson Licensing Motion compensation at a finer precision than motion vector differential
CN107483960B (zh) * 2017-09-15 2020-06-02 信阳师范学院 一种基于空间预测的运动补偿帧率上转换方法
US10785494B2 (en) * 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
US11750832B2 (en) 2017-11-02 2023-09-05 Hfi Innovation Inc. Method and apparatus for video coding
WO2019107916A1 (ko) 2017-11-30 2019-06-06 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
US11575925B2 (en) * 2018-03-30 2023-02-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored
US10469869B1 (en) * 2018-06-01 2019-11-05 Tencent America LLC Method and apparatus for video coding
WO2019234672A1 (en) 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partial cost calculation
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110103482A1 (en) * 2009-11-02 2011-05-05 Chung-Ang University Industry-Academy Cooperation Foundation Fast motion estimation apparatus and method based on adaptive search range and partial matching error
KR20160132863A (ko) * 2014-03-17 2016-11-21 퀄컴 인코포레이티드 비-자연스러운 비디오 데이터의 모션 추정을 위한 방법
US20180098079A1 (en) * 2016-10-05 2018-04-05 Qualcomm Incorporated Systems and methods of adaptively determining template size for illumination compensation

Also Published As

Publication number Publication date
TW202019180A (zh) 2020-05-16
US20200374544A1 (en) 2020-11-26
TW202002652A (zh) 2020-01-01
CN110581994A (zh) 2019-12-17
US20220030265A1 (en) 2022-01-27
CN110581997A (zh) 2019-12-17
CN110581999A (zh) 2019-12-17
TW202002637A (zh) 2020-01-01
CN110581998B (zh) 2023-04-14
GB2589222A (en) 2021-05-26
KR102605638B1 (ko) 2023-11-22
CN110581996B (zh) 2022-03-25
CN110581999B (zh) 2022-03-25
EP3788788A1 (en) 2021-03-10
KR20230161539A (ko) 2023-11-27
TW202013966A (zh) 2020-04-01
TWI727338B (zh) 2021-05-11
CN114827626A (zh) 2022-07-29
JP7417670B2 (ja) 2024-01-18
CN110581998A (zh) 2019-12-17
TWI711299B (zh) 2020-11-21
TWI736905B (zh) 2021-08-21
TWI707579B (zh) 2020-10-11
TWI736906B (zh) 2021-08-21
CN110581992A (zh) 2019-12-17
GB2589222B (en) 2023-01-25
EP4351140A1 (en) 2024-04-10
TW202013967A (zh) 2020-04-01
US20200374543A1 (en) 2020-11-26
CN110581992B (zh) 2022-06-14
JP2022123085A (ja) 2022-08-23
WO2019234673A1 (en) 2019-12-12
WO2019234676A1 (en) 2019-12-12
TW202013979A (zh) 2020-04-01
WO2019234669A1 (en) 2019-12-12
CN110582000B (zh) 2022-03-25
WO2019234674A1 (en) 2019-12-12
WO2019234671A1 (en) 2019-12-12
CN110581997B (zh) 2021-10-12
CN110582000A (zh) 2019-12-17
TW202005383A (zh) 2020-01-16
US11159816B2 (en) 2021-10-26
TWI718555B (zh) 2021-02-11
GB202018865D0 (en) 2021-01-13
CN110581994B (zh) 2022-07-19
TWI736907B (zh) 2021-08-21
WO2019234668A1 (en) 2019-12-12
WO2019234672A1 (en) 2019-12-12
CN110581996A (zh) 2019-12-17
JP7096373B2 (ja) 2022-07-05
JP2021528896A (ja) 2021-10-21

Similar Documents

Publication Publication Date Title
KR102605638B1 (ko) 부분 코스트 계산
KR102662449B1 (ko) 디코더 측 정제 툴들의 크기 선택 적용
CN113796084A (zh) 运动矢量和预测样点细化
WO2020182187A1 (en) Adaptive weight in multi-hypothesis prediction in video coding

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant