KR20240056576A - 템플릿 매칭에 기초한 비디오 인코딩 및 디코딩을 위한 크로마 예측 - Google Patents

템플릿 매칭에 기초한 비디오 인코딩 및 디코딩을 위한 크로마 예측 Download PDF

Info

Publication number
KR20240056576A
KR20240056576A KR1020247011475A KR20247011475A KR20240056576A KR 20240056576 A KR20240056576 A KR 20240056576A KR 1020247011475 A KR1020247011475 A KR 1020247011475A KR 20247011475 A KR20247011475 A KR 20247011475A KR 20240056576 A KR20240056576 A KR 20240056576A
Authority
KR
South Korea
Prior art keywords
block
chroma
luma
prediction
template
Prior art date
Application number
KR1020247011475A
Other languages
English (en)
Inventor
카람 나세르
사우라브 푸리
탕이 포이리에
게일 마틴-코셔
앙투안 로버트
티에리 뒤마스
프랑크 갈핀
Original Assignee
인터디지털 씨이 페이튼트 홀딩스, 에스에이에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지털 씨이 페이튼트 홀딩스, 에스에이에스 filed Critical 인터디지털 씨이 페이튼트 홀딩스, 에스에이에스
Publication of KR20240056576A publication Critical patent/KR20240056576A/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/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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes

Landscapes

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

Abstract

비디오 정보를 처리하기 위한 방법 및 장치는 선택된 블록의 샘플들에 기초하여 현재 블록에 대한 크로마 성분 예측을 결정하는 것을 포함하며, 그 선택된 블록은 현재 블록과 연관된 템플릿과 디코딩된 픽처 정보의 영역 내의 적어도 하나의 다른 블록과 연관된 적어도 하나의 다른 템플릿의 비교를 포함하는 템플릿 매칭 프로세스에 기초하여 디코딩된 픽처 정보의 영역에서 선택된다.

Description

