KR101632126B1 - 비디오 코딩을 위한 템플릿 매칭 - Google Patents

비디오 코딩을 위한 템플릿 매칭 Download PDF

Info

Publication number
KR101632126B1
KR101632126B1 KR1020147013265A KR20147013265A KR101632126B1 KR 101632126 B1 KR101632126 B1 KR 101632126B1 KR 1020147013265 A KR1020147013265 A KR 1020147013265A KR 20147013265 A KR20147013265 A KR 20147013265A KR 101632126 B1 KR101632126 B1 KR 101632126B1
Authority
KR
South Korea
Prior art keywords
hypotheses
video
block
template
video block
Prior art date
Application number
KR1020147013265A
Other languages
English (en)
Other versions
KR20140068269A (ko
Inventor
마르타 카르체비츠
웨이-정 치엔
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20140068269A publication Critical patent/KR20140068269A/ko
Application granted granted Critical
Publication of KR101632126B1 publication Critical patent/KR101632126B1/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/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/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/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시물의 일 양태에서, 템플릿 매칭 모션 예측이 B 프레임들에 적용된다. 본 개시물의 다른 양태에서, 비디오 블록 코딩에 적용될 때 템플릿 매칭 모션 보상은, 템플릿 오프셋을 생성하고, 절대 차이들의 가중된 합을 생성하고, 가설들의 수와 관련된 비용에 기초하여 비디오 블록들을 인코딩하기 위해 사용된 가설들의 수를 선택하여 인코딩하는데 사용된 가설들의 수를 새로운 신택스로 디코더에 시그널링하고, 가설과 레퍼런스 가설 사이의 값에서의 차이가 임계값 보다 크면 사설들을 거부하고/하거나 모션 보상된 예측과 루마 잔류를 결합함으로써 이용가능한 재구성된 데이터를 갖지 않은 서브 블록의 콘텐츠를 생성하는 것을 포함한다.

Description

비디오 코딩을 위한 템플릿 매칭{TEMPLATE MATCHING FOR VIDEO CODING}
관련 출원들
본 출원은 그 전체 내용이 참조로 여기에 통합되는 2009년 7월 2일 출원된 미국 가출원 번호 61/222,836호의 이점을 청구한다.
본 개시물은 비디오 코딩에 관한 것으로, 더욱 구체적으로는, 템플릿 매칭 모션 예측을 사용하는 비디오 코딩 기법에 관한 것이다.
디지털 멀티미디어 능력들이 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 통신 디바이스들, 무선 브로드캐스트 시스템들, 개인 휴대 보조 단말기들 (PDA), 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 기록 디바이스들, 비디오 게임 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화들, 디지털 미디어 플레이어들 등을 포함하는 광범위한 디바이스들에 통합될 수 있다. 디지털 멀티미디어 디바이스들은 디지털 비디오 데이터를 더욱 효율적으로 송신 및 수신하거나 저장 및 검색하기 위해 MPEG-2, ITU-H.263, MPEG-4, 또는 ITU-H.264/MPEG-4 Part 10, 어드밴스드 비디오 코딩 (AVC) 과 같은 비디오 코딩 기법들을 구현할 수도 있다. 비디오 인코딩 기법들은 공간 및 시간 예측을 통해 비디오 압축을 수행하여 비디오 시퀀스들에서 고유한 리던던시를 감소시키거나 제거할 수도 있다.
비디오 인코딩에서, 압축은 종종 공간 예측, 모션 추정 및 모션 보상을 포함한다. 인트라-코딩은 소정의 비디오 프레임내의 비디오 블록들 사이에서 공간 리던던시를 감소시키거나 제거하기 위해 이산 코사인 변환 (DCT) 과 같은 공간 예측 및 변환 코딩에 의존한다. 인터-코딩은 비디오 시퀀스의 연속 비디오 프레임들의 비디오 블록들 사이에서 시간 리던던시를 감소시키거나 제거하기 위해 시간 예측 및 변환 코딩에 의존한다. 인트라-코딩된 프레임들 ("I-프레임들") 은 종종 다른 프레임들의 인터-코딩을 위한 레퍼런스들 뿐만 아니라 랜덤 액세스 포인트들로서 사용된다. 그러나, I-프레임들은 통상적으로 다른 프레임들 보다 작은 압축을 나타낸다. 용어 I-유닛들은 I-프레임들, I-슬라이스들 또는 I-프레임의 다른 독립적으로 디코딩가능한 부분들을 칭할 수도 있다.
인터-코딩을 위해, 비디오 인코더는 2개 이상의 인접한 프레임들 또는 프레임들의 슬라이스들과 같은 다른 코딩된 유닛들 사이에서 비디오 블록들을 매칭하는 이동을 트랙킹하기 위해 모션 추정을 수행한다. 인터-코딩된 프레임들은 이전의 프레임으로부터 예측된 블록들을 포함할 수도 있는 예측 프레임들 ("P-프레임들"), 및 비디오 시퀀스의 이전의 프레임 및 후속 프레임으로부터 예측된 블록들을 포함할 수도 있는 양방향 예측 프레임들 ("B-프레임들") 을 포함할 수도 있다. 종래의 모션 보상된 비디오 코딩 기법들은 현재의 비디오 블록을 인코딩하기 위해 사용될 수도 있는 예측 비디오 데이터를 식별하기 위해 이전 또는 후속 비디오 프레임의 다른 비디오 블록들에 비디오 블록을 비교한다. 비디오 블록은 더 높은 품질의 코딩을 용이하게 하기 위해 서브-블록 파티션들로 분할될 수도 있다.
코딩된 비디오 블록은 예측 블록을 생성하거나 식별하기 위해 사용될 수 있는 예측 정보, 및 코딩된 블록과 예측 블록 사이의 차이들을 나타내는 데이터의 잔류 블록에 의해 표현될 수도 있다. 예측 정보는 데이터의 예측 블록을 식별하기 위해 사용되는 하나 이상의 모션 벡터들을 포함할 수도 있다. 모션 벡터들이 제공되면, 디코더가 잔류 블록을 코딩하기 위해 사용되는 예측 블록들을 재구성할 수 있다. 따라서, 잔류 블록들의 세트 및 모션 벡터들의 세트 (및 가능하면 일부 추가의 신택스) 가 제공되면, 디코더는 원래 인코딩된 비디오 프레임을 재구성할 수도 있다. 인코딩된 비디오 시퀀스는 잔류 데이터의 블록들, 모션 벡터들, 및 가능하면 다른 타입의 신택스를 포함할 수도 있다.
모션 벡터들을 제거하기 위해 사용될 수 있는 기법인 템플릿 매칭은 모션 보상 비디오 코딩의 이점들을 여전히 제공한다. 템플릿 매칭에서, 코딩된 비디오 블록에 대한 이웃하는 픽셀들은 템플릿을 정의할 수 있고, (코딩된 비디오 블록 보다는) 이러한 템플릿이 이전의 또는 후속 비디오 프레임의 데이터에 비교될 수 있다. 비디오 인코더 및 비디오 디코더 양자는 모션 벡터들을 사용하지 않고 모션을 식별하기 위해 템플릿 매칭 프로세스를 수행할 수 있다. 따라서, 템플릿 매칭으로, 모션 벡터들은 비트스트림으로 코딩되지 않는다. 오히려, 모션 벡터들은 본질적으로, 프레임이 인코딩되고 디코딩될 때 템플릿 매칭 프로세스로부터 유도된다.
일반적으로, 본 개시물은 비디오 유닛들내의 비디오 블록들의 템플릿 매칭 모션 예측 코딩에 적용할 수 있는 비디오 코딩 기법들을 설명한다. 비디오 유닛은 비디오 프레임 또는 비디오 프레임의 슬라이스를 포함할 수도 있다. 템플릿 매칭 모션 예측에서, 비디오 블록은 모션 보상된 비디오 코딩의 이점들을 여전히 제공하면서, 모션 벡터들에 의존하지 않고 예측 레퍼런스 데이터의 하나 이상의 리스트들에 기초하여 예측적으로 인코딩되고 디코딩된다. 특히, 코딩된 비디오 블록에 대한 이웃하는 픽셀들은 템플릿을 정의할 수 있고, 코딩된 비디오 블록 보다는 이러한 템플릿이 예측 레퍼런스 데이터의 리스트들에 저장된 데이터에 비교될 수 있다. 예측 레퍼런스 데이터는 타겟 프레임 이전에 또는 후속하여 발생할 수도 있는 하나 이상의 레퍼런스 프레임들에 기초하여 생성된다.
B-프레임들에 템플릿 매칭 예측을 적용할 때, 예측 비디오 데이터의 2개의 리스트, 즉, 제 1 리스트는 타겟 프레임 이전에 발생한 프레임(예를 들어, 이전의 프레임)으로부터 생성되고, 제 2 리스트는 타겟 프레임에 후속하는 프레임(예를 들어, 장래의 프레임)으로부터 생성된다. 본 개시물의 일 양태에서, 템플릿 매칭은 B-프레임들을 인코딩하고 디코딩하는데 적용된다. B-프레임들에 템플릿 매칭을 적용하는데 있어서, 하나 또는 2개의 가설 세트들이 B-프레임에 대해 사용될 수도 있다. 하나의 가설 세트가 사용되면, 가설 세트는 제 1 리스트 및 제 2 리스트 양자로부터 발견된 가설들을 포함할 수도 있다. 2개의 가설 세트들이 사용되면, 제 1 가설 세트는 제 1 리스트로부터 발견된 가설들을 포함할 수도 있고, 제 2 가설 세트는 제 2 리스트로부터 발견된 가설들을 포함할 수도 있다. 제 3 가설 세트가 양방향 모션 예측으로부터 형성될 수도 있고, 여기서, 제 1 리스트 및 제 2 리스트로부터의 데이터가 결합되어 예측을 위해 사용된다.
본 개시물의 다른 양태에서, 개선된 가설 선택 및 거부가 P-프레임들 및 B-프레임들 양자의 템플릿 매칭 예측에 적용된다. 이와 관련하여, 템플릿 매칭 예측을 사용하여 비디오 데이터를 인코딩하거나 디코딩할 때 코더에 의해 사용된 가설들의 수를 디코더에 시그널링하기 위해 신택스 엘리먼트가 도입된다. 예를 들어, 인코더는 인코딩 프로세스 동안 사용된 가설들의 수를 특정하는 2개의 상이한 수들 중 하나를 선택하도록 구성될 수도 있고, 디코더는 인코더에 의해 식별된 가설들의 수를 적용하도록 구성될 수도 있다. 인코더는 인코딩 동안 가설들의 수를 사용하는 것과 관련된 비용을 결정할 수도 있고, 최하의 비용을 갖는 가설들의 수를 선택할 수도 있다. 그 후, 인코더는 최하의 비용을 갖는 가설들의 수에 기초하여 비디오 데이터를 인코딩할 수도 있고, 신택스 엘리먼트를 사용하여 이러한 수를 디코더에 시그널링할 수도 있다.
고려로부터 어느 가설들을 거부할지 결정할 때, 인코더 또는 디코더는 고려중인 가설 (즉, 후보 가설) 을 레퍼런스 가설에 비교한다. 후보 가설과 레퍼런스 가설 사이의 차이가 소정의 임계값 보다 크면, 후보 가설이 고려로부터 거부될 수도 있다. 레퍼런스 가설은 일 예에서는, 고려중인 모든 가설들, 또는 다른 예에서는, 고려중인 최상의 가설들의 서브세트를 평균함으로써 생성될 수도 있다. 본 개시물의 가설 거부 양태에서, 어느 가설이 수용되거나 거부되는지에 관한 인코더 또는 디코더에 대한 시그널링은 P-프레임들 또는 B-프레임들에 적용된 템플릿 매칭 모션 예측에 대해 요구되지 않는다.
본 개시물의 다른 양태에서, P-프레임들 및 B-프레임들에 대한 템플릿 매칭 모션 예측에서 절대 차이의 합을 가중하는 기법이 고려된다. 템플릿 형상은 현재의 블록에 대해 정의될 수 있고, 대응하는 템플릿 형상이 타겟 블록에 대해 정의될 수 있다. 절대 차이의 합은, 현재의 블록에 대해 정의된 템플릿 형상에서의 각 픽셀의 픽셀 값들과 레퍼런스 블록에 대해 정의된 템플릿 형상에서의 각 대응하는 픽셀의 픽셀 값들 사이의 차이의 절대값이다. 현재의 블록 또는 타겟 블록에 대해 정의된 템플릿 형상들은 2개 이상의 파티션들로 각각 파티션될 수도 있다. 각 파티션에는, 각 파티션과 대응하는 블록 사이의 거리가 증가할 때 감소하는 가중치가 제공된다. 절대 차이의 합을 가중함으로써, 템플릿 매칭 예측을 수행할 때 템플릿과 비디오 블록들의 공간 관계가 고려될 수 있고, 이는 더욱 정확한 템플릿 매칭을 발생시킬 수도 있다.
본 개시물의 다른 양태에서, 계산된 템플릿 오프셋이 P-프레임들 및 B-프레임들에 적용될 때 템플릿 매칭 모션 예측에 적용된다. 템플릿 오프셋은 레퍼런스 블록과 타겟 블록 사이의 오프셋을 예측하기 위해 사용될 수도 있다. 매칭 템플릿을 탐색할 때, 레퍼런스 블록에서의 각 픽셀은, 각 픽셀이 레퍼런스 블록의 어디에 위치되는지를 정의하는 대응하는 좌표들의 세트를 가질 수도 있다. 좌표들은 탐색 위치를 나타낸다. 각 탐색 위치에 대해, 현재의 프레임의 템플릿에서의 각 픽셀의 픽셀 값과 레퍼런스 프레임에서의 각 픽셀의 픽셀 값 사이의 평균 차이가 계산될 수 있다. 전체 템플릿에 대한 픽셀 값들에서의 평균 차이가 템플릿 오프셋으로서 정의될 수 있다. 각 템플릿에 대해, 하나의 오프셋이 이러한 기법에 의해 계산될 수도 있다. 템플릿 오프셋이 계산되면, 본 개시물의 기법들은 타겟 블록의 각 픽셀 값을 취하고, 레퍼런스 블록에서의 대응하는 픽셀의 픽셀 값을 감산하며 오프셋을 더 감산함으로써 타겟 블록에 대한 절대 차이들의 합을 계산할 수도 있다. 타겟 블록의 절대 차이의 합을 오프셋 만큼 조정함으로써, 선택된 가설이 최상의 가설이어서 나머지를 감소시키고 비디오 압축을 개선시킨다는 것이 더욱 가능할 수도 있다.
본 개시물의 다른 양태는 P-프레임들 및 B-프레임들에 적용된 템플릿 매칭 예측으로 루마 잔류 (luma residual) 를 통합하는 기법을 고려한다. 이러한 경우에서, 타겟 블록은 루마 비디오 블록일 수도 있고 루마 비디오 블록은 서브-블록들로 분할될 수도 있다. 루마 블록의 제 1 서브 블록이 이용가능한 재구성된 픽셀들을 갖지 않을 때, 제 1 서브 블록에 의존하는 제 2 서브 블록의 코딩은, 제 1 서브 블록의 코딩이 완료될 때까지 지연될 수도 있거나, 제 2 서브 블록의 코딩은 모션 보상된 예측을 코딩된 루마 잔류와 결합함으로써 생성될 때의 제 1 서브 블록의 콘텐츠에 기초할 수도 있다. 모션 보상된 예측 및 코딩된 루마 잔류를 결합함으로써, 제 1 서브 블록의 생성된 콘텐츠는 원래의 데이터에 더 근접할 수도 있고, 제 2 서브 블록의 템플릿 매칭 모션 예측은 더욱 정확할 수도 있다.
일 예에서, 본 개시물은 현재의 비디오 블록을 코딩하는 방법을 설명한다. 이 방법은 템플릿 매칭 예측 비디오 코딩을 위해 가설들의 세트를 생성하는 단계를 포함하고, 여기서, 가설들의 세트에서의 가설들의 적어도 일부는 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초하고 제 2 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 2 세트에 기초하며, 가설의 세트에서의 가설들 각각은 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 예측 비디오 데이터를 포함한다. 이 방법은 가설들의 세트로부터 사설들 중 하나를 선택하는 단계, 및 비디오 코더를 통해, 가설들 중 선택된 하나에 의해 식별된 예측 비디오 데이터를 사용하여 현재의 비디오 블록을 코딩하는 단계를 더 포함한다.
다른 예에서, 본 개시물은 현재의 비디오 블록을 코딩하는 방법을 설명한다. 이 방법은 템플릿 매칭 예측 비디오 코딩을 위해 가설들의 제 1 세트를 생성하는 단계를 포함할 수도 있고, 여기서, 가설들의 제 1 세트에서의 가설들 중 적어도 일부는 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초하며, 가설들의 제 1 세트의 각 가설은 제 1 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 예측 비디오 데이터를 포함한다. 이 방법은, 템플릿 매칭 예측 비디오 코딩을 위해 가설들의 제 2 세트를 생성하는 단계를 더 포함할 수도 있고, 가설들의 제 2 세트에서의 가설들 중 적어도 일부는 제 2 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 2 세트에 기초하며, 가설들의 제 2 세트의 각 가설은 제 2 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 예측 비디오 데이터를 포함한다. 이 방법은 또한, 가설들의 제 1 세트 및 가설들의 제 2 세트에 기초하여 양방향 모션 예측을 생성하는 단계, 및 양방향 모션 예측에 기초하여 가설들의 제 3 세트를 생성하는 단계를 포함할 수도 있다. 또한, 이 방법은 가설들의 제 3 세트의 가설들 중 하나를 선택하는 단계, 및 비디오 코더를 통해, 가설들 중 선택된 하나에 의해 식별된 예측 비디오 데이터를 사용하여 현재의 비디오 블록을 코딩하는 단계를 포함할 수도 있다.
다른 예에서, 본 개시물은, 템플릿 매칭 예측 비디오 코딩을 위해 가설들의 세트를 생성하는 예측 유닛을 포함하는 비디오 코딩 장치를 설명하고, 여기서, 가설들의 세트에서의 가설들 중 적어도 일부는 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초하고, 제 2 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 2 세트에 기초하며, 가설들의 세트에서의 가설들 각각은 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 예측 비디오 데이터를 포함한다. 이러한 예에서, 예측 유닛은 가설들의 세트로부터 가설들 중 하나를 선택하고, 여기서, 비디오 코딩 장치는 가설들 중 선택된 하나에 의해 식별된 예측 비디오 데이터를 사용하여 현재의 비디오 유닛을 코딩한다.
다른 예에서, 본 개시물은 비디오 데이터를 코딩하는 비디오 코딩 장치를 설명하고, 디바이스는 템플릿 매칭 예측 비디오 코딩을 위해 가설들의 세트를 생성하는 수단을 포함하고, 여기서, 가설들의 세트에서의 가설들 중 적어도 일부는 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초하고 제 2 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 2 세트에 기초하며, 가설의 세트에서의 가설들 각각은 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 예측 비디오 데이터를 포함한다. 비디오 코딩 장치는 가설들의 세트로부터 가설들 중 하나는 선택하는 수단, 및 가설들 중 선택된 하나에 의해 식별된 예측 비디오 데이터를 사용하여 현재의 비디오 블록을 코딩하는 수단을 더 포함한다.
본 개시물에 설명된 기법들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현되면, 소프트웨어는 마이크로프로세서, 응용 주문형 집적 회로 (ASIC), 필드 프로그램가능한 게이트 어레이 (FPGA), 또는 디지털 신호 프로세서 (DSP) 와 같은 하나 이상의 프로세서들에서 실행될 수도 있다. 기법들을 실행하는 소프트웨어는 초기에는 컴퓨터 판독가능한 매체에 저장될 수도 있고 프로세서에서 로딩되고 실행될 수도 있다.
따라서, 본 개시물은 또한 하나 이상의 프로그램가능한 프로세서로 하여금 템플릿 매칭 예측 비디오 코딩을 위해 가설들의 세트를 생성하게 하는 명령들로 인코딩된 컴퓨터 판독가능한 매체를 고려하고, 여기서, 가설들의 세트에서의 가설들 중 적어도 일부는 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초하고 제 2 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 2 세트에 기초하며, 가설의 세트에서의 가설들 각각은 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 예측 비디오 데이터를 포함한다. 명령들은 하나 이상의 프로그램가능한 프로세서들로 하여금, 현재의 비디오 블록을 코딩하기 위해 가설들의 세트로부터 가설들 중 하나를 선택하게 하고, 가설들 중 선택된 하나를 사용하여 현재의 비디오 블록을 코딩하게 하는 명령들을 더 포함한다.
본 발명의 하나 이상의 실시형태들의 상세가 아래의 첨부한 도면들 및 설명에 설명된다. 본 발명의 다른 특징들, 목적들, 및 이점들은 설명 및 도면들, 및 청구범위로부터 명백해질 것이다.
도 1 은 비디오 인코딩 및 디코딩 시스템을 예시하는 예시적인 블록도이다.
도 2 는 본 개시물에 따른 비디오 인코더의 예를 예시하는 블록도이다.
도 3 은 본 개시물에 따른 예시적인 타겟 비디오 유닛 및 레퍼런스 비디오 유닛을 예시하는 개념 블록도이다.
도 4 는 본 개시물에 따른 비디오 블록의 콘텐츠가 결정되는 템플릿 매칭 모션 예측의 예를 예시하는 개념 블록도이다.
도 5 는 본 개시물에 따른 비디오 디코더의 예를 예시하는 블록도이다.
도 6a 및 도 6b 는 본 개시물에 따른 비디오 인코더에 의해 수행된 예시적인 프로세스를 예시하는 플로우차트들이다.
도 7a 및 도 7b 는 본 개시물에 따른 비디오 디코더에 의해 수행된 예시적인 프로세스를 예시하는 플로우차트들이다.
본 개시물은 비디오 유닛들의 템플릿 매칭 모션 예측 코딩에 적용가능한 비디오 코딩 기법들을 설명한다. 본 개시물에서, 용어 "코딩"은 인코딩 또는 디코딩을 칭한다. 유사하게, 용어 "코더" 는 일반적으로 임의의 비디오 인코더, 비디오 디코더, 또는 결합된 인코더/디코더 (코덱) 를 칭한다. 따라서, 용어 "코더" 는 비디오 인코딩 또는 비디오 디코딩 또는 비디오 인코딩과 비디오 디코딩 양자를 수행하는 특수화된 컴퓨터 디바이스 또는 장치를 칭하기 위해 여기에서 사용된다.
템플릿 매칭은, 모션 보상된 비디오 코딩의 이점들을 여전히 제공하면서 모션 벡터들을 제거하기 위해 사용될 수 있는 기법이다. 템플릿 매칭에서, 템플릿은 코딩되는 비디오 블록에 대한 이웃하는 픽셀들의 형상을 정의한다. 템플릿 형상은 비디오 블록에 대해 정의되고 비디오 블록에 인접하거나 둘러쌀 수도 있지만 비디오 블록에 바로 인접하여 위치되도록 요구되지 않는다. 템플릿 형상은 레퍼런스 비디오 유닛내의 하나 이상의 비디오 블록들에 적용될 수도 있다. 가설은, 템플릿 형상내에 포함된 예측 비디오 데이터에 기초할 수도 있고, 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초할 수도 있거나, 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터 및 제 2 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터에 기초할 수도 있다. 템플릿 매칭 모션 예측 동안 생성되고 고려되는 가설들을 후보 가설들이라 칭할 수도 있다. 다중의 후보 가설들이 코딩되는 각 비디오 블록에 대해 존재할 수도 있다.
본 개시물의 기법은 B-프레임 또는 P-프레임들에 적용될 때 템플릿 매칭을 개선하기 위해 적용될 수도 있는 B-프레임들에 템플릿 매칭을 적용하는 것 뿐만 아니라 여러 기법들을 포함한다. 본 개시물의 일 양태에서, 개선된 가설 선택 및 거부가 템플릿 매칭 모션 예측에 적용된다. 이러한 컨텍스트에서, 신택스 엘리먼트가, 템플릿 매칭 예측을 사용하여 비디오 데이터를 인코딩하거나 디코딩할 때 코더에 의해 사용된 가설들의 수를 디코더에 시그널링하기 위해 도입된다. 고려로부터 어느 가설들을 거부할지 결정할 때, 인코더 또는 디코더는 후보 가설을 레퍼런스 가설에 비교한다. 후보 가설과 레퍼런스 가설 사이의 차이가 소정의 임계값 보다 크면, 후보 가설이 고려로부터 거부될 수도 있다.
본 개시물의 다른 양태들에서, 절대 차이의 합을 가중하고, 계산된 템플릿 오프셋을 적용하며, 템플릿 매칭 모션 예측에서 루마 잔류를 통합하는 기법들이 고려된다. 절대 차이의 합을 가중함으로써 템플릿 매칭 예측을 수행할 때 템플릿과 비디오 블록의 특수한 관계가 고려될 수 있고, 이것은 더욱 정확한 템플릿 매칭을 발생시킬 수도 있다. 템플릿 오프셋은 레퍼런스 블록과 타겟 블록 사이의 오프셋을 예측하기 위해 사용될 수도 있다. 템플릿 오프셋이 계산되면, 본 개시물의 기법들은 타겟 블록의 각 픽셀 값을 취하고, 레퍼런스 블록에서 대응하는 픽셀의 픽셀 값을 감산하며 오프셋을 더 감산함으로써 타겟 블록에 대한 절대 차이들의 합을 계산할 수도 있다. 타겟 블록의 절대 차이의 합을 오프셋 만큼 조정함으로써, 선택된 가설이 최상의 가설이어서 나머지들을 감소시키고 비디오 압축을 개선시킨다는 것이 더욱 가능할 수도 있다. 제 1 서브 블록의 생성된 콘텐츠는, 그 콘텐츠가 모션 보상된 예측 및 코딩된 루마 잔류를 결합함으로써 생성되는 경우에 원래의 데이터에 더 근접할 수도 있고, 제 1 서브 블록에 기초하는 제 2 서브 블록의 템플릿 매칭 모션 예측이 더욱 정확할 수도 있다. 이러한 방식으로, 본 개시물의 기법들은 몇몇의 나머지 값들을 포함하는 코딩된 비디오 블록을 생성함으로써 템플릿 매칭 모션 예측을 개선할 수도 있다.
도 1 은 본 개시물의 기법들을 구현할 수도 있는 하나의 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에 도시되어 있는 바와 같이, 시스템 (10) 은 인코딩된 비디오를 통신 채널 (15) 을 통해 수신지 디바이스 (16) 로 송신하는 소스 디바이스 (12) 를 포함한다. 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 임의의 광범위한 디바이스들을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 무선 핸드셋과 같은 무선 통신 디바이스들, 소위 셀룰러 또는 위성 무선전화들, 또는 무선일 수도 있거나 무선이 아닐 수도 있는 통신 채널 (15) 을 통해 비디오 정보를 통신할 수 있는 임의의 디바이스를 포함한다. 그러나, 템플릿 매칭 예측 기법들에 관련된 본 개시물의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 제한되지는 않는다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (20), 비디오 인코더 (22), 변조기/복조기 (모뎀) (23) 및 송신기 (24) 를 포함한다. 수신지 디바이스 (16) 는 수신기 (26), 모뎀 (27), 비디오 디코더 (28), 및 디스플레이 디바이스 (30) 를 포함한다. 본 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (22) 는 B-프레임들 뿐만 아니라 P-프레임들에 템플릿 매칭 예측을 적용하도록 구성될 수도 있다. 비디오 인코더 (22) 는 본 개시물의 특정한 템플릿 매칭 모션 예측 양태들을 적용하도록 또한 구성될 수도 있다. 예를 들어, 비디오 인코더 (22) 는 비디오 데이터를 인코딩할 때 사용된 가설들의 수를 식별하도록 구성될 수도 있다. 가설들의 수는 인코딩된 비트스트림의 일부로서, 신택스 엘리먼트를 사용하여 비디오 디코더 (28) 로 시그널링될 수도 있다. 비디오 디코더 (28) 는 비디오 데이터를 디코딩할 때 사용하기 위해 가설들의 수를 식별하는 신택스 엘리먼트를 해석하고 적용하도록 구성될 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 예시이다. 본 개시물의 템플릿 매칭 예측 기법들은 템플릿 매칭을 사용하여 모션 보상된 비디오 코딩을 지원하는 임의의 코딩 디바이스에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 단지, 소스 디바이스 (12) 가 수신지 디바이스 (16) 로의 송신을 위해 코딩된 비디오 데이터를 생성하는 이러한 코딩 디바이스들의 예들이다. 일부 경우들에서, 디바이스들 (12, 16) 은 실질적으로 대칭 방식으로 동작할 수도 있어서, 디바이스들 (12, 16) 각각은 비디오 인코딩 및 디코딩 컴포넌트들을 포함한다. 따라서, 시스템 (10) 은 예를 들어, 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 또는 화상 통화를 위해 비디오 디바이스들 (12, 16) 사이에서 1-방향 또는 2-방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (20) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (archive), 또는 비디오 콘텐츠 제공자로부터의 비디오 피드를 포함할 수도 있다. 다른 대안으로서, 비디오 소스 (20) 는 소스 비디오로서 컴퓨터 그래픽 기반 데이터, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합을 생성할 수도 있다. 일부 경우들에서, 비디오 소스 (20) 가 비디오 카메라이면, 소스 디바이스 (12) 및 수신지 디바이스 (16) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 각 경우에서, 캡처되고, 사전 캡처되거나 컴퓨터 생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 그 후, 인코딩된 비디오 정보는 예를 들어, 코드 분할 다중 액세스 (CDMA) 와 같은 통신 표준 또는 통신 표준에 따라 모뎀 (23) 에 의해 변조될 수도 있고, 송신기 (24) 를 통해 수신지 디바이스 (16) 로 송신될 수도 있다. 모뎀 (23) 은 신호 변조를 위해 설계된 다양한 믹서들, 필터들, 증폭기들 또는 다른 컴포넌트들을 포함할 수도 있다. 송신기 (24) 는 증폭기들, 필터들, 및 하나 이상의 안테나들을 포함하는 데이터 송신을 위해 설계된 회로들을 포함할 수도 있다.
수신지 디바이스 (16) 의 수신기 (26) 는 채널 (15) 을 통해 정보를 수신하고, 모뎀 (27) 은 그 정보를 복조한다. 다시, 비디오 인코딩 프로세스는 여기에 설명된 기법들 중 하나 이상을 구현할 수도 있다. 채널 (15) 을 통해 통신된 정보는 본 개시물에 따라 비디오 디코더 (28) 에 의해 사용될 수도 있는 비디오 인코더 (22) 에 의해 정의된 정보를 포함할 수도 있다. 디스플레이 디바이스 (30) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 임의의 다양한 디스플레이 디바이스들을 포함할 수도 있다.
도 1 의 예에서, 통신 채널 (15) 은 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체, 또는 무선 및 유선 매체들의 임의의 조합을 포함할 수도 있다. 따라서, 모뎀 (23) 및 송신기 (24) 는 다수의 가능한 무선 프로토콜들, 유선 프로토콜들 또는 유선 및 무선 프로토콜들을 지원할 수도 있다. 통신 채널 (15) 은 하나 이상의 네트워크들의 상호접속을 포함하는 인터넷과 같은 로컬 영역 네트워크 (LAN), 광영역 네트워크 (WAN), 또는 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수도 있다. 통신 채널 (15) 은 일반적으로, 소스 디바이스 (12) 로부터 수신지 디바이스 (16) 로 비디오 데이터를 송신하는 임의의 적합한 통신 매체, 또는 상이한 통신 매체들의 집합을 나타낸다. 통신 채널 (15) 은 소스 디바이스 (12) 로부터 수신지 디바이스 (16) 로의 통신을 용이하게 하는데 유용할 수도 있는 라우터들, 스위치들, 기지국들 또는 임의의 다른 장비를 포함할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 ITU-T H.264 표준과 같은, 다르게는 MPEG-4 Part 10, Advanced Video Coding (AVC) 에 설명된 비디오 압축 표준에 따라 동작할 수도 있다. 그러나, 본 개시물의 기법들은 임의의 특정한 코딩 표준에 제한되지 않는다. 도 1 에는 도시하지 않았지만, 일부 양태들에서, 비디오 인코더 (22) 및 비디오 디코더 (28) 는 오디오 인코더 및 디코더와 각각 통합될 수도 있고, 공통 데이터 스트림 또는 개별 데이터 스트림에서 오디오 및 비디오 양자의 인코딩을 처리하기 위해 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능하면, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (U에 과 같은 다른 프로토콜들을 따를 수도 있다.
IUT-T H.264/MPEG-4 (AVC) 표준은 Joint Video Team (JVT) 으로 알려진 집단 파트너쉽의 제품으로서 ISO/IEC 동화상 전문가 그룹 (MPEG) 과 함께 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 에 의해 공식화되었다. 일부 양태들에서, 본 개시물에 설명된 기법들은 H.264 표준에 일반적으로 따르는 디바이스들에 적용될 수도 있다. H.264 표준은 H.264 표준 또는 H.264 사양, 또는 H.264/AVC 표준 또는 사양으로서 여기에서 칭할 수도 있는 2005년 3월에 ITU-T 연구 그룹에 의한 일반 시청각 서비스들을 위한 ITU-T Recommendation H.264, Advanced Video Coding 에 설명되어 있다. Joint Video Tema (JVT) 은 H.264/MPEG-4 AVC 에 대한 확장에 계속 노력하고 있다.
비디오 인코더 (22) 및 비디오 디코더 (28) 는 각각, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (DSP), 응용 주문형 집적 회로 (ASIC), 필드 프로그램가능한 게이트 어레이 (FPGA), 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들로서 구현될 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (28) 각각은, 어느 하나가 각각의 모바일 디바이스, 가입자 디바이스, 브로드캐스트 디바이스, 서버 등에서 결합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있는 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있다.
비디오 시퀀스는 통상적으로 일련의 비디오 프레임들을 포함한다. 비디오 인코더 (22) 및 비디오 디코더 (28) 는 비디오 데이터를 인코딩 및 디코딩하기 위해 개별 비디오 프레임내의 비디오 블록들에 대해 동작할 수도 있다. 비디오 블록들은 고정되거나 변하는 사이즈들을 가질 수도 있고, 특정된 코딩 방식에 따라 사이즈가 상이할 수도 있다. 각 비디오 프레임은 일련의 슬라이스들 또는 다른 독립적으로 디코딩가능한 유닛들을 포함할 수도 있다. 각 슬라이스는 서브 블록들로 배열될 수도 있는 일련의 매크로블록들을 포함할 수도 있다. 일 예로서, ITU-T H.264 표준은 루마 컴포넌트들에 대한 16×16, 8×8, 또는 4×4, 크로마 컴포넌트들에 대한 8×8 과 같은 다양한 블록 사이즈들에서의 인트라 예측 뿐만 아니라 루마 컴포넌트들에 대한 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 및 4×4 및 크로마 컴포넌트들에 대한 대응하는 스케일링된 사이즈들과 같은 다양한 블록 사이즈들에서의 인트라 예측을 지원한다. 비디오 블록들은 예를 들어, 이산 코사인 변환 또는 개념적으로 유사한 변환 프로세스에 후속하여 픽셀 데이터의 블록들, 또는 변환 계수들의 블록들을 포함할 수도 있다. 본 개시물의 일부 기법들은 서브 블록들로 파티션되는 루마 블록들 (또는 다른 타입의 블록들) 에 특히 적용될 수도 있다.
더 작은 비디오 블록들이 더 양호한 해상도를 제공할 수도 있고, 디테일의 하이 레벨들을 포함하는 비디오 프레임의 위치들에 대해 사용될 수도 있다. 일반적으로, 매크로블록들 및 다양한 서브 블록들이 비디오 블록인 것으로 고려될 수도 있다. 또한, 슬라이스가 매크로블록들 및/또는 서브 블록들과 같은 일련의 비디오 블록들인 것으로 고려될 수도 있다. 각 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수도 있다. 다르게는, 프레임들 자체는 디코딩가능한 유닛들일 수도 있거나, 프레임의 다른 부분들이 디코딩가능한 유닛들로서 정의될 수도 있다. 용어 "코딩된 유닛" 은 사용된 코딩 기법들에 따라 정의된 전체 프레임, 프레임의 슬라이스, 화상들의 그룹 (GOP), 또는 다른 독립적으로 디코딩가능한 유닛과 같은 비디오 프레임의 임의의 독립적으로 디코딩가능한 유닛을 칭한다.
(본 개시물의 템플릿 매칭 기법들을 포함할 수도 있는) 인터 기반 예측 인코딩에 후속하고, (H.264/AVC 또는 이산 코사인 변환 또는 DCT 에서 사용된 4×4 또는 8×8 정수 변환과 같은) 임의의 변환들에 후속하여, 양자화가 수행될 수도 있다. 양자화는 일반적으로, 계수들을 나타내기 위해 사용된 데이터량을 아마도 감소시키기 위해 계수들이 양자화되는 프로세스를 칭한다. 양자화 프로세스는 계수들 중 일부 또는 전부와 관련된 비트 깊이를 감소시킬 수도 있다. 예를 들어, 16 비트 값이 양자화 동안 15 비트 값으로 라운드 다운 (round down) 될 수도 있다. 양자화에 후속하여, 예를 들어, 콘텐츠 적응형 가변 길이 코딩 (CAVLC), 컨텍스트 적응형 2진 산술 코딩 (CABAC), 또는 다른 엔트로피 코딩 방법에 따라 엔트로피 인코딩이 수행될 수도 있다.
본 개시물의 기법들은 템플릿 매칭 예측에 특히 적용가능하다. 양방향 예측은 데이터의 2개의 상이한 리스트들에 기초하는 소위 "B-비디오 블록들"의 예측이다. B-비디오 블록들은 2개의 이전의 프레임들로부터의 데이터의 2개의 리스트, 후속 프레임들로부터의 데이터의 2개의 리스트들, 또는 이전의 프레임으로부터의 데이터의 하나의 리스트 및 후속 프레임으로부터의 하나로부터 예측될 수도 있다. 반대로, P-비디오 블록들은 하나의 예측 프레임, 예를 들어, 하나의 이전의 프레임 또는 하나의 후속 프레임에 대응할 수도 있는 하나의 리스트에 기초하여 예측된다. B-프레임들 및 P-프레임들은 P-유닛들 및 B-유닛들로서 더욱 일반적으로 칭한다. P-유닛들 및 B-유닛들은 또한, 프레임들의 슬라이스들 또는 프레임들의 부분들과 같은 더 작은 코딩된 유닛들로 실현될 수도 있다. B-유닛들은 B-비디오 블록들, P-비디오 블록들 또는 I-비디오 블록들을 포함할 수도 있다. P-유닛들은 P-비디오 블록들 또는 I-비디오 블록들을 포함할 수도 있다. I-유닛들은 I-비디오 블록들만을 포함할 수도 있다.
템플릿 매칭은, 모션 보상된 비디오 코딩의 이점들을 여전히 제공하면서 모션 벡터들을 제거하기 위해 사용될 수 있는 기법이다. 템플릿 매칭에서, 템플릿은 코딩되는 비디오 블록에 대한 이웃하는 픽셀들의 형상을 정의한다. 템플릿 형상은 비디오 블록에 대해 정의된다. 템플릿 형상은 비디오 블록에 인접할 수도 있거나 비디오 블록을 둘러쌀 수도 있다. 그러나, 템플릿은 비디오 블록에 바로 인접하여 위치되도록 요구되지 않는다. 즉, 비디오 블록의 하나 이상의 픽셀들이 템플릿 형상의 가장 근접한 에지와 비디오 블록 사이에 존재할 수도 있다.
일 예에서, 가설은 템플릿 형상내에 포함된 예측 비디오 블록에 기초할 수도 있다. 템플릿 형상은 레퍼런스 비디오 유닛내의 하나 이상의 비디오 블록들에 적용될 수도 있다. 가설은 레퍼런스 비디오 유닛내의 예측 비디오 데이터의 블록에 대해 정의되는 레퍼런스 비디오 유닛에서의 대응하는 템플릿 형상을 칭한다. 가설은 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초할 수도 있다. 가설은 또한, 제 1 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 1 세트에 기초할 수도 있고, 제 2 예측 비디오 유닛의 적어도 일부로부터의 예측 비디오 데이터의 제 2 세트에 기초할 수도 있다. 템플릿 매칭 모션 예측 동안 생성되고 고려되는 가설들을 후보 가설들로서 칭할 수도 있다. 다중의 후보 가설들이 코딩되는 각 비디오 블록에 대해 존재할 수도 있다.
(코딩되는 비디오 블록 자체 보다는) 코딩되는 비디오 블록과 관련된 템플릿에 의해 정의된 데이터가 이전 또는 후속 비디오 유닛내의 대응하는 템플릿의 데이터에 비교될 수 있다. 이 비교에 기초하여, 템플릿 매칭 모션 예측 알고리즘은 후보 가설들의 세트로부터 최상의 가설을 식별한다. 레퍼런스 비디오 유닛에서의 다중의 가설들이, 레퍼런스 비디오 유닛에서의 가장 근접하게 매칭된 가설이 발견되는 더 높은 가능성을 생성하기 위해 코딩 프로세스 동안 고려될 수도 있다. 가장 근접하게 매칭된 가설에 대응하는 비디오 블록은 현재의 비디오 블록에 대한 가장 근접한 비디오 블록일 수도 있고, 따라서, 결과적인 코딩된 비디오 블록은 몇몇 잔류 값들을 포함할 수도 있다. 현재의 비디오 블록은 코딩되는 비디오 블록이고, 타겟 비디오 블록으로서 또한 칭할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (28) 는 모션 벡터를 사용하지 않고 모션을 식별하기 위해 템플릿 매칭 프로세스를 수행할 수도 있다. 따라서, 템플릿 매칭으로, 모션 벡터들은 비트스트림으로 코딩되지 않는다. 오히려, 모션 벡터들은 비디오 유닛이 인코딩되고 디코딩될 때 템플릿 매칭 프로세스로부터 본질적으로 유도된다.
도 2 는 본 개시물에 따른 템플릿 매칭 모션 예측 기법들 및 벡터 기반 모션 예측 기법들 양자를 수행할 수도 있는 비디오 인코더 (40) 의 예를 예시하는 블록도이다. 비디오 인코더 (40) 는 여기에서 "코더" 로 칭하는 특수 비디오 컴퓨터 디바이스 또는 장치의 일 예이다. 비디오 인코더 (40) 는 소스 디바이스 (12) 의 비디오 인코더, 또는 다른 디바이스의 비디오 인코더에 대응할 수도 있다. 비디오 인코더 (40) 는, 인트라 코딩 컴포넌트들이 예시의 용이함을 위해 도 2에 도시되지 않았지만 비디오 프레임들내의 블록들의 인트라 및 인터 코딩을 수행할 수도 있다. 인트라 코딩은 소정의 비디오 프레임내의 비디오에서 공간 리던던시를 감소시키거나 제거하기 위해 공간 예측에 의존한다. 인터 코딩은 비디오 시퀀스의 인접 프레임들내의 비디오에서 시간 리던던시를 감소시키거나 제거하기 위해 시간 예측에 의존한다. 인트라 모드 (I-모드) 는 공간 기반 압축 모드를 칭할 수도 있고, 예측 (P-모드) 또는 양방향 (B-모드) 과 같은 인터 모드들은 시간 기반 압축 모드들을 칭할 수도 있다. B-모드를 사용하여 인코딩된 유닛들은 2개의 프레임을 참조하여 인코딩된다. H.264 및 다른 표준들에서, B-프레임, 또는 다른 유닛은 2개의 시간적으로 인접한 프레임들을 참조하여 인코딩될 수도 있다. 예를 들어, 인코딩될 현재의 유닛이 프레임 (N) 에 상주하면, 프레임들 (N-1 및 N-2) 은 현재의 유닛을 인코딩하기 위해 레퍼런스 프레임으로서 사용될 수도 있다. 다른 예에서, 프레임들 (N+1 및 N+2) 은 현재의 유닛을 인코딩하기 위해 레퍼런스 프레임으로서 사용될 수도 있다. 일부 경우들에서, 적어도 하나의 시간적으로 장래의 프레임 (예를 들어, 프레임 (N+1)) 및 적어도 하나의 시간적으로 이전의 프레임 (예를 들어, 프레임 (N-1)) 은 프레임 (N) 에 상주하는 현재의 유닛을 인코딩하기 위해 사용될 수도 있다. 여러 번, 이전 또는 후속 프레임들의 일부만이 인코딩하는데 실제로 고려되거나 사용된다.
도 2 에 도시되어 있는 바와 같이, 비디오 인코더 (40) 는 인코딩될 비디오 유닛내의 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (40) 는 템플릿 매칭 모션 추정 (TM ME) 유닛 (43) 및 템플릿 매칭 모션 보상 (TM MC) 유닛 (45) 을 포함하는 템플릿 매칭 예측 유닛 (42) ("TM 예측 유닛 (42)") 을 포함한다. 비디오 인코더는 또한, 메모리 (44), 가산기 (46), 변환 유닛 (48), 양자화 유닛 (50), 및 엔트로피 코딩 유닛 (52) 을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더 (40) 는 또한 역양자화 유닛 (54), 역변환 유닛 (56), 및 가산기 (58) 를 포함한다. 비디오 인코더 (40) 는 또한, 블록 경계들을 필터링하여 재구성된 비디오로부터 블록왜곡도 장애물을 제거하기 위한 디블록킹 필터 (deblocking filter) (미도시) 를 포함할 수도 있다. 원하는 경우에, 디블록킹 필터는 통상적으로 가산기 (58) 의 출력을 필터링한다. 도 2 에는 도시하지 않았지만, 비디오 인코더 (40) 는 또한 벡터 기반 모션 예측 기법들을 수행하는 예측 유닛을 포함할 수도 있다. 예측 유닛은 현재의 비디오 블록을 코딩하기 위해 사용된 타겟 블록들을 식별하기 위해 사용될 수도 있는 신택스 엘리먼트들을 포함하는 예측 모드들 및 모션 벡터들을 생성할 수도 있다. 예측 유닛은 모션 추정 및 모션 보상 유닛을 포함할 수도 있다.
인코딩 프로세스 동안, 비디오 인코더는 코딩될 비디오 블록을 수신하고, TM ME 유닛 (43) 및 TM MC 유닛 (45) 은 인터 예측 코딩을 수행한다. TM MC 유닛 (43) 및 TM MC 유닛 (45) 은 고도로 통합될 수도 있지만, 개념적 목적을 위해 개별적으로 예시된다. 모션 추정은 통상적으로 비디오 블록에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스로 고려된다. 예를 들어, 모션 벡터는 현재의 프레임내에서 코딩되는 현재의 블록 (또는 다른 코딩된 유닛) 에 대한 예측 프레임내의 예측 블록 (또는 다른 코딩된 유닛) 의 변위를 나타낼 수도 있다. 모션 보상은 통상적으로, 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치 (fetch) 하거나 생성하는 프로세스로 고려된다. 다시, TM ME 유닛 (43) 및 TM MC 유닛 (45) 은 기능적으로 통합될 수도 있다. 설명 목적을 위해, 본 개시물에 설명된 기법들은 TM 예측 유닛 (42) 에 의해 수행되는 것으로 설명된다.
일 예에서, TM 예측 유닛 (42) 은 현재의 비디오 블록, 예를 들어, 타겟 비디오 블록을 인코딩하기 위해 템플릿 매칭 모션 예측을 적용한다. 일 예로서, TM 예측 유닛 (42) 은 코딩된 타겟 블록에 대해 정의된 템플릿 형상내의 픽셀들을 이전 및/또는 후속 비디오 유닛의 대응하는 데이터에 비교할 수도 있다. 템플릿 매칭 모션 예측을 적용할 때, TM 예측 유닛 (42) 은 (리스트 0 으로 칭할 수도 있는) 비디오 유닛들의 제 1 세트로부터 이전의 비디오 유닛 또는 장래의 비디오 유닛을 선택할 수도 있고, 리스트 0 으로부터의 이러한 이전의 또는 장래의 비디오 유닛만을 사용하여 가설들의 세트를 결정할 수도 있다. 다르게는, TM 예측 유닛 (42) 은 (리스트 1 로 칭할 수도 있는) 비디오 유닛들의 제 2 세트로부터 이전의 또는 장래의 비디오 유닛을 선택할 수도 있고, 리스트 1 로부터의 이러한 이전의 또는 장래의 비디오 유닛만을 사용하여 가설들의 세트를 결정할 수도 있다.
B-프레임들에 대한 템플릿 매칭을 가능하게 하기 위해, 하나 또는 2개의 가설 세트들이 B-프레임에 대해 사용될 수도 있다. 하나의 가설 세트가 사용되면, 가설 세트는 리스트 0 및 리스트 1 양자로부터 발견된 가설들을 포함할 수도 있다. 2개의 가설 세트들이 사용되면, 하나의 가설 세트가 리스트 1 로부터 발견된 가설들을 포함할 수도 있고 다른 가설 세트가 리스트 0 으로부터 발견된 가설들을 포함할 수도 있다. 또한, 제 3 가설 세트가 양방향 모션 예측으로부터 형성될 수도 있고, 여기서, 리스트 0 으로부터의 데이터 및 리스트 1 로부터의 데이터가 가능하면 제 3 가설 세트의 데이터를 정의하기 위해 가중 방식으로 예측을 위해 사용된다. 임의의 소정의 리스트에 대한 가설들의 세트는 코딩되는 비디오 블록에 가장 유사한 바람직한 예측 비디오 블록을 식별하는 하나의 특정한 가설을 포함할 수도 있다. 절대 차이들의 합 (SAD) 또는 제곱 차이의 합 (SSD) 과 같은 메트릭이 최상의 가설을 찾기 위해 사용될 수도 있고, 그 결과 최상의 가설은 코딩을 위해 사용되어야 하는 예측 비디오 블록을 식별한다.
TM 예측 유닛 (42) 은 인코딩 프로세스 동안 생성된 가설들의 세트로부터 하나 이상의 가설들을 선택한다. 일 예에서, 신택스 엘리먼트가 템플릿 매칭 모션 예에 사용된 가설들의 수를 시그널링하기 위해 도입된다. 이러한 예에서, 2개의 상이한 가설 수들, 예를 들어,
Figure 112014046262997-pat00001
Figure 112014046262997-pat00002
가 이용가능할 수도 있다.
Figure 112014046262997-pat00003
은 타겟 블록을 인코딩 및 디코딩할 때 사용될 수도 있는 가설들의 제 1 수를 나타내고,
Figure 112014046262997-pat00004
는 타겟 블록을 인코딩 및 디코딩할 때 사용될 수도 있는 가설들의 제 2 수, 예를 들어, 최대수를 나타낸다. 예를 들어,
Figure 112014046262997-pat00005
은 4 일 수도 있고
Figure 112014046262997-pat00006
는 8 일 수도 있다. 타겟 블록을 인코딩하는데 사용하기 위한 가설들의 수를 결정하기 위해, TM 예측 유닛 (42) 은
Figure 112014046262997-pat00007
개의 가설들에 기초하여 예측 비디오 데이터의 제 1 세트 및
Figure 112014046262997-pat00008
개의 가설들에 기초하여 예측 비디오 데이터의 제 2 세트를 생성할 수도 있다. TM 예측 유닛 (42) 은 모든 가능한 가설들의 세트로부터
Figure 112014046262997-pat00009
개의 최상의 가설들을 포함하는 가설들의 서브세트를 식별함으로써 예측 비디오 데이터의 제 1 세트를 생성할 수도 있다. 소정의 서브세트내의 최상의 가설들은 코딩되는 타겟 비디오 블록에 대해 정의된 템플릿 형상내의 비디오 데이터에 가장 근접하게 매칭하는 가설들일 수도 있다. 예를 들어, 절대 차이의 합 (SAD) 또는 제곱 차이의 합 (SSD) 이 소정의 서브세트를 정의하기 위해 최상의 가설들을 정의하도록 적용될 수도 있다. TM 예측 유닛 (42) 은 가설들의 서브세트에서의 가설들 각각에 대응하는 레퍼런스 비디오 블록들을 식별할 수도 있고 식별된 레퍼런스 비디오 블록들에서 동일한 상대적 위치를 갖는 각 픽셀에 대한 픽셀값들을 평균할 수도 있다. TM 예측 유닛 (42) 은 실질적으로 동일한 방식으로
Figure 112014046262997-pat00010
개의 가설들에 기초하여 예측 비디오 데이터의 제 2 세트를 생성할 수도 있다. 이러한 예에서, 레퍼런스 블록들에서의 각 픽셀에 대한 평균 픽셀 값이
Figure 112014046262997-pat00011
및/또는
Figure 112014046262997-pat00012
개의 가설들과 관련된 예측 비디오 데이터의 세트들을 생성하기 위해 계산되지만, 다른 수학적 계산들 및 메트릭들이
Figure 112014046262997-pat00013
및/또는
Figure 112014046262997-pat00014
개의 가설들과 관련된 예측 데이터의 상이한 세트들을 조합하기 위해 사용될 수도 있다.
TM 예측 유닛 (42) 이 예측 비디오 데이터의 제 1 및 제 2 세트들 중 적어도 하나를 생성한 이후에, TM 예측 유닛 (42) 은 예측 비디오 데이터의 제 1 또는 제 2 세트를 사용할 때 타겟 블록을 인코딩하는 비용을 결정하기 위해 라그랑주 (Lagrangian) 승수를 적용할 수도 있다. 비용을 결정하기 위해, TM 예측 유닛 (42) 은
Figure 112014046262997-pat00015
으로서 정의되는 비용 함수를 사용하고, 여기서, C 는 비용이고, D 는 왜곡이고,
Figure 112014046262997-pat00016
는 라그랑주 승수이며, R 은 인코딩 레이트이다. TM 예측 유닛 (42) 은 최저의 레이트 왜곡 비용을 궁극적으로 산출하는 가설들의 수를 선택하고, 새로운 신택스 엘리먼트를 통해 타겟 프레임을 인코딩하는데 있어서 TM 예측 유닛 (42) 에 의해 사용되는 가설들의 수를 식별할 수도 있다. 너무 많은 가설들이 고려될 때, 템플릿 매칭의 코딩 효율이 손상을 받을 수도 있다. 타겟 블록을 인코딩할 때 더 낮은 비용을 발생시키는 가설의 수를 시그널링하기 위해 신택스 엘리먼트를 통합함으로써, 더 바람직한 수의 가설들이 인코딩 및 디코딩 동안 고려될 수도 있어서, 템플릿 매칭의 전체 코딩 효율을 개선시킨다.
본 개시물의 일 양태에서, TM 예측 유닛 (42) 은 또한 개선된 가설 거부 기법을 사용하여 가설들을 거부할 수도 있다. 이러한 기법에서, 고려중인 각 가설은 레퍼런스 가설에 비교된다. 레퍼런스 가설은 고려중인 최상의 가설들의 서브세트 또는 사설들 모두의 픽셀 값들을 평균함으로써 생성될 수도 있다. 고려중인 가설과 레퍼런스 가설 사이의 차이가 임계값 보다 크면, 고려중인 가설은 고려로부터 제거될 수도 있다. 차이는 예를 들어, 후술되는 절대 차이들의 가중합 (WSAD), 또는 고려중인 가설의 픽셀들의 SAD 에 기초하여 계산될 수도 있다. 가설들은 어느 가설들이 거부되거나 선택되는지 디코더에 시그널링하지 않고 거부되거나 선택될 수도 있다.
본 개시물의 다른 양태에 따르면, SAD 는 가설 선택을 개선하기 위해 가중될 수도 있다. SAD 는 현재의 블록에서의 각 픽셀의 픽셀 값과 레퍼런스 블록에서의 대응하는 픽셀 사이의 차이의 절대값의 합이다. 현재의 블록의 템플릿 및 레퍼런스 블록의 템블릿은 K 개의 부분들로 파티션될 수도 있다. 도 3 에 도시되어 있는 바와 같이, 타겟 비디오 유닛 (62) 은 타겟 블록 (64) 및 타겟 블록 템플릿 (66) 을 포함하고, 레퍼런스 비디오 유닛 (68) 은 레퍼런스 블록 (70) 및 레퍼런스 블록 템플릿 (72) 을 포함한다. 이러한 예에서, 타겟 블록 템플릿 (66) 및 레퍼런스 블록 템플릿 (72) 은 4개의 템플릿 파티션들로 각각 파티션된다. 타겟 블록 템플릿 (66) 또는 레퍼런스 블록 템플릿 (72) 의 각 특정한 템플릿 파티션에 제공된 가중치는, 각 템플릿 파티션과 타겟 블록 (64) 또는 레퍼런스 블록 (70) 사이의 거리가 증가할 때 감소할 수도 있다. 절대 차이들의 가중합(WSAD) 은,
Figure 112014046262997-pat00017
로서 정의되고, 여기서,
Figure 112014046262997-pat00018
는 K번째 템플릿 파티션에 대한 가중값이고,
Figure 112014046262997-pat00019
는 레퍼런스 블록과 관련된 K번째 템플릿 파티션이고,
Figure 112014046262997-pat00020
는 타겟 블록과 관련된 K번째 템플릿 파티션이고,
Figure 112014046262997-pat00021
는 템플릿 파티션 (k) 에서의 픽셀들의 수이며, K 는 타겟 블록과 관련된 템플릿 및 레퍼런스 블록과 관련된 템플릿이 각각 분할되는 파티션들의 수이다.
TM 예측 유닛 (42) 은 또한, 레퍼런스 블록과 타겟 블록 사이의 오프셋을 예측하기 위해 계산된 템플릿 오프셋을 적용하여 비디오 인코딩의 품질을 개선시킬 수도 있다. 템플릿 형상에 의해 정의된 최상의 매칭 가설을 탐색할 때, TM 예측 유닛 (42) 은 아래의 공식,
Figure 112014046262997-pat00022
을 사용하여 타겟 블록에 대해 정의된 템플릿내의 각 픽셀의 픽셀 값과 후보 가설에서의 각 픽셀의 픽셀 값 사이의 평균 차이를 계산할 수도 있고, 여기서,
Figure 112014046262997-pat00023
는 후보 가설에서의 픽셀의 픽셀 값이고,
Figure 112014046262997-pat00024
는 타겟 블록에 대해 정의된 템플릿에서 픽셀의 픽셀 값이고, K 는 타겟 블록에 대해 정의된 템플릿에서 픽셀들의 수이며, 오프셋은 후보 가설의 픽셀들과 타겟 블록에 대해 정의된 템플릿 사이의 픽셀 값에서의 평균 차이이다. 픽셀 값들에서의 이러한 평균 차이는 템플릿 오프셋으로서 알려져 있다. 잠재적 가설들의 세트의 각 후보 가설에 대해, TM 예측 유닛 (42) 은 하나의 이러한 오프셋을 계산할 수도 있다.
템플릿 오프셋이 특정한 후보 가설에 대해 계산되면, TM 예측 유닛 (42) 은 후보 가설의 각 픽셀 값을 취하고, 레퍼런스 템플릿에서 대응하는 픽셀의 픽셀 값을 감산하며, 오프셋을 더 감산함으로써 후보 가설에 대한 절대 차이들의 합을 계산할 수도 있다. 후보 가설의 절대 차이들의 합은,
Figure 112014046262997-pat00025
으로서 정의되고, 여기서,
Figure 112014046262997-pat00026
는 후보 가설에서의 픽셀의 픽셀 값이고,
Figure 112014046262997-pat00027
는 타겟 블록에 대해 정의된 템플릿에서 픽셀의 픽셀 값이고, K 는 후보 가설에서 픽셀들의 수이며, 오프셋은 후보 가설의 픽셀들과 타겟 블록에 대해 정의된 템플릿의 픽셀들 사이의 픽셀 값에서의 평균 차이이다. 획득된 템플릿 오프셋은 타겟 블록의 오프셋인 것으로 가정된다. 템플릿 오프셋을 고려함으로써, 타겟 블록의 모션 보상된 예측은,
Figure 112014046262997-pat00028
으로서 표현될 수 있고,
여기서 B' 는 타겟 블록의 모션 보상된 예측이고, P 는 레퍼런스 블록에서 픽셀의 픽셀 값이며, 오프셋은 이전에 계산될 때 템플릿에 대한 평균 오프셋이다. 템플릿 오프셋 만큼 타겟 블록의 절대 차이의 합을 조정함으로써, 선택된 가설들이 실제로 최상의 가설들이어서 잔류들을 감소시키고 저장되어야 하는 정보의 양을 감소시키는 것이 더욱 가능할 수도 있다.
도 4 에서, 템플릿 (74) 은 타겟 서브 블록 (76) 에 대해 정의되고 서브 블록 (78) 의 일부를 오버레이하고, 여기서, 서브 블록 (76) 및 서브 블록 (78) 은 동일한 비디오 블록의 파티션들이다. 서브 블록 (78) 이 이용가능한 재구성된 픽셀들을 갖지 않으면, 서브 블록 (78) 의 콘텐츠는 예를 들어, 모션 보상된 예측 결과를 사용함으로써 결정될 수도 있다. 서브 블록 (78) 의 콘텐츠가 모션 보상된 예측 결과를 사용함으로써 결정되면, 타겟 서브 블록 (76) 의 모션 보상의 정확도는, 서브 블록 (78) 의 모션 보상된 예측 결과가 원래의 데이터와 현저하게 다를 수도 있기 때문에 손상을 받을 수도 있다. 서브 블록 (78) 이 이용가능한 재구성된 픽셀들을 갖지 않을 때 타겟 서브 블록 (76) 의 모션 예측의 정확도를 개선하기 위해, TM 예측 유닛 (42) 은 서브 블록 (78) 이 타겟 서브 블록 (76) 을 코딩하기 이전에 코딩될 때까지 대기할 수도 있다. 서브 블록 (78) 이 코딩될 때까지 대기함으로써, 서브 블록 (78) 의 콘텐츠는 원래의 데이터에 더 근접하고, 타겟 서브 블록 (76) 의 템플릿 매칭 모션 예측이 더 정확해질 수 있다.
일 예에서, 서브 블록 (76) 및 서브 블록 (78) 은 루마 비디오 블록의 서브 블록들이다. 일반적으로, 루마 비디오 블록은 비디오 블록내의 픽셀들에 대한 루마 값들의 16×16 블록이다. 루마 비디오 블록은 예를 들어, 다중의 8×8, 8×4, 또는 4×4 픽셀 서브 블록들로 파티션될 수도 있다. 서브 블록 (78) 의 콘텐츠를 결정하기 위해, TM 예측 유닛 (42) 은 서브 블록 (78) 에 대한 루마 잔류 및 모션 보상된 예측을 먼저 계산한다. 모션 보상된 예측은 레퍼런스 비디오 유닛에서 대응하는 서브 블록의 픽셀 값들을 포함한다. 루마 잔류는 서브 블록 (78) 및 레퍼런스 비디오 유닛에서의 대응하는 서브 블록의 루마 값들에서의 차이이다. 그 후, TM 예측 유닛 (42) 은 모션 보상된 예측 및 코딩된 루마 잔류를 코딩된 루마 결과들로 조합하여 서브 블록 (78) 의 콘텐츠를 결정한다. TM 예측 유닛 (42) 이 서브 블록 (78) 의 콘텐츠를 결정하면, 픽셀 값들은 템플릿 (74) 에 대해 이용가능하고 TM 예측 유닛 (42) 은 서브 블록 (76) 에 대한 템플릿 매칭 모션 예측을 수행하는 것으로 진행할 수도 있다.
도 5 는 P-프레임들 및 B-프레임들에 템플릿 매칭 모션 예측을 적용하고, 신택스 엘리먼트에 의해 정의된 가설 수를 적용하고, WSAD 를 계산하여 적용하고/하거나 템플릿 오프셋을 계산하여 적용하는 것과 같은, 상술한 인코딩 기법들에 대한 상반 디코딩 기법들을 수행할 수도 있는 비디오 디코더 (80) 의 예를 예시하는 블록도이다. 비디오 디코더 (80) 는 엔트로피 디코딩 유닛 (82), 템플릿 매칭 (TM) 예측 유닛 (84), 역양자화 유닛 (86), 역변환 유닛 (88), 메모리 (90) 및 가산기 (92) 를 포함할 수도 있다. TM 예측 유닛 (84) 은 템플릿 매칭 모션 추정 (TM ME) 유닛 (85), 템플릿 매칭 모션 보상 (TM MC) 유닛 (87), 뿐만 아니라 간략화 및 설명의 용이함을 위해 도시되지 않은 공간 예측 컴포넌트들을 포함할 수도 있다.
일반적으로, 엔트로피 디코딩 유닛 (82) 은 인코딩된 비트스트림을 수신하고 비트스트림을 디코딩하여 양자화된 계수들 및 다른 신택스 엘리먼트들을 생성한다. 예측 유닛 (84) 은 본 개시물에 따른 템플릿 매칭 모션 예측을 수행할 수도 있다. 신택스 엘리먼트들은 인코딩된 비디오 유닛을 인코딩할 때 비디오 인코더에 의해 고려되는 가설들의 수를 특정하는 정보를 포함할 수도 있다. TM 예측 유닛 (84) 은 디코딩 프로세스 동안 사용된 가설들의 수를 신택스 엘리먼트에 의해 식별된 가설들의 수에 제한함으로써 비디오 유닛을 디코딩할 때 식별된 가설들의 수를 고려할 수도 있다. 신택스 엘리먼트에 의해 식별된 가설들의 수를 사용하여 인코딩된 비디오 유닛을 디코딩할 때, TM 예측 유닛 (84) 은 모든 가능한 가설들의 세트로부터 신택스 엘리먼트에 의해 식별된 최상의 가설들의 수를 포함하는 가설들의 서브세트를 식별함으로써 예측 비디오 데이터의 세트를 생성할 수도 있다. 소정의 서브세트내의 최상의 가설들은 코딩되는 타겟 블록에 대해 정의된 템플릿 형상내의 비디오 데이터에 가장 근접하게 매칭하는 가설들일 수도 있다. 예를 들어, SAD 또는 SSD 가 소정의 서브세트를 정의하기 위해 최상의 가설들을 결정하는데 적용될 수도 있다. TM 예측 유닛 (84) 은 가설들의 서브세트에서 가설들 각각에 대응하는 레퍼런스 비디오 블록들을 식별할 수도 있고, 식별된 레퍼런스 비디오 블록들에서 동일한 상대적 위치를 갖는 각 픽셀에 대한 픽셀 값들을 평균할 수도 있다. 이러한 예에서, 페퍼런스 블록들에서 각 픽셀에 대한 평균 픽셀 값이 신택스 엘리먼트에 의해 식별된 가설들의 수와 관련된 예측 비디오 데이터의 세트를 생성하기 위해 계산되지만, 다른 수학적 계산들 또는 메트릭들이 사용될 수도 있다. 일반적으로, 인코더에 의해 사용된 동일한 수학적 계산이 디코더에 의해 또한 사용된다. 이러한 방식으로, TM 예측 유닛 (84) 은 인코딩된 비디오 블록을 디코딩하기 위해 예측 비디오 데이터의 세트를 생성한다.
양자화된 계수들은 엔트로피 디코딩 유닛 (82) 으로부터 역양자화를 수행하는 역양자화 유닛 (86) 으로 전송된다. 그 후, 역변환 유닛 (88)은 역양자화된 계수들을 픽셀 도메인으로 역으로 역변환하여 잔류 블록을 생성한다. 가산기 (92) 는 TM 예측 유닛 (84) 에 의해 생성된 예측 데이터의 세트를 역변환 유닛 (88) 으로부터의 잔류 블록과 조합하여 메모리 (90) 에 저장될 수도 있고/있거나 디코딩된 비디오 출력으로서 비디오 디코더 (80) 로부터 출력될 수도 있는 재구성된 비디오 블록을 생성한다.
도 6a 및 도 6b 는 본 개시물에 따른 비디오 인코더에 의해 수행된 예시적인 프로세스를 예시하는 플로우차트들이다. 도 6a 및 도 6b 는 도 2 의 비디오 인코더 (40) 의 관점으로부터 설명된다. 도 6a 에 도시되어 있는 바와 같이, TM 예측 유닛 (42) 은 레퍼런스 리스트들을 생성한다 (100). 레퍼런스 리스트들은 하나 이상의 레퍼런스 비디오 유닛들로부터의 비디오 정보를 포함할 수도 있다. 레퍼런스 비디오 유닛들은 타겟 비디오 블록을 포함하는 비디오 유닛에 대해 이전에 또는 이후에 발생할 수도 있다. 그 후, TM 예측 유닛 (42) 은 타겟 비디오 블록을 선택하고 (102) 타겟 블록에 대한 템플릿 형상을 정의한다. 타겟 블록이 루마 블록의 서브 블록이고, 템플릿 형상의 일부 부분이 이용가능한 재구성된 픽셀들을 갖지 않으면 (104 에서 아니오), TM 예측 유닛 (42) 은 이용가능한 재구성된 픽셀들을 갖지 않은 템플릿 형상의 부분과 관련된 서브 블록 파티션 콘텐츠를 생성한다 (106). 특히, 서브 블록 파티션 콘텐츠는 루마 잔류를 서브 블록 파티션의 모션 보상된 예측과 조합함으로써 생성될 수도 있다. 서브 블록 파티션 콘텐츠가 생성되거나 (106) 재구성된 픽셀들이 타겟 블록과 관련된 전체 템플릿에 대해 이용가능하면 (104 에서 예), TM 예측 유닛 (42) 은 타겟 블록과 관련된 템플릿 및 레퍼런스 리스트들에 기초하여 하나 이상의 가설들 세트들을 생성한다 (108).
가설들의 세트의 각 가설에 대해, TM 예측 유닛 (42) 은 타겟 블록에 대해 정의된 템플릿 형상에서의 각 픽셀 값과 가설들의 세트로부터의 후보 가설에서의 각 픽셀의 픽셀 값 사이의 평균 차이를 계산함으로써 템플릿 오프셋을 계산한다 (110). 그 후, TM 예측 유닛 (42) 은 각 가설에 대한 절대 차이들의 가중된 합을 계산할 수도 있다 (112). 일 예에서, TM 예측 유닛 (42) 은 계산된 픽셀 값들을 가중 팩터에 의해 승산함으로써 템플릿 오프셋에 기초하여 계산된 픽셀 값들을 사용하여 WSAD 를 계산하여, 가중 팩터는 비디오 블록과 템플릿 파티션 사이의 거리가 증가할 때 감소한다. 다른 예에서, TM 예측 유닛 (42) 은 계산된 픽셀 값들을 가중 팩터에 의해 승산함으로써 WSAD 를 계산하여 가중 팩터는 비디오 블록과 템플릿 파티션 사이의 거리가 증가할 때 감소하지만 템플릿 오프셋에 기초하여 픽셀 값들을 조정하지 않는다. TM 예측 유닛 (42) 은 가중 팩터를 제거함으로써 WSAD 보다는 SAD 를 계산할 수도 있다. WSAD 또는 SAD 를 계산하는데 있어서, TM 예측 유닛 (42) 은 계산된 템플릿 오프셋을 통합할 수도 있다. 템플릿 오프셋 및 WSAD 또는 SAD 가 계산되면, TM 예측 유닛 (42) 은 일 예에서, 고려중인 가설들 모두를 평균하거나, 다른 예에서, 고려중인 최상의 가설들의 서브세트를 평균함으로써 레퍼런스 가설을 생성할 수도 있다 (114).
도 6b 를 참조하면, 그 후, TM 예측 유닛 (42) 은 계산을 위해 이용가능한 가설들 중 하나를 선택할 수도 있고 (116), 고려되는 가설 (
Figure 112014046262997-pat00029
)과 레퍼런스 가설 (
Figure 112014046262997-pat00030
) 사이의 차이를 계산하고, 값에서의 차이를 임계값 (T) 에 비교한다 (118). 고려되는 가설 (
Figure 112014046262997-pat00031
)과 레퍼런스 가설 (
Figure 112014046262997-pat00032
) 사이의 이러한 차이는 고려되는 가설 (
Figure 112014046262997-pat00033
)과 레퍼런스 가설 (
Figure 112014046262997-pat00034
) 의 각 픽셀 사이의 절대 차이의 합을 포함할 수도 있다. 이러한 차이 (즉, 고려중인 가설과 레퍼런스 가설의 픽셀들의 SAD) 가 임계값 (T) 보다 크면 (118 의 예), 그 가설은 고려로부터 제거될 수도 있다 (120). 그러나,
Figure 112014046262997-pat00035
의 픽셀들과
Figure 112014046262997-pat00036
의 픽셀들 사이의 차이가 T 보다 작으면 (118 의 아니오), 또는
Figure 112014046262997-pat00037
가 고려로부터 제거된 이후에 (120), TM 예측 유닛 (42) 은 고려중인 가설들의 세트에 남아 있는 임의의 가설들이 존재하는지를 결정한다 (122). 가설들이 남아 있으면, TM 예측 유닛 (42) 은 고려를 위해 새로운 가설을 선택하고 (116), 고려중인 가설과 이전에 생성된 레퍼런스 가설 사이의 값에서의 차이가 임계값 보다 큰지를 결정한다 (118). 아직 고려되지 않은 고려를 위해 이용가능한 가설들이 더 이상 존재하지 않으면 (122 에서 아니오), TM 예측 유닛 (42) 은 제 1 수의 가설들이 인코딩을 위해 사용될 때 타겟 비디오 블록의 인코딩과 관련된 비용 및 가설들의 세트로부터의 제 2 수의 가설들이 인코딩을 위해 사용될 때 타겟 비디오 블록의 인코딩과 관련 비용을 계산함으로써 가설 수를 선택한다 (124).
타겟 블록을 인코딩하는데 사용하기 위한 가설들의 수를 선택하기 위해 (124), TM 예측 유닛 (42) 은 제 1 수의 가설에 기초하여 예측 비디오 데이터의 제 1 세트 및 제 2 수의 가설들에 기초하여 예측 비디오 데이터의 제 2 세트를 생성할 수도 있다. TM 예측 유닛 (42) 은 모든 가능한 가설들의 세트로부터 제 1 수의 최상의 가설들을 포함하는 가설들의 서브세트를 식별함으로써 예측 비디오 데이터의 제 1 세트를 생성할 수도 있다. 그 후, TM 예측 유닛 (42) 은 가설들의 서브세트에서 가설들 각각에 대응하는 레퍼런스 비디오 블록들을 식별할 수도 있고, 식별된 레퍼런스 비디오 블록들에서 동일한 상대적 위치를 갖는 각 픽셀에 대한 픽셀 값들을 평균할 수도 있다. TM 예측 유닛 (42) 은 실질적으로 동일한 방식으로 제 2 수의 가설들에 기초하여 예측 비디오 데이터의 제 2 세트를 생성할 수도 있다. TM 예측 유닛 (42) 이 예측 비디오 데이터의 제 1 및 제 2 세트들을 생성한 이후에, TM 예측 유닛 (42) 은 예측 비디오 데이터의 제 1 또는 제 2 세트를 사용할 때 타겟 블록을 인코딩하는 레이트 왜곡 비용을 결정한다. TM 예측 유닛 (42) 은 최저의 레이트 왜곡 비용을 궁극적으로 산출하는 가설들의 수를 선택한다.
그 후, TM 예측 유닛 (42) 은 선택된 가설 수에 대한 신택스 엘리먼트를 생성한다 (126). 신택스 엘리먼트는 타겟 블록을 인코딩할 때 제 1 수 또는 제 2 수의 선택된 가설들이 사용되는지를 디코더에 시그널링한다 (126). 그 후, 비디오 인코더 (40) 는 예측 비디오 데이터의 세트에 기초하여 비디오 블록을 인코딩할 수 있다 (128). 일 예에서, 비디오 인코더 (40) 는 최저 비용을 갖는 가설 수와 관련된 예측 비디오 데이터의 세트에 기초하여 비디오 블록을 인코딩한다. 다른 예에서, TM 예측 유닛 (42) 은 최상의 가설을 선택하고, 비디오 인코더 (40) 는 최상의 가설과 관련된 레퍼런스 비디오 블록내에 포함된 예측 비디오 데이터에 기초하여 비디오 블록을 인코딩한다. 다른 예에서, TM 예측 유닛 (42) 은 고려를 위해 이용가능한 나머지 가설들 모두와 관련된 레퍼런스 비디오 블록들 모두에 기초하여 예측 비디오 블록을 생성할 수도 있고, 비디오 인코더 (40) 는 이러한 예측 비디오 데이터에 기초하여 비디오 블록을 인코딩한다.
도 7a 및 도 7b 는 본 개시물에 따른 비디오 디코더에 의해 수행된 예시적인 프로세스를 예시하는 플로우차트들이다. 도 7a 및 도 7b 는 도 5 의 비디오 디코더 (80) 의 관점으로부터 설명될 것이다. 도 7a 에 도시되어 있는 바와 같이, 비디오 디코더 (80) 는 인코딩된 비디오 데이터를 수신하고 (132), 인코딩된 비디오 데이터를 인코딩하는데 있어서 비디오 인코더에 의해 사용된 가설 수를 식별하는 하나 이상의 신택스 엘리먼트들을 수신한다. TM 예측 유닛 (84) 은 타겟 비디오 블록을 선택하고, 타겟 블록과 관련된 템플릿을 식별하며, 레퍼런스 리스트들을 생성한다 (134). 레퍼런스 리스트들은 하나 이상의 레퍼런스 비디오 유닛들로부터의 비디오 정보를 포함한다. 레퍼런스 비디오 유닛은 타겟 비디오 블록을 포함하는 비디오 유닛에 대해 이전에 또는 이후에 발생할 수도 있다. 타겟 블록에 대해 정의된 템플릿 형상의 부분들이 이용가능한 재구성된 픽셀들을 갖지 않고 (136 에서 아니오), 타겟 블록이 루마 블록의 서브 블록이면, TM 예측 유닛 (84) 은 이용가능한 재구성된 픽셀들을 갖지 않은 템플릿의 부분들과 관련된 서브 블록 파티션 콘텐츠를 생성할 수도 있다 (138). 특히, 서브 블록 파티션 콘텐츠는 루마 잔류를 모션 보상된 예측과 조합함으로써 생성될 수도 있다. 서브 블록 파티션 콘텐츠가 생성되거나 (138) 재구성된 픽셀들이 타겟 블록에 대해 정의된 전체 템플릿 형상에 대해 이용가능하면 (136 에서 예), TM 예측 유닛 (84) 은 타겟 블록과 관련된 템플릿 및 레퍼런스 리스트들에 기초하여 하나 이상의 가설들 세트들을 생성한다 (140).
가설들의 세트에서의 각 가설에 대해, TM 예측 유닛 (84) 은 타겟 블록에 대해 정의된 템플릿 형상에서의 각 픽셀의 픽셀 값들과 가설들의 세트의 후보 가설에서의 가 대응하는 픽셀의 픽셀 값 사이의 평균 차이를 계산함으로써 템플릿 오프셋을 계산할 수도 있다 (142). TM 예측 유닛 (84) 은 각 가설에 대한 절대 차이들의 가중된 합을 계산할 수도 있다 (144). 일 예에서, TM 예측 유닛 (84) 은 계산된 픽셀 값들을 가중 팩터에 의해 승산함으로써 템플릿 오프셋에 기초하여 계산된 픽셀 값들을 사용하여 WSAD 를 계산하여, 가중 팩터는 비디오 블록과 템플릿 파티션 사이의 거리가 증가할 때 감소한다. 다른 예에서, TM 예측 유닛 (84) 은 계산된 픽셀 값들을 가중 팩터에 의해 승산함으로써 WSAD 를 계산하여, 가중 팩터는 비디오 블록과 템플릿 파티션 사이의 거리가 증가할 때 감소하지만, 템플릿 오프셋에 기초하여 픽셀 값들을 조정하지 않는다. TM 예측 유닛 (84) 은 가중 팩터를 제거함으로써 WSAD 보다는 SAD 를 계산할 수도 있다. SAD 를 계산하는데 있어서, TM 예측 유닛 (84) 은 계산된 템플릿 오프셋을 통합할 수도 있다.
도 7b 에 관하여, TM 예측 유닛 (84) 은 일 예에서는, 고려중인 가설들 모두, 또는 다른 예에서는, 고려중인 최상의 가설들의 서브세트를 평균함으로써 레퍼런스 가설을 계산할 수도 있다 (146). 그 후, TM 예측 유닛 (84) 은 고려를 위해 이용가능한 가설들 중 하나를 선택할 수도 있고 (148), 고려되는 가설 (
Figure 112014046262997-pat00038
)과 레퍼런스 가설 (
Figure 112014046262997-pat00039
) 사이의 차이를 계산하고, 값에서의 차이를 임계값 (T) 에 비교한다 (150). 고려되는 가설 (
Figure 112014046262997-pat00040
)과 레퍼런스 가설 (
Figure 112014046262997-pat00041
) 사이의 이러한 차이는 고려되는 가설 (
Figure 112014046262997-pat00042
)과 레퍼런스 가설 (
Figure 112014046262997-pat00043
) 의 각 픽셀 사이의 절대 차이의 합을 포함할 수도 있다. 이러한 차이 (즉, 고려중인 가설과 레퍼런스 가설의 픽셀들의 SAD) 가 임계값 (T) 보다 크면 (150 의 예), 그 가설은 고려로부터 제거될 수도 있다 (154). 값에서의 차이가 T 보다 작으면 (150 의 아니오), 또는
Figure 112014046262997-pat00044
가 고려로부터 제거된 이후에 (152), TM 예측 유닛 (42) 은 고려중인 가설들의 세트에 남아 있는 임의의 가설들이 존재하는지를 결정한다 (154). 가설들이 남아 있으면, 예측 유닛은 고려를 위해 새로운 가설을 선택하고 (148), 고려중인 가설과 이전에 생성된 레퍼런스 가설 사이의 값에서의 차이가 임계값 보다 큰지를 결정한다 (150). 아직 고려되지 않은 고려를 위해 이용가능한 가설들이 더 이상 존재하지 않으면 (154 에서 아니오), TM 예측 유닛 (84) 은 타겟 블록을 인코딩하는데 고려되는 가설들의 수를 식별하는 신택스 엘리먼트를 디코딩할 수도 있고 가설 수를 적용할 수도 있다 (156).
가설 수를 적용하기 위해 (156), TM 예측 유닛 (84) 은 모든 가능한 가설들의 세트로부터 신택스 엘리먼트에 의해 식별된 최상의 가설들의 수를 포함하는 가설들의 서브세트를 식별함으로써 예측 비디오 데이터의 세트를 생성한다. 그 후, TM 예측 유닛 (84) 은 가설들의 세트에서 가설들 각각에 대응하는 레퍼런스 비디오 블록들을 식별할 수도 있고 식별된 레퍼런스 비디오 블록들에서 동일한 상대적 위치를 갖는 각 픽셀에 대한 픽셀 값들을 평균할 수도 있다. 그 후, 비디오 디코더 (80) 는 예측 비디오 데이터에 기초하여 비디오를 디코딩할 수 있다 (158). 일 예에서, 비디오 디코더 (80) 는 최저의 비용을 갖는 가설 수와 관련된 예측 비디오 데이터의 세트에 기초하여 비디오 블록을 디코딩한다. 다른 예에서, TM 예측 유닛 (84) 은 최상의 가설을 선택하고, 비디오 디코더 (80) 는 최상의 가설과 관련된 레퍼런스 비디오 블록내에 포함된 예측 비디오 데이터에 기초하여 비디오 블록을 디코딩한다. 다른 예에서, TM 예측 유닛 (84) 은 고려를 위해 이용가능한 나머지 가설들 모두와 관련된 레퍼런스 비디오 블록들 모두에 기초하여 예측 비디오 데이터를 생성할 수도 있고, 비디오 디코더 (80) 는 이러한 예측 비디오 데이터에 기초하여 비디오 블록을 인코딩한다.
본 개시물에 따라 동작하는 비디오 코더가 도 6a, 도 6b, 도 7a 및 도 7b 에 도시된 예시적인 방법들의 하나 이상의 단계들을 생략할 수도 있다. 예를 들어, 비디오 코더는 템플릿 오프셋을 계산하지 않고, 절대 차이들의 가중된 합을 계산하지 않고, 레퍼런스 가설을 생성하지 않거나, 가설 수를 특정하는 신택스를 활용하지 않을 수도 있다. 일반적으로, 비디오 코더는 타겟 블록을 적어도 선택하고, 가설들의 세트를 생성하며, 가설들의 세트에 기초하여 비디오 유닛을 코딩함으로써 본 개시물에 설명된 템플릿 매칭 모션 예측 기법들을 수행할 것이다.
본 개시물의 기법들은 무선 핸드셋, 및 집적 회로 (IC) 또는 IC들의 세트 (즉, 칩 세트) 를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 기능적 양태들을 강조하기 위해 제공된 임의의 컴포넌트들, 모듈들 또는 유닛들이 설명되었고 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 여기에 설명된 기법들은 또한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 모듈들, 유닛들 또는 컴포넌트들로서 설명된 임의의 특징들은 집적 회로에서 함께 또는 개별이지만 상호운용가능한 로직 디바이스들로서 개별적으로 구현될 수도 있다. 일부 경우들에서, 다양한 특징들이 집적 회로 칩 또는 칩세트와 같은 집적 회로 디바이스로서 구현될 수도 있다.
소프트웨어에서 구현되면, 기법들은 프로세서에서 실행될 때, 상술한 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터 판독가능 매체에 의해 적어도 부분적으로 실행될 수도 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능한 저장 매체를 포함할 수도 있고 패키징 자료들을 포함할 수도 있는 컴퓨터 프로그램 제품의 일부를 형성할 수도 있다. 컴퓨터 판독가능한 매체는 동기 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래머블 판독전용 메모리 (EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수도 있다. 추가로 또는 다르게는, 기법들은 명령들 또는 데이터 구조들의 형태로 코드를 반송하거나 통신하고, 컴퓨터에 의해 액세스되고, 판독되고/되거나 실행될 수 있는 컴퓨터 판독가능한 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
코드 또는 명령들은 하나 이상의 디지털 신호 프로세서 (DSP), 범용 마이크로프로세서, 응용 주문형 집적 회로 (ASIC), 필드 프로그램가능한 로직 어레이 (FPGA), 또는 다른 등가의 집적 또는 개별 로직 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 여기에서 사용되는 바와 같은 용어 "프로세서" 는 여기에 설명된 기법들의 구현에 적합한 임의의 상술한 구조 또는 임의의 다른 구조를 칭할 수도 있다. 또한, 일부 양태들에서, 여기에 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈 또는 하드웨어 모듈내에 제공될 수도 있거나, 결합된 비디오 코덱에 통합될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 엘리먼트들에서 완전하게 구현될 수 있다.
본 개시물은 또한 본 개시물에 설명된 기법들 중 하나 이상을 구현하기 위한 회로를 포함하는 임의의 다양한 집적 회로 디바이스를 고려한다. 이러한 회로는 단일의 집적 회로 칩 또는 소위 칩세트에서 다중의 상호운용가능한 집적 회로 칩들에 제공될 수도 있다. 이러한 집적 회로 디바이스들은 그 일부가 모바일 전화 핸드셋들과 같은 무선 통신 디바이스들에서의 사용을 포함할 수도 있는 다양한 애플리케이션들에서 사용될 수도 있다.
본 발명의 다양한 실시형태들이 설명되었다. 이들 및 다른 실시형태들은 아래의 청구범위의 범주내에 있다.

Claims (15)

  1. 현재의 비디오 유닛의 현재의 비디오 블록을 코딩하는 비디오 코딩 방법으로서,
    템플릿 매칭 예측 비디오 코딩을 위해 가설들의 하나 이상의 세트를 생성하는 단계로서, 상기 가설들의 하나 이상의 세트에서의 상기 가설들 각각은 상기 현재의 비디오 유닛과 상이한 비디오 유닛의 예측 비디오 블록에 기초하며, 상기 가설들의 하나 이상의 세트에서의 상기 가설들 각각은 상기 현재의 비디오 블록에 연관된 템플릿의 형상에 대응하는 형상을 갖는 템플릿의 예측 비디오 데이터를 포함하는, 상기 가설들의 하나 이상의 세트를 생성하는 단계;
    상기 가설들의 하나 이상의 세트에 기초하여 레퍼런스 가설을 생성하는 단계로서, 상기 레퍼런스 가설은 상기 가설들의 하나 이상의 세트에서의 복수의 가설들의 각 픽셀 위치에 대한 픽셀 값들의 평균을 포함하는, 상기 레퍼런스 가설을 생성하는 단계;
    상기 레퍼런스 가설의 값과 가설의 값 사이의 차이의 측정이 임계값보다 큰 각각의 가설들을, 상기 가설들의 하나 이상의 세트로부터 제거하는 단계;
    상기 현재의 비디오 블록을 코딩하기 위해 이용할 가설들의 수에 기초하여, 상기 가설들의 하나 이상의 세트에 남아있는 가설들로부터 하나 이상의 가설들을 선택하는 단계로서, 상기 가설들의 수는 미리 결정된 가설들의 세트 수로부터 식별되는, 상기 가설들을 선택하는 단계;
    코딩된 비디오 블록을 생성하기 위해 상기 선택된 하나 이상의 가설들에 기초하여 상기 현재의 비디오 블록을 비디오 코더를 통해 코딩하는 단계; 및
    상기 식별된 가설들의 수를 나타내는 신택스 엘리먼트를 생성하는 단계로서, 상기 신택스 엘리먼트는 상기 코딩된 비디오 블록을 디코딩하는 비디오 디코더에 제공되는, 상기 신택스 엘리먼트를 생성하는 단계를 포함하는, 비디오 코딩 방법.
  2. 제 1 항에 있어서,
    상기 가설들의 하나 이상의 세트를 생성하는 단계는, 현재의 비디오 블록과 관련된 템플릿을 복수의 파티션으로 파티셔닝하는 단계 및 상기 복수의 파티션의 각 파티션의 절대 차이들의 합을, 상기 현재의 비디오 블록으로부터 고려중인 상기 파티션의 거리가 증가할 때 감소하는 값으로 승산하는 단계를 포함하는, 비디오 코딩 방법.
  3. 제 1 항에 있어서,
    상기 가설들의 하나 이상의 세트를 생성하는 단계는,
    템플릿 오프셋을 계산하는 단계로서, 상기 템플릿 오프셋을 계산하는 단계는 현재의 비디오 블록에 대해 정의된 템플릿의 픽셀 값들 및 상기 가설들의 하나 이상의 세트의 제 1 가설의 픽셀 값들에서의 평균 차이를 계산하는 단계를 포함하는, 상기 템플릿 오프셋을 계산하는 단계; 및
    상기 제 1 가설의 상기 픽셀 값들 각각과 상기 현재의 비디오 블록에 대해 정의된 상기 템플릿의 상기 픽셀 값들 각각 사이의 상기 차이에 상기 템플릿 오프셋을 적용하는 단계를 포함하는, 비디오 코딩 방법.
  4. 제 1 항에 있어서,
    상기 현재의 비디오 블록은 루마 (luma) 비디오 블록이고, 상기 루마 비디오 블록은 복수의 서브 블록들을 포함하며,
    상기 방법은,
    상기 복수의 서브 블록 중 제 1 서브 블록을 선택하는 단계;
    상기 제 1 서브 블록의 위치에 대한 템플릿 형상을 정의하는 단계;
    제 2 서브 블록의 루마 잔류 (luma residual) 를 계산하는 단계로서, 상기 제 2 서브 블록의 적어도 일부는 상기 템플릿 형상의 적어도 일부내에 위치되는, 상기 루마 잔류를 계산하는 단계;
    상기 제 2 서브 블록의 픽셀 값들의 모션 보상된 예측을 계산하는 단계; 및
    상기 루마 잔류 및 상기 픽셀 값들의 모션 보상된 예측에 기초하여 상기 템플릿 형상내의 픽셀들에 대한 예측 비디오 데이터를 생성하는 단계에 의해 상기 현재의 비디오 블록을 코딩하기 위해 상기 가설들의 하나 이상의 세트로부터 상기 가설들 중 하나를 선택하는 단계를 더 포함하는, 비디오 코딩 방법.
  5. 제 1 항에 있어서,
    상기 비디오 코더는 비디오 인코더를 포함하고, 상기 방법은,
    상기 가설들의 하나 이상의 세트에서의 가설들의 제 1 서브세트를 생성하는 단계;
    상기 가설들의 하나 이상의 세트에서의 가설들의 제 2 서브세트를 생성하는 단계;
    상기 현재의 비디오 블록의 인코딩과 관련된 제 1 비용을 계산하는 단계로서, 상기 제 1 비용은, 상기 가설들의 제 1 서브세트에 대한 인코딩 레이트와 라그랑주 (Lagrangian) 승수의 곱과 왜곡을 더함으로써 계산되는, 상기 제 1 비용을 계산하는 단계;
    상기 현재의 비디오 블록의 인코딩과 관련된 제 2 비용을 계산하는 단계로서, 상기 제 2 비용은, 상기 가설들의 제 2 서브세트에 대한 인코딩 레이트와 라그랑주 승수의 곱과 왜곡을 더함으로써 계산되는, 상기 제 2 비용을 계산하는 단계;
    상기 제 1 비용 및 상기 제 2 비용으로부터 상기 현재의 비디오 블록의 인코딩과 관련된 최저의 비용을 결정하는 단계; 및
    상기 비디오 인코더에 의해, 상기 현재의 비디오 블록의 인코딩과 관련된 최저 비용을 산출하는 식별된 가설들의 수를 나타내는 상기 신택스 엘리먼트를 설정하는 단계를 더 포함하는, 비디오 코딩 방법.
  6. 제 1 항에 있어서,
    상기 비디오 코더는 상기 비디오 디코더를 포함하고,
    상기 방법은,
    인코딩된 비디오 데이터를 인코딩하는데 사용된 상기 가설들의 하나 이상의 세트의 가설들의 수를 식별하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계; 및
    상기 가설들의 하나 이상의 세트로부터 가설들의 서브세트를 식별하는 단계로서, 상기 서브세트는 상기 하나 이상의 신택스 엘리먼트들에 의해 식별된 상기 가설들의 수를 포함하는, 상기 가설들의 서브세트를 식별하는 단계를 더 포함하고,
    상기 현재의 비디오 블록을 코딩하는 단계는, 상기 가설들의 식별된 서브세트를 사용하여 상기 인코딩된 비디오 데이터를 디코딩하는 단계를 더 포함하는, 비디오 코딩 방법.
  7. 제 1 항에 있어서,
    상기 가설들의 하나 이상의 세트를 생성하는 단계는,
    템플릿 매칭 예측 비디오 코딩을 위해 가설들의 제 1 세트를 생성하는 단계로서, 상기 가설들의 제 1 세트에서의 상기 가설들 중 적어도 일부는 제 1 비디오 유닛의 적어도 일부로부터의 비디오 데이터의 제 1 세트에 기초하고, 상기 가설들의 제 1 세트의 각 가설은 제 1 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 비디오 데이터를 포함하는, 상기 가설들의 제 1 세트를 생성하는 단계;
    템플릿 매칭 예측 비디오 코딩을 위해 가설들의 제 2 세트를 생성하는 단계로서, 상기 가설들의 제 2 세트에서의 상기 가설들 중 적어도 일부는 제 2 비디오 유닛의 적어도 일부로부터의 비디오 데이터의 제 2 세트에 기초하고, 상기 가설들의 제 2 세트의 각 가설은 제 2 비디오 블록 위치에 대해 정의된 템플릿 형상에 대응하는 비디오 데이터를 포함하는, 상기 가설들의 제 2 세트를 생성하는 단계; 및
    상기 가설들의 제 1 세트 및 상기 가설들의 제 2 세트에 기초하는 양방향 모션 예측에 기초하여 가설들의 제 3 세트를 생성하는 단계를 포함하는, 비디오 코딩 방법.
  8. 현재의 비디오 유닛의 현재의 비디오 블록을 코딩하는 디바이스로서,
    템플릿 매칭 예측 비디오 코딩을 위해 가설들의 하나 이상의 세트를 생성하는 수단으로서, 상기 가설들의 하나 이상의 세트에서의 상기 가설들 각각은 상기 현재의 비디오 유닛과 상이한 비디오 유닛의 예측 비디오 블록에 기초하며, 상기 가설들의 하나 이상의 세트에서의 상기 가설들 각각은 상기 현재의 비디오 블록에 연관된 템플릿의 형상에 대응하는 형상을 갖는 템플릿의 예측 비디오 데이터를 포함하는, 상기 가설들의 하나 이상의 세트를 생성하는 수단;
    상기 가설들의 하나 이상의 세트에 기초하여 레퍼런스 가설을 생성하는 수단으로서, 상기 레퍼런스 가설은 상기 가설들의 하나 이상의 세트에서의 복수의 가설들의 각 픽셀 위치에 대한 픽셀 값들의 평균을 포함하는, 상기 레퍼런스 가설을 생성하는 수단;
    상기 레퍼런스 가설의 값과 가설의 값 사이의 차이의 측정이 임계값보다 큰 각각의 가설들을, 상기 가설들의 하나 이상의 세트로부터 제거하는 수단;
    상기 현재의 비디오 블록을 코딩하기 위해 이용할 가설들의 수에 기초하여 상기 가설들의 하나 이상의 세트에 남아있는 가설들로부터 하나 이상의 가설들을 선택하는 수단으로서, 상기 가설들의 수는 미리 결정된 가설들의 세트 수로부터 식별되는, 상기 가설들을 선택하는 수단;
    코딩된 비디오 블록을 생성하기 위해 상기 선택된 하나 이상의 가설들에 기초하여 상기 현재의 비디오 블록을 코딩하는 수단; 및
    상기 식별된 가설들의 수를 나타내는 신택스 엘리먼트를 생성하는 수단으로서, 상기 신택스 엘리먼트는 상기 코딩된 비디오 블록을 디코딩하는 비디오 디코더에 제공되는, 상기 신택스 엘리먼트를 생성하는 수단을 포함하는, 현재의 비디오 블록을 코딩하는 디바이스.
  9. 제 8 항에 있어서,
    상기 가설들의 하나 이상의 세트를 생성하는 수단은, 현재의 비디오 블록과 관련된 템플릿을 복수의 파티션으로 파티셔닝하고 상기 복수의 파티션의 각 파티션의 절대 차이들의 합을, 상기 현재의 비디오 블록으로부터 고려중인 상기 파티션의 거리가 증가할 때 감소하는 값으로 승산하는 수단을 포함하는, 현재의 비디오 블록을 코딩하는 디바이스.
  10. 제 8 항에 있어서,
    상기 가설들의 하나 이상의 세트를 생성하는 수단은,
    현재의 비디오 블록에 대해 정의된 템플릿의 픽셀 값들 및 상기 가설들의 하나 이상의 세트의 제 1 가설의 픽셀 값들에서의 평균 차이를 계산하는 수단을 포함하는 템플릿 오프셋을 계산하는 수단; 및
    상기 제 1 가설의 상기 픽셀 값들 각각과 상기 현재의 비디오 블록에 대해 정의된 상기 템플릿의 상기 픽셀 값들 각각 사이의 상기 차이에 상기 템플릿 오프셋을 적용하는 수단을 포함하는, 현재의 비디오 블록을 코딩하는 디바이스.
  11. 제 8 항에 있어서,
    상기 현재의 비디오 블록은 루마 비디오 블록이고,
    상기 루마 비디오 블록은 복수의 서브 블록을 포함하며,
    상기 디바이스는, 상기 가설들의 하나 이상의 세트로부터 상기 가설들 중 하나를 선택하는 수단을 포함하며,
    상기 가설들 중 하나를 선택하는 수단은,
    상기 복수의 서브 블록 중 제 1 서브 블록을 선택하는 수단;
    상기 제 1 서브 블록의 위치에 대한 템플릿 형상을 정의하는 수단;
    제 2 서브 블록의 루마 잔류를 계산하는 수단으로서, 상기 제 2 서브 블록의 적어도 일부는 상기 템플릿 형상의 적어도 일부내에 위치되는 상기 루마 잔류를 계산하는 수단;
    상기 제 2 서브 블록의 픽셀 값들의 모션 보상된 예측을 계산하는 수단; 및
    상기 루마 잔류 및 상기 픽셀 값들의 모션 보상된 예측에 기초하여 상기 템플릿 형상내의 픽셀들에 대한 예측 비디오 데이터를 생성하는 수단을 더 포함하는, 현재의 비디오 블록을 코딩하는 디바이스.
  12. 제 8 항에 있어서,
    상기 현재의 비디오 블록을 코딩하는 수단은,
    상기 가설들의 하나 이상의 세트에서의 가설들의 제 1 서브세트를 생성하는 수단;
    상기 가설들의 하나 이상의 세트에서의 가설들의 제 2 서브세트를 생성하는 수단;
    상기 현재의 비디오 블록의 인코딩과 관련된 제 1 비용을 계산하는 수단으로서, 상기 제 1 비용은, 상기 가설들의 제 1 서브세트에 대한 인코딩 레이트와 라그랑주 승수의 곱과 왜곡을 더함으로써 계산되는, 상기 제 1 비용을 계산하는 수단;
    상기 현재의 비디오 블록의 인코딩과 관련된 제 2 비용을 계산하는 단계로서, 상기 제 2 비용은, 상기 가설들의 제 2 서브세트에 대한 인코딩 레이트와 라그랑주 승수의 곱과 왜곡을 더함으로써 계산되는, 상기 제 2 비용을 계산하는 수단;
    상기 제 1 비용 및 상기 제 2 비용으로부터 상기 현재의 비디오 블록의 인코딩과 관련된 최저의 비용을 결정하는 수단; 및
    상기 현재의 비디오 블록의 인코딩과 관련된 최저 비용을 산출하는 식별된 가설들의 수를 나타내는 상기 신택스 엘리먼트를 설정하는 수단을 더 포함하는, 현재의 비디오 블록을 코딩하는 디바이스.
  13. 제 8 항에 있어서,
    상기 현재의 비디오 블록을 코딩하는 수단은 인코딩된 비디오 데이터를 디코딩하는 수단을 더 포함하고,
    상기 디바이스는,
    인코딩된 비디오 데이터를 인코딩하는데 사용된 상기 가설들의 하나 이상의 세트의 가설들의 수를 식별하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 수단; 및
    상기 가설들의 하나 이상의 세트로부터 가설들의 서브세트를 식별하는 수단으로서, 상기 서브세트는 상기 하나 이상의 신택스 엘리먼트들에 의해 식별된 상기 가설들의 수를 포함하는, 상기 가설들의 서브세트를 식별하는 수단을 더 포함하고,
    상기 인코딩된 비디오 데이터를 디코딩하는 수단은 상기 가설들의 식별된 서브세트를 사용하여 상기 인코딩된 비디오 데이터를 디코딩하는, 현재의 비디오 블록을 코딩하는 디바이스.
  14. 제 8 항 내지 제 13 항 중 어느 한 항에 있어서,
    예측 유닛은,
    상기 가설들의 하나 이상의 세트를 생성하는 수단;
    상기 레퍼런스 가설들을 생성하는 수단;
    상기 제거하는 수단; 및
    상기 가설들을 선택하는 수단을 포함하며, 그리고
    비디오 코딩 유닛은, 상기 코딩하는 수단과 상기 신택스 엘리먼트를 생성하는 수단을 포함하는, 현재의 비디오 블록을 코딩하는 디바이스.
  15. 하나 이상의 프로그램가능한 프로세서로 하여금 제 1 항 내지 제 7 항 중 어느 한 항에 기재된 비디오 코딩 방법을 수행하게 하는 명령들로 인코딩된, 컴퓨터 판독가능한 저장 매체.
KR1020147013265A 2009-07-02 2010-06-29 비디오 코딩을 위한 템플릿 매칭 KR101632126B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US22283609P 2009-07-02 2009-07-02
US61/222,836 2009-07-02
US12/756,661 US8873626B2 (en) 2009-07-02 2010-04-08 Template matching for video coding
US12/756,661 2010-04-08
PCT/US2010/040475 WO2011002809A2 (en) 2009-07-02 2010-06-29 Template matching for video coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020127002893A Division KR101521336B1 (ko) 2009-07-02 2010-06-29 비디오 코딩을 위한 템플릿 매칭

Publications (2)

Publication Number Publication Date
KR20140068269A KR20140068269A (ko) 2014-06-05
KR101632126B1 true KR101632126B1 (ko) 2016-06-24

Family

ID=43216579

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147013265A KR101632126B1 (ko) 2009-07-02 2010-06-29 비디오 코딩을 위한 템플릿 매칭
KR1020127002893A KR101521336B1 (ko) 2009-07-02 2010-06-29 비디오 코딩을 위한 템플릿 매칭

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020127002893A KR101521336B1 (ko) 2009-07-02 2010-06-29 비디오 코딩을 위한 템플릿 매칭

Country Status (9)

Country Link
US (1) US8873626B2 (ko)
EP (2) EP2704442B1 (ko)
JP (2) JP5623521B2 (ko)
KR (2) KR101632126B1 (ko)
CN (1) CN102474622B (ko)
ES (2) ES2675578T3 (ko)
HU (1) HUE038078T2 (ko)
TW (1) TW201130316A (ko)
WO (1) WO2011002809A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018056763A1 (ko) * 2016-09-23 2018-03-29 엘지전자(주) 템플릿 기반 가중치를 이용하여 예측을 수행하는 방법 및 장치
WO2023200217A1 (ko) * 2022-04-11 2023-10-19 엘지전자 주식회사 템플릿 매칭을 이용하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2510694B1 (en) * 2009-12-10 2017-07-26 Thomson Licensing DTV Method and apparatus for coding and decoding an image block
KR20110071047A (ko) * 2009-12-20 2011-06-28 엘지전자 주식회사 비디오 신호 디코딩 방법 및 장치
FR2959376A1 (fr) * 2010-04-22 2011-10-28 France Telecom Procede de traitement d'une information de mouvement, procedes de codage et de decodage, dispositifs, signal et programme d'ordinateur correspondants
KR101681303B1 (ko) * 2010-07-29 2016-12-01 에스케이 텔레콤주식회사 블록 분할예측을 이용한 영상 부호화/복호화 방법 및 장치
FI3962088T3 (fi) 2010-11-04 2023-09-20 Ge Video Compression Llc Kuvankoodaus, joka tukee lohkojen yhdistämistä ja ohittavaa toimintamuotoa
EP2490448A1 (de) * 2011-02-18 2012-08-22 Siemens Aktiengesellschaft Kodierverfahren und Bildkodiervorrichtung zur Kompression einer Bildsequenz
US20140307798A1 (en) * 2011-09-09 2014-10-16 Newsouth Innovations Pty Limited Method and apparatus for communicating and recovering motion information
US20130329800A1 (en) * 2012-06-07 2013-12-12 Samsung Electronics Co., Ltd. Method of performing prediction for multiview video processing
CA2879440C (en) * 2012-07-16 2018-10-23 Samsung Electronics Co., Ltd. Video encoding method and video encoding apparatus and video decoding method and video decoding apparatus for signaling sao parameters
US9729876B2 (en) 2012-11-29 2017-08-08 Thomson Licensing Method for predicting a block of pixels from at least one patch
CN103020915B (zh) * 2012-12-21 2016-04-13 清华大学 一种基于视频数据的物像增强方法
WO2015010317A1 (zh) * 2013-07-26 2015-01-29 北京大学深圳研究生院 一种基于p帧的多假设运动补偿方法
CN111193930B (zh) 2013-12-16 2021-11-30 浙江大学 一种前向双假设编码图像块的编解码方法和装置
US9544596B1 (en) * 2013-12-27 2017-01-10 Google Inc. Optimized template matching approach to intra-coding in video/image compression
US9968092B2 (en) 2014-04-17 2018-05-15 Basf Se Combination of novel nitrification inhibitors and biopesticides as well as combination of (thio)phosphoric acid triamides and biopesticides
US9723377B2 (en) 2014-04-28 2017-08-01 Comcast Cable Communications, Llc Video management
JP2019213242A (ja) * 2014-04-28 2019-12-12 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 符号化方法、復号方法、符号化装置および復号装置
CN106105196A (zh) * 2014-04-28 2016-11-09 松下电器(美国)知识产权公司 编码方法、解码方法、编码装置以及解码装置
JP6356913B2 (ja) * 2014-10-24 2018-07-11 エルジー エレクトロニクス インコーポレイティド グラフテンプレートから誘導された変換を用いてビデオ信号をデコーディング/エンコーディングする方法及び装置
CN104363449B (zh) * 2014-10-31 2017-10-10 华为技术有限公司 图像预测方法及相关装置
US11233998B2 (en) 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
WO2016200100A1 (ko) * 2015-06-10 2016-12-15 삼성전자 주식회사 적응적 가중치 예측을 위한 신택스 시그널링을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
WO2017035833A1 (en) * 2015-09-06 2017-03-09 Mediatek Inc. Neighboring-derived prediction offset (npo)
CN114827601B (zh) * 2015-09-11 2024-06-28 株式会社Kt 对视频进行解码的方法和设备以及对视频进行编码的方法和设备
EP3417617A4 (en) * 2016-02-17 2019-02-27 Telefonaktiebolaget LM Ericsson (publ) METHOD AND DEVICES FOR CODING AND DECODING VIDEO IMAGES
WO2017157281A1 (en) * 2016-03-16 2017-09-21 Mediatek Inc. Method and apparatus of pattern-based motion vector derivation for video coding
US10951912B2 (en) 2016-10-05 2021-03-16 Qualcomm Incorporated Systems and methods for adaptive selection of weights for video coding
WO2018070713A1 (ko) * 2016-10-11 2018-04-19 엘지전자(주) 크로마 성분에 대한 인트라 예측 모드를 유도하는 방법 및 장치
US10609367B2 (en) * 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding
EP3349451A1 (en) * 2017-01-11 2018-07-18 Thomson Licensing Method and apparatus for selecting a coding mode used for encoding/decoding a residual block
US10701366B2 (en) * 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US20180332298A1 (en) * 2017-05-10 2018-11-15 Futurewei Technologies, Inc. Bidirectional Prediction In Video Compression
US10757442B2 (en) * 2017-07-05 2020-08-25 Qualcomm Incorporated Partial reconstruction based template matching for motion vector derivation
CN110832859B (zh) * 2017-07-11 2022-02-25 华为技术有限公司 一种基于模板匹配的解码方法及装置
US10986360B2 (en) * 2017-10-16 2021-04-20 Qualcomm Incorproated Various improvements to FRUC template matching
US20190246114A1 (en) * 2018-02-02 2019-08-08 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
WO2019191717A1 (en) * 2018-03-30 2019-10-03 Hulu, LLC Template refined bi-prediction for video coding
US11477474B2 (en) * 2018-06-08 2022-10-18 Mediatek Inc. Methods and apparatus for multi-hypothesis mode reference and constraints
US11533471B2 (en) 2018-06-22 2022-12-20 Sony Corporation Image processing apparatus and image processing method
US11956460B2 (en) * 2018-08-31 2024-04-09 Hulu, LLC Selective template matching in video coding
US20230093043A1 (en) * 2021-09-22 2023-03-23 Tencent America LLC Method and apparatus for adaptive reordering for reference frames

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007093629A1 (en) 2006-02-17 2007-08-23 Thomson Licensing Process for coding images using intra prediction mode
WO2009124511A1 (zh) 2008-04-11 2009-10-15 华为技术有限公司 一种帧间预测编解码方法、装置及系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100371130B1 (ko) * 1996-05-28 2003-02-07 마쯔시다덴기산교 가부시키가이샤 화상예측 복호화 장치 및 그 방법과 화상예측 부호화 장치및 그 방법
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US7373004B2 (en) * 2003-05-23 2008-05-13 Silicon Integrated Systems Corp. Apparatus for constant quality rate control in video compression and target bit allocator thereof
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
CN1981531B (zh) * 2004-05-04 2012-07-04 高通股份有限公司 构建用于时间可分级的双向预测帧的方法和装置
JP2007043651A (ja) 2005-07-05 2007-02-15 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
WO2007092192A2 (en) 2006-02-02 2007-08-16 Thomson Licensing Method and apparatus for motion estimation using combined reference bi-prediction
JP2008154015A (ja) 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
JP5372341B2 (ja) 2007-05-18 2013-12-18 株式会社エヌ・ティ・ティ・ドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法および画像予測復号プログラム
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US20090003443A1 (en) * 2007-06-26 2009-01-01 Nokia Corporation Priority-based template matching intra prediction video and image coding
WO2009126260A1 (en) 2008-04-11 2009-10-15 Thomson Licensing Methods and apparatus for template matching prediction (tmp) in video encoding and decoding
CN102160379A (zh) 2008-09-24 2011-08-17 索尼公司 图像处理装置和图像处理方法
JPWO2010035730A1 (ja) 2008-09-24 2012-02-23 ソニー株式会社 画像処理装置および方法
US8687708B2 (en) * 2008-12-18 2014-04-01 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for rate distortion optimisation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007093629A1 (en) 2006-02-17 2007-08-23 Thomson Licensing Process for coding images using intra prediction mode
WO2009124511A1 (zh) 2008-04-11 2009-10-15 华为技术有限公司 一种帧间预测编解码方法、装置及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018056763A1 (ko) * 2016-09-23 2018-03-29 엘지전자(주) 템플릿 기반 가중치를 이용하여 예측을 수행하는 방법 및 장치
US10805631B2 (en) 2016-09-23 2020-10-13 Lg Electronics Inc. Method and apparatus for performing prediction using template-based weight
WO2023200217A1 (ko) * 2022-04-11 2023-10-19 엘지전자 주식회사 템플릿 매칭을 이용하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Also Published As

Publication number Publication date
WO2011002809A2 (en) 2011-01-06
JP5752771B2 (ja) 2015-07-22
EP2449786B1 (en) 2014-01-29
ES2452866T3 (es) 2014-04-03
TW201130316A (en) 2011-09-01
JP2012532501A (ja) 2012-12-13
CN102474622B (zh) 2015-04-29
KR20120042910A (ko) 2012-05-03
JP2014064301A (ja) 2014-04-10
HUE038078T2 (hu) 2018-09-28
US20110002388A1 (en) 2011-01-06
WO2011002809A3 (en) 2011-06-23
EP2449786A2 (en) 2012-05-09
KR101521336B1 (ko) 2015-05-18
KR20140068269A (ko) 2014-06-05
ES2675578T3 (es) 2018-07-11
EP2704442A1 (en) 2014-03-05
CN102474622A (zh) 2012-05-23
JP5623521B2 (ja) 2014-11-12
US8873626B2 (en) 2014-10-28
EP2704442B1 (en) 2018-04-04

Similar Documents

Publication Publication Date Title
KR101632126B1 (ko) 비디오 코딩을 위한 템플릿 매칭
KR101384077B1 (ko) 비디오 코딩에서 블록 타입 시그널링
KR101355332B1 (ko) 비디오 코딩에서 단방향성 예측 및 양방향성 예측을 위한 상이한 가중치들
US9525872B2 (en) Video coding based on first order prediction and pre-defined second order prediction mode
KR101377883B1 (ko) 비디오 인코딩에서 넌-제로 라운딩 및 예측 모드 선택 기법들
JP5175397B2 (ja) 効率的な予測モード選択
EP3322184A1 (en) Non-zero rounding and prediction mode selection techniques in video encoding
JP2013520875A (ja) ビデオコーディングのための適応動き解像度
WO2015057570A1 (en) Multi-threaded video encoder

Legal Events

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