템플릿 매칭에 기초한 비디오 인코딩 및 디코딩을 위한 크로마 예측
본 개시는 비디오 압축의 분야이며, 적어도 하나의 실시예는 보다 구체적으로 템플릿 매칭에 기초한 크로마 성분의 예측과 관련된다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 일반적으로 예측을 채용하고, 비디오 콘텐츠에서 공간적 및 시간적 중복성(redundancy)을 이용하도록 변환한다. 일반적으로, 인트라 또는 인터 예측은 인트라 또는 인터 프레임 상관관계를 이용하는 데 사용되고, 이어서, 종종 예측 에러들 또는 예측 잔차들로 표시되는, 오리지널 픽처 블록과 예측 픽처 블록 사이의 차이들은 변환되고, 양자화되고, 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축 데이터는 엔트로피 코딩, 양자화, 변환, 및 예측에 대응하는 역 프로세스들에 의해 디코딩된다.
일반적으로, 실시예의 적어도 하나의 예는 이미지의 루마 및 크로마 성분들에 대한 템플릿 매칭 예측을 이용하는 인트라 예측 처리 모드를 제공하는 것을 포함하는 비디오 인코딩 또는 디코딩을 위한 방법 또는 장치를 포함한다.
제1 태양은, 방법으로서, 루마 블록 및 적어도 하나의 크로마 블록을 포함하는 픽처 정보의 현재 블록에 대해, 현재 블록과 연관된 템플릿과 디코딩된 픽처 정보의 영역 내의 적어도 하나의 다른 블록과 연관된 적어도 하나의 다른 템플릿의 비교를 포함하는 템플릿 매칭 프로세스에 기초하여 부분적으로 디코딩된 픽처 정보의 영역에서 블록을 선택하는 단계, 및 선택된 블록의 샘플들에 기초하여 현재 블록의 적어도 하나의 크로마 성분에 대한 예측을 결정하는 단계를 포함하는, 방법에 관한 것이다.
제2 태양은 적어도 하나의 프로세서를 포함하는 장치로서, 적어도 하나의 프로세서는, 루마 블록 및 적어도 하나의 크로마 블록을 포함하는 픽처 정보의 현재 블록에 대해, 현재 블록과 연관된 템플릿과 디코딩된 픽처 정보의 영역 내의 적어도 하나의 다른 블록과 연관된 적어도 하나의 다른 템플릿의 비교를 포함하는 템플릿 매칭 프로세스에 기초하여 부분적으로 디코딩된 픽처 정보의 영역에서 블록을 선택하고, 선택된 블록의 샘플들에 기초하여 현재 블록의 적어도 하나의 크로마 성분에 대한 예측을 결정하도록 구성되는, 장치에 관한 것이다.
제1 및 제2 실시예의 변형 실시예에서, 템플릿 매칭 프로세스는 부분적으로 디코딩된 루마 픽처 정보에서, 부분적으로 디코딩된 Cb 크로마 픽처 정보에서, 또는 부분적으로 디코딩된 Cr 크로마 픽처 정보에서 각각 루마, Cb 크로마 및 Cr 크로마 성분들에 독립적으로 적용된다. 제1 및 제2 실시예의 변형 실시예에서, 템플릿 매칭 프로세스는 루마 성분들에 대해서만 적용되며, 선택된 루마 블록과 현재 루마 블록 사이의 거리에 기초하여 변위 벡터를 결정하는 것, 변위 벡터에 기초하여 디코딩된 Cb 크로마 픽처 정보의 영역에서 Cb 크로마 블록을 선택하는 것, 변위 벡터에 기초하여 디코딩된 Cr 크로마 픽처 정보의 영역에서 Cr 크로마 블록을 선택하는 것, 및 선택된 루마, Cb 크로마 및 Cr 크로마 블록들의 샘플들에 기초하여 현재 블록에 대한 예측 블록을 결정하는 것을 추가로 포함한다.
제1 및 제2 실시예의 변형 실시예에서, 템플릿 매칭 프로세스는 루마 성분들에 대해서만 적용되며, 선택된 루마 블록과 현재 루마 블록 사이의 거리에 기초하여 변위 벡터를 결정하는 것, 변위 벡터에 기초하여 디코딩된 Cb 및 Cr 크로마 픽처 정보에서 각각 Cb 및 Cr 크로마 정제 영역들을 결정하는 것, Cb 크로마 정제 영역에서 템플릿 매칭 프로세스를 적용함으로써 Cb 크로마 블록을 선택하는 것, Cr 크로마 정제 영역에서 템플릿 매칭 예측을 적용함으로써 Cr 크로마 블록을 선택하는 것, 선택된 루마, Cb 크로마 및 Cr 크로마 블록들의 샘플들에 기초하여 현재 블록에 대한 예측 블록을 결정하는 것을 추가로 포함한다.
제1 및 제2 실시예의 변형 실시예는 예측 블록에 기초하여 현재 블록을 디코딩하는 것 또는 예측 블록에 기초하여 현재 블록을 인코딩하는 것을 추가로 포함하며, 인코딩은 현재 루마 블록에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 제1 정보, 및 현재 크로마 블록들에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 제2 정보를 포함한다.
제3 태양은 제2 태양과 관련된 설명된 실시예들 또는 변형들 중 임의의 것에 따라 생성된 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독가능 매체에 관한 것이다.
제4 태양은 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체로서, 명령어들은, 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 제1 태양과 관련된 설명된 실시예들 또는 변형들 중 임의의 것을 수행하게 하는, 비일시적 컴퓨터 판독가능 매체에 관한 것이다.
제5 태양은 명령어들을 포함하는 컴퓨터 프로그램 제품으로서, 명령어들은, 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 제1 태양과 관련된 설명된 실시예들 또는 변형들 중 임의의 것을 수행하게 하는, 컴퓨터 프로그램 제품에 관한 것이다.
상기는 본 개시의 일부 태양들에 대한 기본적인 이해를 제공하기 위해 본 발명 주제의 단순화된 요약을 제시한다. 이러한 요약은 본 주제의 포괄적인 개요가 아니다. 이는 실시예들의 핵심/중요한 요소들을 식별하거나 주제의 범위를 기술하는 것으로 의도되지 않는다. 그것의 유일한 목적은, 하기에 제공되는 더 상세한 설명에 대한 서두로서 단순화된 형태로 주제의 일부 개념들을 제시하는 것이다.
본 개시는 첨부 도면들과 함께 하기의 상세한 설명을 고려함으로써 더 잘 이해될 수 있다.
도 1은 실시예에 따른 비디오 인코더의 블록도를 예시한다.
도 2는 실시예에 따른 비디오 디코더의 블록도를 예시한다.
도 3은 다양한 태양들 및 실시예들이 구현되는 시스템의 예의 블록도를 예시한다.
도 4a는 루마 성분에 대한 템플릿 매칭 예측의 원리를 예시한다.
도 4b는 인트라 블록 복사를 사용하는 인트라 예측의 원리를 예시한다.
도 4c는 현재 블록에 대한 인트라 블록 복사에 대한 허용된 검색 범위를 예시한다.
도 5a 및 도 5b는 적어도 하나의 실시예에 따른 크로마 성분에 대한 템플릿 매칭 예측의 원리를 예시한다.
도 6a는 적어도 하나의 실시예에 따른 크로마 템플릿 매칭 예측을 사용하는 인코딩 프로세스의 예의 흐름도를 예시한다. 도 6b는 적어도 하나의 실시예에 따른 크로마 템플릿 매칭 예측을 사용하는 디코딩 프로세스의 예의 흐름도를 예시한다.
도 7a, 도 7b 및 도 7c는 적어도 하나의 실시예에 따른 크로마 예측을 위해 루마 템플릿 매칭 예측의 결과를 활용하는 원리를 예시한다.
도 8a는 적어도 하나의 실시예에 따른 크로마 예측을 위해 루마 템플릿 매칭 예측의 결과를 활용하는 인코딩 프로세스의 예의 흐름도를 예시한다. 도 8b는 적어도 하나의 실시예에 따른 크로마 예측을 위해 루마 템플릿 매칭 예측의 결과를 활용하는 디코딩 프로세스의 예의 흐름도를 예시한다.
도 9a, 도 9b 및 도 9c는 적어도 하나의 실시예에 따른 루마 템플릿 매칭 예측의 결과에 기초하는 정제된 영역에서의 크로마 템플릿 매칭 예측의 원리를 예시한다.
도 10a는 적어도 하나의 실시예에 따른 루마 템플릿 매칭 예측의 결과에 기초하는 정제된 영역에서의 크로마 템플릿 매칭 예측을 사용하는 인코딩의 예의 흐름도를 예시한다. 도 10b는 적어도 하나의 실시예에 따른 루마 템플릿 매칭 예측의 결과에 기초하는 정제된 영역에서의 크로마 템플릿 매칭 예측을 사용하는 디코딩의 예의 흐름도를 예시한다.
도 11은 적어도 하나의 실시예에 따른 템플릿 매칭 예측의 신택스 시그널링의 예의 표를 예시한다.
도 12는 적어도 하나의 실시예에 따른 루마 및 크로마 템플릿 매칭 예측의 신택스 시그널링의 예의 표를 예시한다.
도 13은 적어도 하나의 실시예에 따른 루마 및 크로마 템플릿 매칭 예측의 신택스 시그널링의 제2 예의 표를 예시한다.
도면은 본 개시에 따른 다양한 태양들, 특징들 및 실시예들의 예들을 예시하기 위한 목적을 위한 것이고 반드시 유일한 가능한 구성들인 것은 아님을 이해하여야 한다. 다양한 도면들 전체에 걸쳐, 유사한 참조 지시자들은 동일한 또는 유사한 특징부들을 지시한다.
이하에서 보다 상세하게 설명될 바와 같이, 비디오 코덱은 선택된 블록의 샘플에 기초하여 현재 블록에 대한 예측 블록을 결정하는 것을 포함할 수 있으며, 그 선택된 블록은 현재 블록과 연관된 템플릿과 디코딩된 픽처 정보의 영역 내의 적어도 하나의 다른 블록과 연관된 적어도 하나의 다른 템플릿의 비교를 포함하는 템플릿 매칭 프로세스에 기초하여 디코딩된 픽처 정보의 영역에서 선택된다. 이러한 원리에 기초하는 인코딩 방법, 디코딩 방법, 인코딩 장치, 디코딩 장치가 설명된다.
또한, 본 태양들은 VVC(Versatile Video Coding)의 특정 초안에 또는 HEVC(High Efficiency Video Coding) 사양에 관련된 원칙을 설명하지만, VVC 또는 HEVC로 제한되지 않으며, 예를 들어, 기존에 존재하든 향후 개발되든, 다른 표준들 및 권고들, 및 임의의 그러한 표준들 및 권고들(VVC 및 HEVC를 포함함)의 확장들에 적용될 수 있다. 달리 나타내지 않거나, 또는 기술적으로 배제되지 않는 한, 본 출원에 기술되는 태양들은 개별적으로 또는 조합하여 사용될 수 있다.
도 1은 실시예에 따른 비디오 인코더의 블록도를 예시한다. 이러한 인코더(100)의 변형들이 고려되지만, 인코더(100)는 모든 예상되는 변형들을 기술함이 없이 명료함을 위해 후술된다. 인코딩되기 전에, 비디오 시퀀스는, 예를 들어, 입력 컬러 픽처에 컬러 변환을 적용하거나(예컨대, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환), 또는 (예를 들어, 컬러 컴포넌트들 중 하나의 컴포넌트의 히스토그램 등화를 사용하여) 압축에 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 컴포넌트들의 재매핑을 수행하는, 프리-인코딩 처리(101)를 거칠 수 있다. 메타데이터는 전처리와 연관될 수 있고, 비트스트림에 부착될 수 있다.
인코더(100)에서, 픽처는 후술되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는, 예를 들어, CU들의 유닛들로 파티셔닝되고(102) 처리된다. 각각의 유닛은, 예를 들어 인트라 또는 인터 모드를 사용하여 인코딩된다. 유닛이 인트라 모드에서 인코딩될 때, 그것은 인트라 예측(160)을 수행한다. 인터 모드에서, 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 유닛을 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고(105), 예를 들어, 예측 모드 플래그에 의해 인트라/인터 결정을 나타낸다. 예측 잔차들은, 예를 들어, 오리지널 이미지 블록에서 예측된 블록을 감산(110)함으로써 계산된다.
이어서, 예측 잔차들은 변환되고(125) 양자화된다(130). 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들은 엔트로피 코딩되어(145) 비트스트림을 출력한다. 인코더는 변환을 스킵할 수 있고, 비변환된 잔차 신호에 직접 양자화를 적용할 수 있다. 인코더는 변환 및 양자화 둘 모두를 스킵할 수 있는데, 즉 잔차는 변환 또는 양자화 프로세스들의 적용 없이 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 기준을 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 탈양자화(de-quantize)되고(140) 역변환된다(150). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(155) 이미지 블록이 재구성된다. 인루프 필터들(165)이, 예를 들어, 인코딩 아티팩트들을 감소시키기 위해 디블록킹/SAO(Sample Adaptive Offset), ALF(Adaptive Loop-Filter) 필터링을 수행하도록 재구성된 픽처에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(180)에 저장된다.
도 2는 실시예에 따른 비디오 디코더의 블록도를 예시한다. 디코더(200)에서, 비트스트림은 후술되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 일반적으로 인코딩 패스에 상반되는 디코딩 패스를 수행한다. 인코더(100)는 또한 일반적으로, 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행한다. 특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 먼저, 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위해 엔트로피 디코딩된다(230). 픽처 파티션 정보는 픽처가 어떻게 파티셔닝되는지를 나타낸다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라 픽처를 분할할 수 있다(235). 변환 계수들은 예측 잔차들을 디코딩하기 위해 탈양자화되고(240) 역변환된다(250). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(255) 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260) 또는 모션 보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). 재구성된 이미지에 인루프 필터들(265)이 적용된다. 필터링된 이미지는 기준 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 포스트-디코딩 처리(285), 예를 들어, 프리-인코딩 처리(101)에서 수행된 리매핑 프로세스의 역을 수행하는 역 리매핑 또는 역 컬러 변환(예를 들어, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환)을 추가로 거칠 수 있다. 포스트-디코딩 처리는, 프리-인코딩 처리에서 도출되고 비트스트림에서 시그널링된 메타데이터를 사용할 수 있다.
도 3은 다양한 태양들 및 실시예들이 구현되는 시스템의 예의 블록도를 예시한다. 시스템(1000)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있으며, 본 문서에 기술된 태양들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 다양한 전자 디바이스들, 예컨대 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱 박스, 디지털 텔레비전 수신기, 개인용 비디오 녹화 시스템, 커넥티드 가전, 및 서버를 포함하지만, 이들로 제한되지 않는다. 시스템(1000)의 요소들은 단일 집적 회로(IC), 다수의 IC들, 및/또는 이산 컴포넌트들에서, 단독으로 또는 조합되어 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(1000)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 이산 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(1000)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 하나 이상의 다른 시스템들, 또는 다른 전자 디바이스들에 통신가능하게 결합된다. 다양한 실시예들에서, 시스템(1000)은 본 문서에 기술된 태양들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은, 예를 들어, 본 문서에 기술된 다양한 태양들을 구현하기 위해 그 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서, DSP 코어와 연관된 하나 이상의 마이크로프로세서, 컨트롤러, 마이크로컨트롤러, 주문형 집적회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 회로, 임의의 다른 타입의 집적 회로(IC), 상태 기계 등일 수 있다. 프로세서(1010)는 내장된 메모리, 입력 출력 인터페이스, 및 당업계에 알려진 바와 같은 다양한 다른 회로부들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예컨대, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은, 전기적으로 소거가능한 프로그래밍가능 판독-전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM), 판독-전용 메모리(Read-Only Memory, ROM), 프로그래밍가능 판독-전용 메모리(Programmable Read-Only Memory, PROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM), 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스(분리가능한 저장 디바이스 및 분리가능하지 않은 저장 디바이스를 포함함), 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다.
시스템(1000)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(1030)을 포함하고, 인코더/디코더 모듈(1030)은 그 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(1030)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(1030)은 시스템(1000)의 별개의 요소로서 구현될 수 있거나, 또는 당업자에게 알려진 바와 같은 하드웨어와 소프트웨어의 조합으로서 프로세서(1010) 내에 통합될 수 있다.
본 문서에 기술된 다양한 태양들을 수행하기 위해 프로세서(1010) 또는 인코더/디코더(1030)에 로딩될 프로그램 코드는 저장 디바이스(1040)에 저장될 수 있고, 후속적으로 프로세서(1010)에 의한 실행을 위해 메모리(1020)에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(1010), 메모리(1020), 저장 디바이스(1040), 및 인코더/디코더 모듈(1030) 중 하나 이상은 본 문서에 기술된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 이러한 저장된 항목들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 일부들, 비트스트림, 행렬들, 변수들, 및 식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이들로 제한되지 않는다.
몇몇 실시예들에서, 프로세서(1010) 및/또는 인코더/디코더 모듈(1030) 내부의 메모리는 명령어들을 저장하기 위해 그리고 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(1010) 또는 인코더/디코더 모듈(1030) 중 어느 하나일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상에 사용된다. 외부 메모리는 메모리(1020) 및/또는 저장 디바이스(1040), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 몇몇 실시예들에서, 외부 비휘발성 플래시 메모리는 예를 들어, 텔레비전의 운영 체제를 저장하는 데 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리는, MPEG-2(MPEG는 Moving Picture Experts Group을 지칭하고, MPEG-2는 또한 ISO/IEC 13818로도 지칭되고, 13818-1은 또한 H.222로도 알려져 있고, 13818-2는 또한 H.262로도 알려져 있음), HEVC(HEVC는 High Efficiency Video Coding을 지칭하고, H.265 및 MPEG-H Part 2로도 알려져 있음), 또는 VVC(Versatile Video Coding, JVET(Joint Video Experts Team)에서 개발 중인 새로운 표준)에 대한 것과 같은, 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.
시스템(1000)의 요소들에 대한 입력은 블록(1130)에 표시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은, (i) 예를 들어, 브로드캐스터(broadcaster)에 의해 무선으로(over the air) 송신된 무선 주파수(radio frequency, RF) 신호를 수신하는 RF 부분, (ii) 컴포넌트(COMP) 입력 단자(또는 COMP 입력 단자들의 세트), (iii) 범용 직렬 버스(Universal Serial Bus, USB) 입력 단자, 및/또는 (iv) 고화질 멀티미디어 인터페이스(HDMI) 입력 단자를 포함하지만, 이들로 제한되지 않는다. 도 3에 도시되지 않은 다른 예들은 복합 비디오(composite video)를 포함한다.
다양한 실시예들에서, 블록(1130)의 입력 디바이스들은 당업계에 알려진 바와 같은 연관된 각자의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은, (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 또는 신호를 주파수들의 대역으로 대역 제한하는 것으로도 지칭됨), (ii) 선택된 신호를 하향변환(downconvert)하는 것, (iii) (예를 들어) 소정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역-제한하는 것, (iv) 하향변환되고 대역-제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 것에 적합한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향 변환기들, 복조기들, 에러 정정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 기저대역 인근 주파수)로 또는 기저대역으로 하향 변환하는 것을 포함한, 다양한 이들 기능을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그의 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 원하는 주파수 대역에 대해 필터링, 하향 변환, 및 다시 필터링함으로써 주파수 선택을 수행한다. 다양한 실시예들은 전술한(그리고 다른) 요소들의 순서를 재배열하고, 이들 요소들 중 일부를 제거하고/하거나 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은, 예를 들어, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것과 같이, 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 시스템(1000)을 USB 및/또는 HDMI 접속부들을 통해 다른 전자 디바이스들에 접속하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 태양들, 예를 들어, 리드 솔로몬(Reed-Solomon) 에러 정정은 필요에 따라, 예를 들어, 별개의 입력 처리 IC 내에서 또는 프로세서(1010) 내에서 구현될 수 있다는 것이 이해되어야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 태양들은 필요에 따라, 별개의 인터페이스 IC들 내에서 또는 프로세서(1010) 내에서 구현될 수 있다. 복조, 에러 정정, 및 역다중화된 스트림은, 예를 들어, 출력 디바이스 상에서의 프레젠테이션을 위해 필요에 따라 데이터스트림을 처리하도록 메모리 및 저장 요소들과 조합하여 동작하는 프로세서(1010), 및 인코더/디코더(1030)를 포함한 다양한 처리 요소들에 제공된다.
시스템(1000)의 다양한 요소들이 통합된 하우징 내에 제공될 수 있으며, 통합된 하우징 내에서, 다양한 요소들은 적합한 접속 배열체(1140), 예를 들어, 인터-IC(I2C) 버스, 배선, 및 인쇄 회로 기판을 포함하는, 당업계에 알려진 바와 같은 내부 버스를 사용하여 상호접속되고 그들 사이에서 데이터를 전송할 수 있다.
시스템(1000)은 통신 채널(1060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(1050)를 포함한다. 통신 인터페이스(1050)는 통신 채널(1060)을 통해 데이터를 송신하도록 그리고 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(1050)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 제한되지 않으며, 통신 채널(1060)은, 예를 들어, 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는, 다양한 실시예들에서, Wi-Fi 네트워크, 예를 들어 IEEE 802.11(IEEE는 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers)를 지칭함)과 같은 무선 네트워크를 사용하여, 시스템(1000)에 스트리밍되거나 또는 달리 제공된다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 대해 적응된 통신 채널(1060) 및 통신 인터페이스(1050)를 통해 수신된다. 이러한 실시예들의 통신 채널(1060)은 전형적으로, 스트리밍 애플리케이션들 및 다른 오버더톱(over-the-top) 통신들을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 접속된다. 다른 실시예들은 입력 블록(1130)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 또 다른 실시예들은 입력 블록(1130)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 전술한 바와 같이, 다양한 실시예들은 비-스트리밍 방식으로 데이터를 제공한다. 또한, 다양한 실시예들은 Wi-Fi 이외의 무선 네트워크들, 예를 들어 셀룰러 네트워크 또는 블루투스 네트워크를 사용한다.
시스템(1000)은 디스플레이(1100), 스피커들(1110), 및 다른 주변 디바이스들(1120)을 포함한 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다양한 실시예의 디스플레이(1100)는, 예를 들어, 터치스크린 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 곡면 디스플레이, 및/또는 폴더블(foldable) 디스플레이 중 하나 이상을 포함한다. 디스플레이(1100)는 텔레비전, 태블릿, 랩톱, 휴대폰(모바일폰), 또는 다른 디바이스들을 위한 것일 수 있다. 디스플레이(1100)는 또한 (예를 들어, 스마트폰에서와 같이) 다른 컴포넌트들과 통합될 수 있거나, 또는 별개일 수 있다(예를 들어, 랩톱을 위한 외부 모니터). 실시예들의 다양한 예들에서, 다른 주변 디바이스들(1120)은 독립형 디지털 비디오 디스크(또는 디지털 다기능 디스크)(두 용어들 모두에 대해, DVR), 디스크 플레이어, 스테레오 시스템 및/또는 조명 시스템 중 하나 이상을 포함한다. 다양한 실시예들은 시스템(1000)의 출력에 기초하여 기능을 제공하는 하나 이상의 주변 디바이스들(1120)을 사용한다. 예를 들어, 디스크 플레이어는 시스템(1000)의 출력을 재생하는 기능을 수행한다.
다양한 실시예들에서, 제어 신호들은, 시그널링, 예컨대, AV.Link, CEC(Consumer Electronics Control), 또는 사용자 개입이 있거나 또는 개입 없이 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜들을 사용하여 시스템(1000)과 디스플레이(1100), 스피커들(1110), 또는 다른 주변 디바이스들(1120) 사이에서 통신된다. 출력 디바이스들은 각자의 인터페이스들(1070, 1080, 1090)을 통해 전용 접속부들을 거쳐 시스템(1000)에 통신가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(1050)를 통해 통신 채널(1060)을 사용하여 시스템(1000)에 접속될 수 있다. 디스플레이(1100) 및 스피커(1110)는, 예를 들어, 텔레비전과 같은 전자 디바이스에서 시스템(1000)의 다른 컴포넌트와 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(1070)는, 예를 들어, 타이밍 컨트롤러(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(1100) 및 스피커(1110)는 대안적으로, 예를 들어, 입력(1130)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상과 별개일 수 있다. 디스플레이(1100) 및 스피커들(1110)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함한 전용 출력 접속부들을 통해 제공될 수 있다.
실시예들은 프로세서(1010)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(1020)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 광학 메모리 디바이스, 자기 메모리 디바이스, 반도체 기반 메모리 디바이스, 고정 메모리, 및 착탈식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(1010)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티-코어 아키텍처에 기반한 프로세서들 중 하나 이상을 포괄할 수 있다.
본 발명의 기술 분야는 비디오 압축 스킴의 인트라 예측 단계에 관한 것이며, 보다 구체적으로 템플릿 매칭에 기초하여 크로마 성분에 대한 인트라 예측을 수행하는 방법에 관한 것이다.
도 4a는 루마 성분에 대한 템플릿 매칭 예측의 원리를 예시한다. 프로세스는 양측에서 유사하다. 다시 말해서, 그것은 인코더 디바이스 및 디코더 디바이스 둘 모두에 의해 구현된다. 도면에서, 영역(401)은 이미 인코딩된/재구성된 루마 블록을 나타내는 반면, 영역(402)은 아직 인코딩할/재구성할 루마 블록을 나타낸다. 영역(401)은 관례적으로 인코더 측에서 재구성된 픽처 버퍼(또는 정보)로서, 그리고 디코더 측에서 디코딩된 픽처 버퍼(또는 정보)로서 식별된다. 템플릿 매칭 예측(TMP)이 사용될 때, 디바이스는, 현재 루마 블록(410)에 대해, 현재 루마 블록의 이웃을 형성하는 픽셀 세트(411)를 결정한다. 관례적으로 L-형상의 형태를 취하는, 이러한 픽셀 세트는 템플릿으로 명명된다. 다양한 크기(예를 들어, 1, 2 또는 4 픽셀 폭)와 형상(예를 들어, 블록 위의 행, 또는 블록의 좌측의 열, 또는 블록 위의 행 및 블록의 좌측의 열 둘 모두)이 TMP에 대해 사용될 수 있지만 여전히 동일한 원리에 기초한다. 인코딩된/재구성된 영역(401) 내에서의 검색이 템플릿(411)과 가장 유사한 템플릿(421)을 찾기 위해 디바이스에 의해 수행된다. 검색은 알려진 기술을 사용하여 템플릿(411)과 비교하여 최소 차이를 갖는 픽셀 영역을 결정한다. 그 목적을 위해, 블록 샘플들 간의 절대 차이의 합(SAD) 또는 다른 종래 기술이 사용될 수 있다. 이어서 최상의 매칭 템플릿(421)에 대응하는 블록(420)이 식별되고, 이 블록의 샘플이 현재 블록의 예측을 위해 사용된다. 인코딩에서, 현재 블록의 템플릿이 형성되고, 인코더는 재구성된 영역 내에서 가장 유사한 템플릿을 검색한다. 유사한 템플릿과 연관된 블록이 예측 블록으로서 사용된다. 잔차는 현재 블록으로부터 예측 블록을 빼는 것에 의해 계산되고, 후속하여 변환되고, 양자화되고, 비트스트림에 엔트로피 인코딩된다. 인코더는 또한 CU 레벨 플래그에 의해 그 모드의 사용을 시그널링한다. 디코딩에서, cu 레벨 플래그가 TMP의 사용을 나타내면, 역 TMP 프로세스가 수행된다. 먼저, 현재 블록 주위에 기준 템플릿이 형성되고, 디코더가 최상의 매칭 템플릿을 검색한다. 대응하는 블록은 예측 블록으로서 사용되며, 여기서 그것은 역 양자화 및 역변환에 의해 얻어진 잔차 신호에 추가된다.
도 4b는 인트라 블록 복사를 사용하는 인트라 예측의 원리를 예시한다. 인트라 블록 복사(IBC)는 소위 스크린 콘텐츠 코딩, 즉 사용자 인터페이스 스크린과 같은 큰 동일한 영역을 포함하는 자연적이지 않은 컴퓨터 생성 시퀀스에 특히 적합한 도구이다. IBC는 현재 프레임의 재구성된 영역(450) 내에서 매칭 기준 블록을 찾는 것에 기초한다. 인코딩에서, 현재 블록(460)과 재구성된 블록(470) 간에 매치가 발견될 때, 모션 벡터와 유사한, 현재 블록과 매칭 블록 사이의 소위 블록 벡터(480)가 블록을 재구성하기 위해 선택되고, 모션 보상과 유사한 블록 보상을 수행하도록 디코더에 시그널링된다. IBC 모드의 한 예에서, 현재 블록(460)은 이어서 블록(411)의 샘플을 복사함으로써 재구성된다.
도 4c는 현재 블록에 대한 인트라 블록 복사에 대한 허용된 검색 범위를 예시한다. 실제로, VVC를 사용하는 예시적인 구현에서, 검색 범위는 블록 위치에 따라 현재 코딩 트리 유닛(CTU)을 넘어, 좌측 CTU까지의 픽셀들로 확장된다. 그러나, 몇몇 블록 위치는 허용되지 않으며, IBC에 대해 사용될 수 없다. 이 도면에서, 현재 블록의 4개의 상이한 위치가 도시되어 있다. 현재 CTU 내의 현재 블록은 "curr"에 의해 식별되고, 흰색 블록은 아직 재구성될 블록이고, 대각선 해칭 블록은 이미 재구성된 블록인 반면, 허용되지 않는 블록은 "x" 마킹에 의해 식별된다.
IBC AMVP 모드는 재구성된 샘플로 제한된 종래의 AMVP 모드 인터 예측 모션 관련 기술을 사용할 것을 제안한다. 보다 구체적으로, 인코더에서, IBC AMVP 모드는 이미 사용된 여러 입력 벡터를 예측자(또는 제로)로서 선택하고, 각각에 대해, 모션 추정과 유사한 프로세스를 수행하여 재구성된 샘플 내의 윈도우 내에서 현재 블록과 가장 유사한 블록을 찾는다. 이어서 RDO 프로세스가 최상의 예측자를 선택하는 것을 허용한다. 이러한 최상의 예측자의 인덱스 및 추정된 벡터와 입력 벡터 간의 차이로서의 벡터 미분이 시그널링된다. 디코더에서, IBC AMVP 모드는 동일한 입력 벡터를 선택한다. 그것은 시그널링된 인덱스에 의해 표시된 입력 벡터에 전송된 벡터 차이를 더하고, 결과적인 벡터를 사용함으로써 현재 블록을 재구성한다.
IBC 병합 모드는 재구성된 샘플로 제한된 종래의 병합 모드 인터 예측 모션 관련 기술을 사용할 것을 제안한다. 보다 구체적으로, 인코더에서, IBC 병합 모드는 이미 사용된 여러 입력 벡터를 예측자로서 선택한다. 이어서 RDO 프로세스가 최상의 예측자를 선택하는 것을 허용한다. 이러한 최상의 예측자의 인덱스는 시그널링된다. 디코더에서, IBC 병합 모드는 동일한 입력 벡터를 선택하고, 전송된 인덱스에 의해 표시된 입력 벡터를 사용하여 현재 블록을 재구성한다.
템플릿 매칭은 IBC 병합 모드(IBC-TM) 및 IBC AMVP 모드(IBC-TM-AMVP) 둘 모두에 대해 IBC에서 사용될 수 있다.
IBC-TM 병합 리스트는 정규 TM 병합 모드에서와 같이 후보들 간의 모션 거리로 푸르닝 방법에 따라 후보가 선택되도록 정규 IBC 병합 모드에 의해 사용되는 것과 비교하여 수정된다. IBC-TM 병합 모드에서, 선택된 후보는 RDO 또는 디코딩 프로세스 전에 템플릿 매칭 방법으로 정제된다. IBC-TM 병합 모드는 정규 IBC 병합 모드와 경쟁하게 되었으며, TM 병합 플래그가 시그널링된다.
IBC-TM AMVP 모드에서, IBC-TM 병합 리스트로부터 최대 3개의 후보가 선택된다. 그러한 3개의 선택된 후보들 각각은 템플릿 매칭 방법을 사용하여 정제되고, 그들의 결과적인 템플릿 매칭 비용에 따라 정렬된다. 이어서 평소와 같이 2개의 처음 후보들만이 모션 추정 프로세스에서 고려된다.
IBC 모션 벡터가 (i) 정수이도록 제약되고 (ii) 도 4c에 도시된 바와 같이 기준 영역 내로 제약되기 때문에, IBC-TM 병합 모드 및 AMVP 모드 둘 모두에 대한 템플릿 매칭 정제는 매우 간단하다. 따라서, IBC-TM 병합 모드에서, 모든 정제들이 정수 정밀도로 수행되고, IBC-TM AMVP 모드에서, 그들은 AMVR 값에 따라 정수 또는 4-펠 정밀도로 수행된다. 그러한 정제는 보간 없이 샘플에만 액세스한다. 둘 모두의 경우에, 각각의 정제 단계에서의 정제된 모션 벡터 및 사용된 템플릿은 기준 영역의 제약을 준수해야 한다.
인트라 템플릿 매칭과 IBC의 조합이 행해질 수 있다. 기본적으로, 인트라 템플릿 매칭 블록 벡터(현재 블록과 예측 블록 사이의 변위 벡터)는 블록 벡터 예측자들의 IBC 후보 리스트에 넣어질 수 있다. 그러나, 이것은 루마 성분에 대한 IntraTMP로 제한될 수 있다.
도 5a 및 도 5b는 적어도 하나의 실시예에 따른 크로마 성분에 대한 템플릿 매칭 예측의 원리를 예시한다. 도 5a는 Cb 크로마 성분에 관련되는 반면, 도 5b는 Cr 크로마 성분에 관련된다. 프로세스는 각각의 크로마 성분에 대해 독립적이다. 그것은 도 4에 설명된 루마에 대한 템플릿 매칭 예측과 동일한 원리를, 그러나 크로마 성분 평면 각각에서 적용한다.
도 5a에서, 영역(501)은 이미 인코딩된/재구성된 Cb 크로마 블록을 나타내는 반면, 영역(502)은 아직 인코딩할/재구성할 Cb 크로마 블록을 나타낸다. 템플릿 매칭 예측이 사용될 때, 디바이스는, 현재 Cb 크로마 블록(510)에 대해, 현재 Cb 크로마 블록의 인근에서 템플릿을 형성하는 픽셀 세트(512)를 결정한다. 인코딩된/재구성된 영역(501) 내에서의 검색이 템플릿(512)과 가장 유사한 템플릿(531)을 찾기 위해 디바이스에 의해 수행된다. 루마와 유사하게, 검색은 알려진 기술을 사용하여, 예를 들어 블록 샘플들 간의 절대 차이의 합(SAD)을 사용하여, 템플릿과 비교하여 최소 차이를 갖는 픽셀들의 영역을 결정한다. 이어서 최상의 매칭 템플릿(531)에 대응하는 Cb 크로마 블록(530)이 식별되고, 이 블록의 샘플이 루마와 유사한 Cb 크로마 현재 블록의 예측을 위해 사용된다.
유사하게, 도 5b에서, 영역(503)은 이미 인코딩된/재구성된 Cr 크로마 블록을 나타내는 반면, 영역(504)은 아직 인코딩할/재구성할 Cr 크로마 블록을 나타낸다. 템플릿 매칭 예측이 사용될 때, 디바이스는, 현재 Cr 크로마 블록(511)에 대해, 현재 Cr 크로마 블록의 인근에서 템플릿을 형성하는 픽셀 세트(513)를 결정한다. 인코딩된/재구성된 영역(503) 내에서의 검색이 템플릿(513)과 가장 유사한 템플릿(541)을 찾기 위해 디바이스에 의해 수행된다. 루마와 유사하게, 검색은 알려진 기술을 사용하여, 예를 들어 절대 차이의 합(SAD)을 사용하여, 템플릿과 비교하여 최소 차이를 갖는 픽셀들의 영역을 결정한다. 이어서 최상의 매칭 템플릿(541)에 대응하는 Cr 크로마 블록(540)이 식별되고, 이 블록의 샘플이 루마와 유사한 Cr 크로마 현재 블록의 예측을 위해 사용된다.
도 6a는 적어도 하나의 실시예에 따른 크로마 템플릿 매칭 예측을 사용하는 인코딩 프로세스의 예의 흐름도를 예시한다. 이러한 인코딩 프로세스(600)는 Cb 및 Cr 크로마 성분들 둘 모두에 적용되며, 예를 들어 도 3의 디바이스(1000) 내의 도 1의 인코더(100)에 의해 구현된다. 현재 크로마 성분 블록에 대해, 단계 610에서, 디바이스는 도 5a의 템플릿(512) 또는 도 5b의 템플릿(513)과 같은 이웃하는 샘플의 템플릿을 결정한다. 단계 620에서, 디바이스는 크로마 평면의 재구성된 영역에서 최상의 매칭 템플릿, 예컨대 도 5a의 템플릿(531) 또는 도 5b의 템플릿(541)을 찾고, 단계 630에서 최상의 매칭 템플릿에 대응하는 크로마 블록을 선택한다. 이어서 선택된 크로마 블록의 샘플은 단계 635에서 현재 크로마 블록을 예측하는 데 사용된다. 단계 640에서, 현재 블록은 이어서 관례적으로 예측된 블록에 기초하여 인코딩되고, 단계 645에서 크로마 템플릿 매칭 예측의 사용이 현재 크로마 블록에 대해 시그널링된다.
도 6b는 적어도 하나의 실시예에 따른 크로마 템플릿 매칭 예측을 사용하는 디코딩 프로세스의 예의 흐름도를 예시한다. 이러한 디코딩 프로세스(650)는 Cb 및 Cr 크로마 성분들 둘 모두에 적용되며, 예를 들어 도 3의 디바이스(1000) 내의 도 2의 디코더(200)에 의해 구현된다. 단계 660에서, 디바이스는 현재 크로마 블록에 대한 크로마 템플릿 매칭 예측의 사용을 시그널링하는 정보를 획득한다. 이 경우에, 단계 670에서, 디바이스는 현재 크로마 성분 블록에 대한 이웃하는 샘플의 템플릿, 예를 들어 도 5a의 템플릿(512) 또는 도 5b의 템플릿(513)을 결정한다. 단계 680에서, 디바이스는 크로마 평면의 재구성된 영역에서 최상의 매칭 템플릿, 예컨대 도 5a의 템플릿(531) 또는 도 5b의 템플릿(541)을 찾고, 단계 685에서 최상의 매칭 템플릿에 대응하는 크로마 블록을 선택한다. 이어서 선택된 크로마 블록의 샘플은 단계 690에서 현재 크로마 블록을 예측하는 데 사용된다. 단계 695에서, 현재 블록은 이어서 관례적으로 예측된 블록에 기초하여 디코딩된다.
크로마 성분에 TMP 프로세스를 적용하는 것은, 증가된 복잡성의 희생으로, 코딩 이득을 제공한다. 실제로, TMP 프로세스는 루마 성분에 대해 그리고 2개의 크로마 성분들 각각에 대해 세 번 반복된다. 따라서, 다음 실시예는 루마 TMP 프로세스의 결과를 재사용하여 복잡성을 감소시킴으로써 루마 성분과 크로마 성분 간의 상관관계를 활용하는 것을 목표로 한다.
도 7a, 도 7b 및 도 7c는 적어도 하나의 실시예에 따른 크로마 예측을 위해 루마 템플릿 매칭 예측의 결과를 활용하는 원리를 예시한다. 프로세스는 양측에서 유사하다. 다시 말해서, 그것은 인코더 디바이스 및 디코더 디바이스 둘 모두에 의해 구현된다. 이러한 도면들에서, 영역 701, 702, 703은 각각 이미 인코딩된/재구성된 루마 블록, Cb 크로마 성분 및 Cr 크로마 성분을 나타내는 반면, 영역 704, 705, 706은 각각 루마, Cb 크로마 및 Cr 크로마에 대해 아직 인코딩할/재구성할 블록을 나타낸다. 템플릿 매칭 예측(TMP)이 사용될 때, 디바이스는, 현재 루마 블록(710)에 대해, 현재 루마 블록의 인근에서 루마 템플릿(711)을 형성하는 픽셀 세트를 결정한다. 인코딩된/재구성된 루마 영역(701) 내에서의 검색이, 예를 들어 절대 차이의 합 또는 거리 또는 유사성을 측정하는 다른 기술을 사용하여, 템플릿(711)과 가장 유사한 템플릿(721)을 찾기 위해 디바이스에 의해 수행된다. 이어서 최상의 매칭 루마 템플릿(721)에 대응하는 루마 블록(720)이 식별되고, 이 블록의 샘플이 루마의 예측을 위해 사용된다. 현재 블록(710)과 최상의 매칭 블록(720) 사이의 루마 변위 벡터(760)가 결정된다. 크로마에 대해, 루마 및 크로마 블록들에 대한 크기 차이를 고려하여, 루마 변위 벡터(760)에 대응하는 크로마 변위 벡터(761)가 결정된다. 다시 말해서, 크로마 변위 벡터(761)는 루마 성분과 크로마 성분 간에 관례적으로 수행되는 서브샘플링에 따라 결정된다. 서브샘플링은 수평 및 수직 방향에 적용될 수 있다. 이어서 대응하는 Cb 및 Cr 크로마 블록(730 및 740)이 크로마 변위 벡터(761)에 기초하여 결정되고, 이어서 이러한 블록의 샘플이 예측을 위해 사용된다.
이러한 실시예는 그것이 최상의 매칭 블록을 결정하기 위해 변위 벡터를 재사용하여서, 루마 성분과 크로마 성분 간의 상관관계를 활용하기 때문에 도 5a 및 도 5b의 실시예보다 더 효율적이다.
도 8a는 적어도 하나의 실시예에 따른 크로마 예측을 위해 루마 템플릿 매칭 예측의 결과를 활용하는 인코딩 프로세스의 예의 흐름도를 예시한다. 이러한 인코딩 프로세스(800)는 예를 들어 도 3의 디바이스(1000) 내의 도 1의 인코더(100)에 의해 구현된다. 현재 루마 블록에 대해, 단계 810에서, 디바이스는 도 7a의 템플릿(711)과 같은 이웃하는 샘플의 템플릿을 결정한다. 단계 815에서, 디바이스는 루마 평면의 재구성된 영역에서 최상의 매칭 템플릿, 예컨대 도 7a의 템플릿(721)을 찾고, 단계 820에서 이러한 최상의 매칭 템플릿에 대응하는 루마 블록을 선택한다. 단계 825에서, 현재 블록과 최상의 매칭 블록 사이의 루마 변위 벡터가 결정되고, 단계 830에서 루마 블록과 크로마 블록에 대한 크기 차이(즉, 크로마 서브샘플링)를 고려하여, 대응하는 크로마 변위 벡터가 결정된다. 단계 835에서, 디바이스는 크로마 변위에 따라 재구성된 Cb 및 Cr 크로마 평면들에서 Cb 및 Cr 크로마 블록들을 각각 선택한다. 이어서 선택된 루마 및 크로마 블록의 샘플은 단계 840에서 현재 루마 및 크로마 블록을 예측하는 데 사용된다. 단계 845에서, 현재 블록은 이어서 관례적으로 예측된 블록들에 기초하여 인코딩되고, 단계 846에서 템플릿 매칭 예측의 사용이 현재 크로마 블록에 대해 시그널링된다.
도 8b는 적어도 하나의 실시예에 따른 크로마 예측을 위해 루마 템플릿 매칭 예측의 결과를 활용하는 디코딩 프로세스의 예의 흐름도를 예시한다. 이러한 디코딩 프로세스(850)는 예를 들어 도 3의 디바이스(1000) 내의 도 1의 인코더(100)에 의해 구현된다. 단계 855에서, 디바이스는 현재 블록에 대한 템플릿 매칭 예측의 사용을 시그널링하는 정보를 획득한다. 이 경우에, 단계 860에서, 디바이스는 도 7a의 템플릿(711)과 같은 이웃하는 샘플의 템플릿을 결정한다. 단계 865에서, 디바이스는 루마 평면의 재구성된 영역에서 최상의 매칭 템플릿, 예컨대 도 7a의 템플릿(721)을 찾고, 단계 870에서 이러한 최상의 매칭 템플릿에 대응하는 루마 블록을 선택한다. 단계 875에서, 현재 블록과 최상의 매칭 블록 사이의 루마 변위 벡터가 결정되고, 단계 880에서 루마 블록과 크로마 블록에 대한 크기 차이(즉, 크로마 서브샘플링)를 고려하여, 대응하는 크로마 변위 벡터가 결정된다. 단계 885에서, 디바이스는 크로마 변위에 따라 재구성된 Cb 및 Cr 크로마 평면들에서 Cb 및 Cr 크로마 블록들을 각각 선택한다. 이어서 선택된 루마 및 크로마 블록의 샘플은 단계 890에서 현재 루마 및 크로마 블록을 예측하는 데 사용된다. 단계 895에서, 현재 블록은 이어서 관례적으로 예측된 블록들에 기초하여 디코딩된다(재구성된다).
도 9a, 도 9b 및 도 9c는 적어도 하나의 실시예에 따른 루마 템플릿 매칭 예측의 결과에 기초하는 정제된 영역에서의 크로마 템플릿 매칭 예측의 원리를 예시한다. 프로세스는 양측에서 유사하다. 다시 말해서, 그것은 인코더 디바이스 및 디코더 디바이스 둘 모두에 의해 구현된다. 이러한 도면들에서, 영역 901, 902, 903은 각각 이미 인코딩된/재구성된 루마 블록, Cb 크로마 성분 및 Cr 크로마 성분을 나타내는 반면, 영역 904, 905, 906은 각각 루마, Cb 크로마 및 Cr 크로마 각각에 대해 아직 인코딩할/재구성할 블록을 나타낸다. 템플릿 매칭 예측이 사용될 때, 디바이스는, 현재 루마 블록(910)에 대해, 현재 루마 블록의 인근에서 루마 템플릿을 형성하는 픽셀 세트(911)를 결정한다. 인코딩된/재구성된 루마 영역(901) 내에서의 검색이, 예를 들어 절대 차이의 합 또는 거리 또는 유사성을 측정하는 다른 기술을 사용하여, 루마 템플릿(911)과 가장 유사한 템플릿(921)을 찾기 위해 디바이스에 의해 수행된다. 이어서 최상의 매칭 루마 템플릿(921)에 대응하는 루마 블록(920)이 식별되고, 이 블록의 샘플이 루마의 예측/재구성을 위해 사용된다. 현재 루마 블록(910)과 최상의 매칭 루마 블록(920) 사이의 루마 변위 벡터(960)가 결정된다. 크로마에 대해, 루마 및 크로마 블록들에 대한 크기 차이를 고려하여, 루마 변위 벡터(960)에 대응하는 크로마 변위 벡터(961)가 결정된다. 다시 말해서, 크로마 변위 벡터(961)는 루마 성분과 크로마 성분 간에 관례적으로 수행되는 서브샘플링에 따라 결정된다. 서브샘플링은 수평 및 수직 방향에 적용될 수 있다. 이어서, Cb 크로마 평면에 대해, 크로마 변위에 대응하는 블록(935) 주위의 정제 영역(993)이 결정된다. 주변 픽셀에 대응하는 Cb 크로마 템플릿(912)이 결정되고, Cb 크로마 평면의 정제 영역(993) 내에서의 검색이 Cb 크로마 템플릿(912)과 가장 유사한 템플릿(931)을 찾기 위해 디바이스에 의해 수행된다. 대응하는 Cb 크로마 블록(930)이 선택된다. 동일한 프로세스가 최상의 매칭 Cr 템플릿(941)을 찾기 위해 Cr 크로마 템플릿(913)에 기초하여 정제 영역(994) 내에서 Cr 크로마에 대해 적용되고, 대응하는 Cr 크로마 블록(940)을 선택한다. 이어서 선택된 Cb 및 Cr 블록의 샘플이 크로마의 예측 또는 재구성을 위해 사용된다.
이 실시예는 루마 및 크로마가 상이한 코딩 트리를 사용하는 이중 트리 코딩에 특히 흥미롭다. 그것은 루마 성분과 크로마 성분 간에 발생할 수 있는 작은 변화를 고려하여 감소된 정제 영역에서 크로마에 대한 템플릿 매칭을 수행하며, 이에 따라 도 5a, 도 5b에서와 같이 전체 검색의 비용 없이 도 7a, 도 7b, 도 7c와 관련하여 품질을 개선하도록 허용한다.
도 10a는 적어도 하나의 실시예에 따른 루마 템플릿 매칭 예측의 결과에 기초하는 정제된 영역에서의 크로마 템플릿 매칭 예측을 사용하는 인코딩의 예의 흐름도를 예시한다. 이러한 인코딩 프로세스(1011)는 예를 들어 도 3의 디바이스(1000) 내의 도 1의 인코더(100)에 의해 구현된다. 현재 루마 블록에 대해, 단계 1012에서, 디바이스는 도 9a의 템플릿(911)과 같은 이웃하는 샘플의 템플릿을 결정한다. 단계 1013에서, 디바이스는 루마 평면의 재구성된 영역에서 최상의 매칭 템플릿, 예컨대 도 9a의 템플릿(921)을 찾고, 단계 1014에서 이러한 최상의 매칭 템플릿에 대응하는 루마 블록을 선택한다. 단계 1015에서, 현재 루마 블록과 최상의 매칭 루마 블록 사이의 루마 변위 벡터가 결정되고, 단계 1016에서 루마 및 크로마 블록에 대한 크기 차이(즉, 크로마 서브샘플링)를 고려하여 대응하는 Cb 및 Cr 크로마 정제 영역이 결정된다. 대응하는 Cb 및 Cr 크로마 템플릿이 단계 1017에서 결정된다. 단계 1018에서, 디바이스는 Cb 및 Cr 크로마 평면의 재구성된 영역의 정제 영역에서 최상의 매칭 Cb 및 Cr 템플릿, 예컨대 Cb에 대한 도 9b의 템플릿(931) 및 Cr에 대한 도 9c의 템플릿(941)을 각각 찾는다. 단계 1019에서, 디바이스는 최상의 매칭 Cb 및 Cr 크로마 템플릿에 따라 재구성된 Cb 및 Cr 크로마 평면에서 Cb 및 Cr 크로마 블록을 각각 선택한다. 이어서 단계 1021에서 선택된 루마 및 크로마 블록들의 샘플들이 현재 루마 및 크로마 블록들을 예측하는 데 사용되고, 이 블록들은 이어서 단계 1022에서 예측에 기초하여 인코딩된다. 단계 1023에서, 템플릿 매칭 예측의 사용이 현재 블록에 대해 시그널링된다.
도 10b는 적어도 하나의 실시예에 따른 루마 템플릿 매칭 예측의 결과에 기초하는 정제된 영역에서의 크로마 템플릿 매칭 예측을 사용하는 디코딩의 예의 흐름도를 예시한다. 이러한 디코딩 프로세스(1040)는 예를 들어 도 3의 디바이스(1000) 내의 도 2의 디코더(200)에 의해 구현된다.
단계 1041에서, 디바이스는 현재 블록에 대한 템플릿 매칭 예측의 사용을 시그널링하는 정보를 획득한다. 이 경우에, 단계 1042에서, 디바이스는, 현재 루마 블록에 대해, 도 9a의 템플릿(911)과 같은 이웃하는 샘플의 템플릿을 결정한다. 단계 1043에서, 디바이스는 루마 평면의 재구성된 영역에서 최상의 매칭 템플릿, 예컨대 도 9a의 템플릿(921)을 찾고, 단계 1044에서 이러한 최상의 매칭 템플릿에 대응하는 루마 블록을 선택한다. 단계 1045에서, 현재 루마 블록과 최상의 매칭 루마 블록 사이의 루마 변위 벡터가 결정되고, 단계 1046에서 루마 및 크로마 블록에 대한 크기 차이(즉, 크로마 서브샘플링)를 고려하여 대응하는 Cb 및 Cr 크로마 정제 영역이 결정된다. 대응하는 Cb 및 Cr 크로마 템플릿이 단계 1047에서 결정된다. 단계 1048에서, 디바이스는 Cb 및 Cr 크로마 평면의 재구성된 영역의 정제 영역에서 최상의 매칭 Cb 및 Cr 템플릿, 예컨대 Cb에 대한 도 9b의 템플릿(931) 및 Cr에 대한 도 9c의 템플릿(941)을 각각 찾는다. 단계 1049에서, 디바이스는 최상의 매칭 Cb 및 Cr 크로마 템플릿에 따라 재구성된 Cb 및 Cr 크로마 평면에서 Cb 및 Cr 크로마 블록을 각각 선택한다. 이어서 단계 1051에서 선택된 루마 및 크로마 블록들의 샘플들이 현재 루마 및 크로마 블록들을 예측하는 데 사용되고, 이 블록들은 이어서 단계 1052에서 예측된 블록들에 기초하여 디코딩된다(재구성된다).
도 11은 적어도 하나의 실시예에 따른 템플릿 매칭 예측의 신택스 시그널링의 예의 표를 예시한다. 표(1111)는 인코더로부터 디코더로 정보를 전달하여, 디코더가 오리지널 이미지 또는 비디오를 재구성할 수 있게 하는 데 요구되는 종래의 신택스의 서브세트만을 보여준다. 그것은 특히 코딩 유닛 레벨에 위치되는 "intra_TMP_flag"(1112)를 보여준다. 이 플래그가 참일 때, 현재 코딩 유닛에 대해 템플릿 매칭 예측이 수행될 것이다.
도 12는 적어도 하나의 실시예에 따른 루마 및 크로마 템플릿 매칭 예측의 신택스 시그널링의 예의 표를 예시한다. 표(1200)는 인코더로부터 디코더로 정보를 전달하여, 디코더가 오리지널 이미지 또는 비디오를 재구성할 수 있게 하는 데 요구되는 종래의 신택스의 서브세트만을 보여준다. 그것은 특히 코딩 유닛 레벨에 위치되는 "intra_TMP_flag"(1210)를 보여준다. 이 플래그가 참일 때, 현재 코딩 유닛에 대해 루마 템플릿 매칭 예측이 수행될 것이다. 또한, "intra_TMP_flag"(1220)는, Cb 성분 및 Cr 성분 둘 모두에 대해, 크로마에 대한 템플릿 매칭 예측의 사용을 시그널링한다.
도 13은 적어도 하나의 실시예에 따른 루마 및 크로마 템플릿 매칭 예측의 신택스 시그널링의 제2 예의 표를 예시한다. 표(1300)는 인코더로부터 디코더로 정보를 전달하여, 디코더가 오리지널 이미지 또는 비디오를 재구성할 수 있게 하는 데 요구되는 종래의 신택스의 서브세트만을 보여준다. 그것은 특히 코딩 유닛 레벨에 위치되는 "intra_TMP_flag"(1310)를 보여준다. 이 플래그가 참일 때, 현재 코딩 유닛에 대해 루마 템플릿 매칭 예측이 수행된다. 또한, "intra_TMP_flag"(1320)는, Cb 성분 및 Cr 성분 둘 모두에 대해, 크로마에 대한 템플릿 매칭 예측의 사용을 시그널링한다. 그러나, 도 12의 신택스와는 대조적으로, 이 실시예에서, 크로마에 대한 템플릿 매칭 예측의 사용은 루마에 대해 템플릿 매칭 예측이 수행될 때만 시그널링된다. 이것은 플래그의 시그널링을 감소시키고, 도 7b, 도 7c 및 도 9b, 도 9c의 실시예에서와 같이 루마 TMP 검색을 이용하는 둘 모두의 이점을 갖는다. 즉, 크로마 TMP는 동일한 변위 벡터를 사용하여 루마 TMP 후에 수행된다.
적어도 하나의 실시예에서, 루마 템플릿 크기는 달라질 수 있다. 루마 템플릿의 크기는 시그널링 정보를 통해 전달될 수 있다.
적어도 하나의 실시예에서, 루마 템플릿 크기는 4로서 고정된다. 다시 말해서, 템플릿은 현재 블록과 기준 블록의 위 및/또는 좌측의 4 픽셀로 구성된다. 크로마 템플릿은 동일한 루마 템플릿 크기를 사용할 수 있다. 그러나, 크로마 코딩이 루마 코딩보다 더 간단하다고 일반적으로 주장된다. 이를 위해, 크로마 템플릿 크기는 루마 템플릿 크기보다 작게 설정될 수 있다. 이러한 이유로, 적어도 하나의 실시예에서, 루마 및 크로마 템플릿 크기는 독립적이도록 설정된다. 루마 및 크로마 템플릿의 크기는 시그널링 정보를 통해 전달될 수 있다.
템플릿 크기에 대한 변형이 블록 위의 행, 또는 블록의 좌측의 열, 또는 블록 위의 행 및 블록의 좌측의 열 둘 모두와 같은, 템플릿에 대해 사용되는 형상의 임의의 것에 적용된다.
IntraTMP와 IBC를 결합할 때 코딩 성능을 개선하기 위해, 적어도 하나의 실시예는 IBC 후보 리스트에서 크로마 IntraTMP를 이용할 것을 제안한다. 이것은 다음과 같이 행해진다:
1. 현재 블록에 대한 모든 성분(Y, Cb 및 Cr)에 대해 IntraTMP에 따라 블록 벡터를 결정한다,
2. 결정된 루마 IntraTMP 블록 벡터를 루마에 대한 IBC 블록 벡터 예측자들의 리스트에 추가한다,
3. 결정된 Cb IntraTMP 블록 벡터를 Cb에 대한 IBC 블록 벡터 예측자들의 리스트에 추가한다,
4. 결정된 Cr IntraTMP 블록 벡터를 Cr에 대한 IBC 블록 벡터 예측자들의 리스트에 추가한다.
따라서, 크로마 성분에 대해 위에서 설명한 인트라 템플릿 매칭 기술에 따라 결정된 블록 벡터는 인트라 블록 복사에 대해 사용될 수 있으며, 그에 따라 루마, Cb 및 Cr에 대해 상이한 블록 벡터를 가질 수 있게 한다.
정규 IBC 블록 벡터에 대해, 보다 장기적인 방식으로 사용될 수 있도록 IntraTMP 블록 벡터를 IBC HMVP 리스트에 저장하는 것이 가능하다. 그러나, 정규 IBC 블록 벡터와는 달리, IBC HMVP 리스트는 루마, Cb 및 Cr에 대한 IntraTMP 블록 벡터를 저장할 수 있어야 한다. 변형에서, IBC HMVP 리스트는 또한 블록 벡터가 IntraTMP 블록으로부터 온 것임을 나타내는 정보를 저장할 수 있어야 한다.
또한, 적어도 하나의 실시예에서, 상이한 블록 벡터가 사용되는지를 나타내기 위해 플래그가 CU 레벨에서 시그널링될 수 있다. 즉, 플래그가 1이면, 위의 방법이 수행되고, 그렇지 않으면 모든 성분(루마, Cb, Cr)에 대해 루마 IntraTMP만이 사용된다. 이어서 인코더는 최상의 구성을 선택할 수 있다. 변형 실시예에서, 이 플래그는 보다 높은 레벨의 유연성을 위해 슬라이스, 픽처 또는 SPS 레벨에서 시그널링될 수 있다.
IBC_TM 모드의 복잡성을 줄이기 위해, IntraTMP로부터 오는 블록 벡터는 이미 인트라 템플릿 검색을 통해 정제되었기 때문에, IBC 후보 리스트에 그것이 IntraTMP 또는 정제된 블록 벡터임을 표시하는 것이 가능하다. 이 경우에, IBC_TM 모드에서, 그러한 후보들에 대한 정제 프로세스는 생략될 수 있다.
적어도 하나의 실시예는 크로마 IntraTMP를 인에이블하기 위해 하이 레벨 플래그(예를 들어, SPS 레벨)를 추가할 것을 제안한다. 예를 들어 "sps_chroma_tmp_enabled_flag"라는 이름의 이 플래그는 크로마 TMP를 스위치 온 또는 오프하는 데 사용될 수 있다. 시퀀스의 특성에 따라 크로마 IntraTMP를 사용할지를 결정하는 것은 인코더에 달려있다. sps_chroma_tmp_enabled_flag 플래그는 sps_intraTMP_enabled_flag가 온인 경우에만 코딩될 수 있다.
실시예의 적어도 하나의 예는 본 명세서에 기술된 바와 같은 장치, 및 (i) 신호를 수신하도록 구성된 안테나 - 신호는 이미지 정보를 나타내는 데이터를 포함함 -, (ii) 수신된 신호를 이미지 정보를 나타내는 데이터를 포함하는 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 이미지 정보로부터 이미지를 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스를 포함할 수 있다.
실시예의 적어도 하나의 예는 본 명세서에 기술된 바와 같은 디바이스를 포함할 수 있으며, 여기서 디바이스는 텔레비전, 텔레비전 신호 수신기, 셋톱 박스, 게이트웨이 디바이스, 모바일 디바이스, 휴대폰, 태블릿, 컴퓨터, 랩톱, 또는 다른 전자 디바이스 중 하나를 포함한다.
일반적으로, 실시예의 다른 예는 신택스 요소들 및 픽처 정보를 포함하도록 포맷화된 비트스트림 또는 신호를 포함할 수 있으며, 여기서 신택스 요소들은 생성되고, 픽처 정보는 본 개시에 따른 방법들의 실시예들의 예들 중 임의의 하나 이상에 기초한 처리에 의해 인코딩된다.
일반적으로, 실시예들의 하나 이상의 다른 예들은 또한, 본 명세서에 기술된 방법들 또는 장치에 따라 비디오 데이터와 같은 픽처 정보를 인코딩 또는 디코딩하기 위한 명령어들이 저장된 컴퓨터 판독가능 저장 매체, 예컨대, 비휘발성 컴퓨터 판독가능 저장 매체를 제공할 수 있다. 하나 이상의 실시예들은 또한, 본 명세서에 기술된 방법들 또는 장치에 따라 생성된 비트스트림이 저장된 컴퓨터 판독가능 저장 매체를 제공할 수 있다. 하나 이상의 실시예들은 또한, 본 명세서에 기술된 방법들 또는 장치에 따라 생성된 비트스트림 또는 신호를 송신 또는 수신하기 위한 방법들 및 장치를 제공할 수 있다.
본 명세서에 기술된 실시예들의 예들 중 많은 것이 특이성을 갖고서 기술되며, 적어도, 개별 특성들을 보여주기 위해, 종종, 제한적으로 들릴 수 있는 방식으로 기술된다. 그러나, 이는 설명의 명확성을 위한 것이며, 그러한 태양들의 적용 또는 범위를 제한하지 않는다. 실제로, 상이한 모든 태양들이 조합되고 상호교환되어 추가의 태양들을 제공할 수 있다. 더욱이, 실시예들, 특징들 등이 조합될 수 있고, 마찬가지로 이전의 출원들에 기술된 다른 것들과 상호교환될 수 있다.
다양한 구현예들이 디코딩을 수반한다. 본 출원에서 사용되는 바와 같이, "디코딩"은 예를 들어, 수신된 인코딩된 시퀀스에 대해 수행되어 디스플레이에 적합한 최종 출력을 생성하는 프로세스의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들 중 하나 이상의 프로세스들, 예를 들어, 엔트로피 디코딩, 역양자화, 역변환, 및 차분 디코딩을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에 기술된 다양한 구현예들의 디코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들로서, 하나의 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서, "디코딩"은 차분 디코딩만을 지칭하고, 또 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차분 디코딩의 조합을 지칭한다. 어구 "디코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 일반적으로 보다 광의의 디코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현예들이 인코딩을 수반한다. "디코딩"에 대한 상기 논의와 유사한 방식으로, 본 출원에서 사용되는 바와 같은 "인코딩"은, 예를 들어 입력 비디오 시퀀스에 대해 수행되어 인코딩된 비트스트림을 생성하는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 전형적으로 인코더에 의해 수행되는 프로세스들, 예를 들어, 파티셔닝, 차분 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다.
추가 예들에서, 하나의 실시예에서, "인코딩"은 단지 엔트로피 인코딩을 지칭하며, 다른 실시예에서 "인코딩"은 단지 차분 인코딩을 지칭하고, 다른 실시예에서 "인코딩"은 차분 인코딩과 엔트로피 인코딩의 조합을 지칭한다. 어구 "인코딩 프로세스"가 동작들의 서브세트를 구체적으로 나타내기 위한 것인지, 또는 일반적으로 보다 광의의 인코딩 프로세스를 나타내기 위한 것인지 여부는 특정 설명들의 맥락에 기초하여 명확할 것이며, 당업자에 의해 잘 이해될 것으로 여겨진다.
본 명세서에 사용된 바와 같은 신택스 요소들은 설명적 용어들임에 유의한다. 그렇기 때문에, 이들은 다른 신택스 요소 명칭들의 사용을 배제하지 않는다.
도면이 흐름도로서 제시될 때, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것을 이해해야 한다.
일반적으로, 본 명세서에 기술된 실시예들, 구현예들, 특징들 등의 예들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호에서 구현될 수 있다. 단일 형태의 구현예의 맥락에서만 논의되더라도(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현예는 또한 다른 형태들(예를 들어, 장치 또는 프로그램)로 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들의 하나 이상의 예들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함하는, 일반적으로 처리 디바이스들을 지칭하는, 예를 들어, 프로세서에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 휴대폰들, 휴대용/개인 디지털 어시스턴트들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다. 또한, 본 명세서에서 용어 "프로세서"의 사용은 하나의 프로세서 또는 하나 초과의 프로세서의 다양한 구성들을 광범위하게 포괄하도록 의도된다.
"하나의 실시예" 또는 "실시예" 또는 "하나의 구현예" 또는 "구현예"뿐만 아니라 그의 다른 변형들에 대한 언급은, 실시예와 관련하여 기술된 특정 특징부, 구조, 특성 등이 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 곳에서 나타나는 어구 "하나의 실시예에서" 또는 "실시예에서" 또는 "하나의 구현예에서" 또는 "구현예에서"뿐만 아니라 임의의 다른 변형들의 출현들이 반드시 모두 동일한 실시예를 언급하는 것은 아니다.
또한, 본 출원은 다양한 정보들을 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 다양한 정보를 "수신하는 것"을 언급할 수 있다. 수신하는 것은 "액세스하는 것"과 마찬가지로 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어 정보를 저장하는 동작, 정보를 처리하는 동작, 정보를 전송하는 동작, 정보를 이동시키는 동작, 정보를 복사하는 동작, 정보를 소거하는 동작, 정보를 계산하는 동작, 정보를 결정하는 동작, 정보를 예측하는 동작, 또는 정보를 추정하는 동작과 같은 동작들 동안 어떤 방식으로든 수반된다.
예를 들어 다음의 "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서 "/", "및/또는", 및 "적어도 하나" 중 임의의 것의 사용은 첫 번째 열거된 옵션(A) 단독의 선택, 또는 두 번째 열거된 옵션(B) 단독의 선택, 또는 옵션들(A 및 B) 둘 모두의 선택을 포함하도록 의도됨을 이해해야 한다. 추가의 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우에서, 그러한 어구는 첫 번째 열거된 옵션(A) 단독의 선택, 또는 두 번째 열거된 옵션(B) 단독의 선택, 또는 세 번째 열거된 옵션(C) 단독의 선택, 또는 첫 번째 및 두 번째 열거된 옵션(A 및 B) 단독의 선택, 또는 첫 번째 및 세 번째 열거된 옵션(A 및 C) 단독의 선택, 또는 두 번째 및 세 번째 열거된 옵션(B 및 C) 단독의 선택, 또는 3개의 모든 옵션(A, B 및 C)의 선택을 포괄하도록 의도된다. 이는, 본 명세서에 기술된 바와 같은 많은 항목들에 대해, 본 명세서 및 관련 분야의 당업자에게 명백한 바와 같이 확장될 수 있다.
당업자에게 명백한 바와 같이, 구현예들은, 예를 들어 저장되거나 송신될 수 있는 정보를 반송하도록 포맷화된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림을 반송하도록 포맷화될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용함) 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는, 예를 들어, 데이터 스트림을 인코딩하는 것, 및 인코딩된 데이터 스트림으로 반송파를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체에 저장될 수 있다.
다양한 실시예들이 본 명세서에 기술된다. 이들 실시예들의 특징들은 다양한 청구항 카테고리들 및 유형들에 걸쳐 단독으로 또는 임의의 조합으로 제공될 수 있다.

Claims (28)

  1. 방법으로서, 루마 블록 및 적어도 하나의 크로마 블록을 포함하는 픽처 정보의 현재 블록에 대해,
    - 상기 현재 블록과 연관된 템플릿과 디코딩된 픽처 정보의 영역 내의 적어도 하나의 다른 블록과 연관된 적어도 하나의 다른 템플릿의 비교를 포함하는 템플릿 매칭 프로세스에 기초하여 부분적으로 디코딩된 픽처 정보의 영역에서 블록을 선택하는 단계; 및
    - 상기 선택된 블록의 샘플들에 기초하여 상기 현재 블록의 적어도 하나의 크로마 성분에 대한 예측을 결정하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 템플릿 매칭 프로세스는 부분적으로 디코딩된 루마 픽처 정보에서, 부분적으로 디코딩된 Cb 크로마 픽처 정보에서, 또는 부분적으로 디코딩된 Cr 크로마 픽처 정보에서 각각 루마, Cb 크로마 및 Cr 크로마 성분들에 독립적으로 적용되는, 방법.
  3. 제1항에 있어서, 상기 템플릿 매칭 프로세스는 상기 루마 성분들에 대해서만 적용되며,
    - 상기 선택된 루마 블록과 상기 현재 루마 블록 사이의 거리에 기초하여 변위 벡터를 결정하는 단계;
    - 상기 변위 벡터에 기초하여 부분적으로 디코딩된 Cb 크로마 픽처 정보의 영역에서 Cb 크로마 블록을 선택하는 단계;
    - 상기 변위 벡터에 기초하여 부분적으로 디코딩된 Cr 크로마 픽처 정보의 영역에서 Cr 크로마 블록을 선택하는 단계; 및
    - 상기 선택된 루마, Cb 크로마 및 Cr 크로마 블록들의 샘플들에 기초하여 상기 현재 블록에 대한 예측 블록을 결정하는 단계를 추가로 포함하는, 방법.
  4. 제1항에 있어서, 상기 템플릿 매칭 프로세스는 상기 루마 성분들에 대해서만 적용되며,
    - 상기 선택된 루마 블록과 상기 현재 루마 블록 사이의 거리에 기초하여 변위 벡터를 결정하는 단계;
    - 상기 변위 벡터에 기초하여 부분적으로 디코딩된 Cb 및 Cr 크로마 픽처 정보에서 각각 Cb 및 Cr 크로마 정제 영역들을 결정하는 단계;
    - 상기 Cb 크로마 정제 영역에서 템플릿 매칭 프로세스를 적용함으로써 Cb 크로마 블록을 선택하는 단계;
    - 상기 Cr 크로마 정제 영역에서 템플릿 매칭 예측을 적용함으로써 Cr 크로마 블록을 선택하는 단계;
    - 상기 선택된 루마, Cb 크로마 및 Cr 크로마 블록들의 샘플들에 기초하여 상기 현재 블록에 대한 예측 블록을 결정하는 단계를 추가로 포함하는, 방법.
  5. 제3항 또는 제4항에 있어서, 상기 예측 블록은 상기 선택된 블록들의 샘플들을 복사함으로써 결정되는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 예측 블록에 기초하여 상기 현재 블록을 디코딩하는 단계를 추가로 포함하는, 방법.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 예측 블록에 기초하여 상기 현재 블록을 인코딩하는 단계를 추가로 포함하며, 상기 인코딩은 상기 현재 블록에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 정보를 포함하는, 방법.
  8. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 예측 블록에 기초하여 상기 현재 블록을 인코딩하는 단계를 추가로 포함하며, 상기 인코딩은 상기 현재 루마 블록에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 제1 정보, 및 상기 현재 크로마 블록들에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 제2 정보를 포함하는, 방법.
  9. 제8항에 있어서, 상기 제2 정보는 상기 제1 정보가 참인 경우에만 시그널링되고, 그렇지 않은 경우에는 시그널링되지 않는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 템플릿의 크기는 1 픽셀 또는 2 픽셀 또는 4 픽셀인, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 템플릿의 형상은 상기 블록 위의 적어도 하나의 픽셀 행, 또는 상기 블록의 좌측의 적어도 하나의 픽셀 열, 또는 상기 블록 위의 적어도 하나의 픽셀 행 및 상기 블록의 좌측의 적어도 하나의 픽셀 열을 포함하는 L-형상인, 방법.
  12. 적어도 하나의 프로세서를 포함하는 장치로서, 상기 적어도 하나의 프로세서는, 루마 블록 및 적어도 하나의 크로마 블록을 포함하는 픽처 정보의 현재 블록에 대해,
    - 상기 현재 블록과 연관된 템플릿과 디코딩된 픽처 정보의 영역 내의 적어도 하나의 다른 블록과 연관된 적어도 하나의 다른 템플릿의 비교를 포함하는 템플릿 매칭 프로세스에 기초하여 부분적으로 디코딩된 픽처 정보의 영역에서 블록을 선택하고;
    - 상기 선택된 블록의 샘플들에 기초하여 상기 현재 블록의 적어도 하나의 크로마 성분에 대한 예측을 결정하도록 구성되는, 장치.
  13. 제12항에 있어서, 상기 템플릿 매칭 프로세스는 부분적으로 디코딩된 루마 픽처 정보에서, 부분적으로 디코딩된 Cb 크로마 픽처 정보에서, 또는 부분적으로 디코딩된 Cr 크로마 픽처 정보에서 각각 루마, Cb 크로마 및 Cr 크로마 성분들에 독립적으로 적용되는, 장치.
  14. 제12항에 있어서, 상기 템플릿 매칭 프로세스는 상기 루마 성분들에 대해서만 적용되며,
    - 상기 선택된 루마 블록과 상기 현재 루마 블록 사이의 거리에 기초하여 변위 벡터를 결정하는 것;
    - 상기 변위 벡터에 기초하여 부분적으로 디코딩된 Cb 크로마 픽처 정보의 영역에서 Cb 크로마 블록을 선택하는 것;
    - 상기 변위 벡터에 기초하여 부분적으로 디코딩된 Cr 크로마 픽처 정보의 영역에서 Cr 크로마 블록을 선택하는 것; 및
    - 상기 선택된 루마, Cb 크로마 및 Cr 크로마 블록들의 샘플들에 기초하여 상기 현재 블록에 대한 예측 블록을 결정하는 것을 추가로 포함하는, 장치.
  15. 제12항에 있어서, 상기 템플릿 매칭 프로세스는 상기 루마 성분들에 대해서만 적용되며,
    - 상기 선택된 루마 블록과 상기 현재 루마 블록 사이의 거리에 기초하여 변위 벡터를 결정하는 것;
    - 상기 변위 벡터에 기초하여 부분적으로 디코딩된 Cb 및 Cr 크로마 픽처 정보에서 각각 Cb 및 Cr 크로마 정제 영역들을 결정하는 것;
    - 상기 Cb 크로마 정제 영역에서 템플릿 매칭 프로세스를 적용함으로써 Cb 크로마 블록을 선택하는 것;
    - 상기 Cr 크로마 정제 영역에서 템플릿 매칭 예측을 적용함으로써 Cr 크로마 블록을 선택하는 것;
    - 상기 선택된 루마, Cb 크로마 및 Cr 크로마 블록들의 샘플들에 기초하여 상기 현재 블록에 대한 예측 블록을 결정하는 것을 추가로 포함하는, 장치.
  16. 제14항 또는 제15항에 있어서, 상기 예측 블록은 상기 선택된 블록들의 샘플들을 복사함으로써 결정되는, 장치.
  17. 제12항 내지 제16항 중 어느 한 항에 있어서, 상기 예측 블록에 기초하여 상기 현재 블록을 디코딩하는 것을 추가로 포함하는, 장치.
  18. 제12항 내지 제16항 중 어느 한 항에 있어서, 상기 예측 블록에 기초하여 상기 현재 블록을 인코딩하는 것을 추가로 포함하며, 상기 인코딩은 상기 현재 블록에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 정보를 포함하는, 장치.
  19. 제12항 내지 제16항 중 어느 한 항에 있어서, 상기 예측 블록에 기초하여 상기 현재 블록을 인코딩하는 것을 추가로 포함하며, 상기 인코딩은 상기 현재 루마 블록에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 제1 정보, 및 상기 현재 크로마 블록들에 대한 템플릿 매칭 예측 프로세스의 사용을 시그널링하는 제2 정보를 포함하는, 장치.
  20. 제19항에 있어서, 상기 제2 정보는 상기 제1 정보가 참인 경우에만 시그널링되고, 그렇지 않은 경우에는 시그널링되지 않는, 장치.
  21. 제12항 내지 제20항 중 어느 한 항에 있어서, 상기 템플릿의 크기는 1 픽셀 또는 2 픽셀 또는 4 픽셀인, 장치.
  22. 제12항 내지 제20항 중 어느 한 항에 있어서, 상기 템플릿의 형상은 상기 블록 위의 적어도 하나의 픽셀 행, 또는 상기 블록의 좌측의 적어도 하나의 픽셀 열, 또는 상기 블록 위의 적어도 하나의 픽셀 행 및 상기 블록의 좌측의 적어도 하나의 픽셀 열을 포함하는 L-형상인, 장치.
  23. 명령어들을 포함하는 컴퓨터 프로그램 제품으로서, 상기 명령어들은, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항 내지 제11항 중 어느 한 항에 따른 방법을 수행하게 하는, 컴퓨터 프로그램 제품.
  24. 실행가능 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 실행가능 프로그램 명령어들은 상기 명령어들을 실행하는 컴퓨터로 하여금 제1항 내지 제11항 중 어느 한 항에 따른 방법을 수행하게 하는, 비일시적 컴퓨터 판독가능 매체.
  25. 제7항 내지 제11항 중 어느 한 항의 방법에 따라 생성된 데이터를 포함하는, 신호.
  26. 제7항 내지 제11항 중 어느 한 항의 방법에 따른 템플릿 매칭 예측 프로세스 및 인코딩된 이미지 정보의 사용을 표시하는 것과 연관된 신택스 요소들을 포함하도록 포맷화된, 비트스트림.
  27. 디바이스로서,
    제12항에 따른 장치; 및
    (i) 신호를 수신하도록 구성된 안테나 - 상기 신호는 이미지 정보를 나타내는 데이터를 포함함 -, (ii) 상기 수신된 신호를 상기 이미지 정보를 나타내는 상기 데이터를 포함하는 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 상기 이미지 정보로부터 이미지를 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는, 디바이스.
  28. 제27항에 있어서, 상기 디바이스는 텔레비전, 텔레비전 신호 수신기, 셋톱 박스, 게이트웨이 디바이스, 모바일 디바이스, 휴대폰, 태블릿, 컴퓨터, 랩톱, 또는 다른 전자 디바이스 중 하나를 포함하는, 디바이스.
KR1020247011475A 2021-09-07 2022-08-29 템플릿 매칭에 기초한 비디오 인코딩 및 디코딩을 위한 크로마 예측 KR20240056576A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP21306219.3 2021-09-07
EP21306219 2021-09-07
EP22306033.6 2022-07-08
EP22306033 2022-07-08
PCT/EP2022/073903 WO2023036639A1 (en) 2021-09-07 2022-08-29 Chroma prediction for video encoding and decoding based on template matching

Publications (1)

Publication Number Publication Date
KR20240056576A true KR20240056576A (ko) 2024-04-30

Family

ID=83318806

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247011475A KR20240056576A (ko) 2021-09-07 2022-08-29 템플릿 매칭에 기초한 비디오 인코딩 및 디코딩을 위한 크로마 예측

Country Status (2)

Country Link
KR (1) KR20240056576A (ko)
WO (1) WO2023036639A1 (ko)

Also Published As

Publication number Publication date
WO2023036639A1 (en) 2023-03-16

Similar Documents

Publication Publication Date Title
US20220159277A1 (en) Method and apparatus for video encoding and decoding with subblock based local illumination compensation
US20220078405A1 (en) Simplifications of coding modes based on neighboring samples dependent parametric models
US11677976B2 (en) Method and apparatus for video encoding and decoding using bi-prediction
US20230232037A1 (en) Unified process and syntax for generalized prediction in video coding/decoding
US20230396805A1 (en) Template matching prediction for versatile video coding
US20240171731A1 (en) Geometric partitions with switchable interpolation filter
US20230023837A1 (en) Subblock merge candidates in triangle merge mode
US20220417516A1 (en) Deep intra prediction of an image block
KR20240056576A (ko) 템플릿 매칭에 기초한 비디오 인코딩 및 디코딩을 위한 크로마 예측
US11979585B2 (en) Current picture referencing block vector initialization with dual tree
US20240171756A1 (en) Template matching prediction for video encoding and decoding
US20230336721A1 (en) Combining abt with vvc sub-block-based coding tools
US20230156190A1 (en) Signaling of merge indices for triangle partitions
US20220264147A1 (en) Hmvc for affine and sbtmvp motion vector prediction modes
CN118120228A (zh) 基于模板匹配的用于视频编码和解码的色度预测
WO2024078896A1 (en) Template type selection for video coding and decoding
WO2022214244A1 (en) Intra block copy with template matching for video encoding and decoding
KR20220052991A (ko) 스위칭가능한 보간 필터들
WO2022101018A1 (en) A method and an apparatus for encoding or decoding a video
AU2022216783A1 (en) Spatial local illumination compensation
CN117501692A (zh) 用于视频编码和解码的模板匹配预测