KR20200123787A - 일반화된 obmc를 위한 방법 및 장치 - Google Patents

일반화된 obmc를 위한 방법 및 장치 Download PDF

Info

Publication number
KR20200123787A
KR20200123787A KR1020207024139A KR20207024139A KR20200123787A KR 20200123787 A KR20200123787 A KR 20200123787A KR 1020207024139 A KR1020207024139 A KR 1020207024139A KR 20207024139 A KR20207024139 A KR 20207024139A KR 20200123787 A KR20200123787 A KR 20200123787A
Authority
KR
South Korea
Prior art keywords
block
sub
prediction
pixels
filtered
Prior art date
Application number
KR1020207024139A
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
Priority claimed from EP18305196.0A external-priority patent/EP3531701A1/en
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20200123787A publication Critical patent/KR20200123787A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/583Motion compensation with overlapping blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117Filters, e.g. for pre-processing or post-processing
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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

Landscapes

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

Abstract

서브-블록들로 스플릿되는 비디오 데이터의 블록은, 서브-블록에 대한 현재 예측이 이웃하는 예측들의 가중된 버전들과 조합되도록, 이웃하는 서브-블록들로부터의 예측들을 사용하여 그 서브-블록에 대한 예측을 형성한다. 이웃하는 서브-블록 모션 벡터들은, 그것들이 예측되는 서브-블록의 모션 벡터와 상이한지를 결정하기 위해 체크된다. 만약 그렇다면, 그것보다는 대응하는 이웃하는 서브-블록이 현재 서브-블록의 예측을 생성하는 데 사용된다. 일 실시예에서, 서브-블록 내의 픽셀들의 2개의 라인 또는 2개의 열은, 서브-블록을 포함하는 블록의 크기가 특정 크기 아래일 때 현재 서브-블록에 대한 예측을 형성하는 데 사용된다.

Description

일반화된 OBMC를 위한 방법 및 장치
본 원리들은 비디오 압축 분야에 관한 것이다.
HEVC 비디오 압축 표준(International Telecommunication Union, ITU-T H.265 High Efficiency Video Coding)에서, 픽처(picture)는 그 크기가 통상적으로 64x64, 128x128, 또는 256x256 픽셀들인 소위 코딩 트리 유닛(Coding Tree Unit, CTU)들로 분할된다.
각각의 CTU는 압축된 도메인에서 코딩 트리에 의해 표현된다. 도 1에 도시된 바와 같이, 이것은 CTU의 쿼드-트리 분할(quad-tree division)이며, 여기서 각각의 리프(leaf)는 코딩 유닛(Coding Unit, CU)이라고 한다.
그 다음, 각각의 CU에는 일부 인트라 또는 인터 예측 파라미터들(예측 정보)이 주어진다. 그렇게 하기 위해, 그것은 하나 이상의 예측 유닛(Prediction Unit, PU)으로 공간적으로 파티셔닝되고, 각각의 PU에는 일부 예측 정보가 할당된다. 인트라 또는 인터 코딩 모드는 CU 레벨에서 할당된다(도 2 참조).
HEVC 표준에 따르면, 코딩 유닛들은 또한 "변환 트리"에 따라, 재귀적인 방식으로, 소위 변환 유닛들로 분할된다. 따라서, 변환 트리는 코딩 유닛의 쿼드-트리 분할이고, 변환 유닛들은 변환 트리의 리프이다. 변환 유닛은 고려된 정사각형 공간 영역에 대응하는 각각의 픽처 컴포넌트의 정사각형 변환 블록들을 캡슐화한다. 변환 블록은, 동일한 변환이 적용되는, 단일 컴포넌트 내의 샘플들의 정사각형 블록이다.
새롭게 부상하는 비디오 압축 툴들은, 압축된 도메인에서 더 유연한 방식으로 픽처 데이터를 표현하기 위해 제안된, 압축된 도메인에서의 코딩 트리 유닛 표현을 포함한다. 코딩 트리의 이러한 유연한 표현의 이점은, 그것이 HEVC 표준의 CU/PU/TU 배열에 비해 증가된 압축 효율을 제공한다는 것이다.
종래 기술의 이들 및 다른 결점들 및 단점들은, 비디오 데이터의 블록을 코딩 또는 디코딩하기 위한 방법 및 장치에 관한, 설명된 실시예들 중 적어도 하나에 의해 해결된다. 적어도 하나의 실시예에서, 스플릿 파티션 확률들의 벡터(a vector of split partition probabilities)를 생성하기 위해 컨볼루션 신경망을 사용하는 것이 제안된다.
본 명세서에 설명된 적어도 하나의 일반적인 실시예에 따르면, 비디오 데이터의 블록을 코딩하기 위한 방법이 제공된다. 그 방법은 비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하는 단계; 상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 서브-블록에 대한 예측을 생성하는 단계; 및 상기 필터링된 예측을 사용하여 상기 서브-블록을 인코딩하는 단계를 포함한다.
본 명세서에 설명된 적어도 하나의 일반적인 실시예에 따르면, 비디오 데이터의 블록을 디코딩하기 위한 방법이 제공된다. 그 방법은 비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하는 단계; 상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 서브-블록에 대한 예측을 생성하는 단계; 및 상기 필터링된 예측을 사용하여 상기 서브-블록을 디코딩하는 단계를 포함한다.
본 명세서에 설명된 다른 일반적인 실시예에 따르면, 비디오 데이터의 블록을 코딩하기 위한 장치가 제공된다. 그 장치는 메모리 및 프로세서를 포함하고, 프로세서는 비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하고; 상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 서브-블록에 대한 예측을 생성하고; 상기 필터링된 예측을 사용하여 상기 서브-블록을 인코딩하도록 구성된다.
본 명세서에 설명된 다른 일반적인 실시예에 따르면, 비디오 데이터의 블록을 코딩하기 위한 장치가 제공된다. 그 장치는 메모리 및 프로세서를 포함하고, 프로세서는 비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하고; 상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 서브-블록에 대한 예측을 생성하고; 상기 필터링된 예측을 사용하여 상기 서브-블록을 디코딩하도록 구성된다.
본 명세서에 설명된 다른 양태에 따르면, 설명된 방법 실시예들 중 어느 하나의 방법에 따라, 또는 프로세서를 사용하는 플레이백을 위한 설명된 장치 실시예들 중 어느 하나의 장치에 의해, 생성된 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독가능 저장 매체가 제공된다.
본 명세서에 설명된 다른 양태에 따르면, 비디오 데이터의 블록을 코딩하기 위한 설명된 방법 실시예들 중 어느 하나의 방법에 따라, 또는 프로세서를 사용하는 플레이백을 위한 설명된 장치 실시예들 중 어느 하나의 장치에 의해, 생성된 비디오 데이터를 포함하는 신호가 제공된다.
본 명세서에 설명된 다른 양태에 따르면, 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금, 설명된 방법 실시예들 중 어느 하나의 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품이 제공된다.
본 원리들의 이들 및 다른 양태들, 특징들 및 이점들은, 첨부 도면들과 관련해서 읽혀질, 예시적인 실시예들의 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 압축된 픽처를 표현하기 위한 코딩 트리 유닛 및 코딩 트리 개념들의 일 예를 도시한다.
도 2는 코딩 트리 유닛을 코딩 유닛들, 예측 유닛들 및 변환 유닛들로 분할하는 예를 도시한다.
도 3은 표준 일반 비디오 압축 방식을 도시한다.
도 4는 표준 일반 비디오 압축해제(decompression) 방식을 도시한다.
도 5는 32x16 전체 인터(INTER) 코딩 유닛에 적용된 종래 기술의 OBMC를 도시한다.
도 6은 전체 인터 코딩 유닛에 대한 종래 기술의 OBMC 프로세스를 도시한다.
도 7은 16x16 분할된 인터 코딩 유닛에 적용된 종래 기술의 OBMC를 도시한다.
도 8은 분할된 인터 코딩 유닛에 대한 종래 기술의 OBMC 프로세스를 도시한다.
도 9는 전체 코딩 유닛으로서 검출된 16x16 분할된 인터 코딩 유닛에 적용된 종래 기술의 OBMC를 도시한다.
도 10은 서브-블록들로 분할된 것으로서 검출된 32x16 전체 인터 코딩 유닛에 적용된 종래 기술의 OBMC를 도시한다.
도 11은 모든 인터 코딩 유닛에 대한 제안된 일반화된 OBMC 프로세스의 일 실시예를 도시한다.
도 12는 병합 ATMVP 모드(Merge ATMVP mode)에서 32x16 인터 코딩 유닛에 적용된 제안된 일반화된 OBMC에 대한 예를 도시한다.
도 13은 병합 ATMVP 모드에서 32x16 인터 코딩 유닛에 적용된 대응하는 종래 기술의 OBMC를 도시한다.
도 14는 얇은 코딩 유닛들에 대한 제안된 OBMC 프로세스의 예를 도시한다.
도 15는 얇은 코딩 유닛들에 대한 대응하는 종래 기술의 OBMC 프로세스를 도시한다.
도 16은 전체 인터 코딩 유닛들에 대한 제안된 일반화된 OBMC 프로세스의 예시적인 실시예를 도시한다.
도 17은 모든 인터 코딩 유닛들에 대한 제안된 일반화된 OBMC 프로세스의 예시적인 실시예를 도시한다.
도 18은 인코더에 대한 제안된 OBMC 방법의 일 실시예를 도시한다.
도 19는 디코더에 대한 제안된 OBMC 방법의 일 실시예를 도시한다.
도 20은 제안된 OBMC 프로세스에 대한 장치의 일 실시예를 도시한다.
비디오 신호의 개선된 엔트로피 코딩 효율에 대한 접근법이 설명된다. 특히, OBMC(Overlapped Block Motion Compensation)에 대한 개선된 접근법이 설명된다.
HEVC 비디오 압축 표준에서는, 비디오의 연속적인 픽처들 사이에 존재하는 중복성(redundancy)을 활용하기 위해 모션 보상된 시간 예측(motion compensated temporal prediction)이 이용된다.
그렇게 하기 위해, 이제 소개되는, 각각의 예측 유닛(PU)에 모션 벡터가 연관된다. 각각의 CTU는 압축된 도메인에서 코딩 트리에 의해 표현된다. 이것은 CTU의 쿼드-트리 분할이며, 여기서 각각의 리프는 코딩 유닛(CU)이라고 한다(도 1 참조).
그 다음, 각각의 CU에는 일부 인트라 또는 인터 예측 파라미터들(예측 정보)이 주어진다. 그렇게 하기 위해, 그것은 하나 이상의 예측 유닛(Prediction Unit, PU)으로 공간적으로 파티셔닝되고, 각각의 PU에는 일부 예측 정보가 할당된다. 인트라 또는 인터 코딩 모드는 CU 레벨에서 할당된다(도 2 참조).
HEVC에서는 정확히 하나의 모션 벡터가 각각의 PU에 할당된다. 이 모션 벡터는 고려된 PU의 모션 보상된 시간 예측에 사용된다.
JVET(Joint Video Exploration Team) 그룹에 의해 개발된 JEM(Joint Exploration Model)에서는, CU가 PU 또는 TU로 더 분할되지 않고, 일부 모션 데이터가 각각의 CU에 직접 할당된다. 이 새로운 코덱 설계에서는, CU가 서브-CU로 분할될 수 있고, 모션 벡터가 각각의 서브-CU에 대해 계산될 수 있다.
JEM에서, 모션 보상 단계에 이어서, 코딩 모드가 무엇이든 모든 인터 CU들에 대해, (어떻게든 블록화 아티팩트들(blocking artifacts)을 갖는 비블록화 필터(deblocking filter)처럼) CU들 사이의 모션 전이(motion transition)들을 감쇠시키는 것을 목표로 하는 OBMC(Overlapped Block Motion Compensation)라고 불리는 프로세스가 뒤따른다. 그러나, CU 코딩 모드에 따라, 적용되는 OBMC 방법은 동일하지 않다. 2개의 별개의 프로세스가 존재하는데, 하나는 더 작은 파트들로 분할된 CU들(아핀, FRUC, …)에 대한 것이고, 하나는 그 외의 CU들(온전한 CU들(entire ones))에 대한 것이다.
본 접근법은 모션 보상 인터 예측(motion compensation inter prediction) 프로세스 직후에 인코더 및 디코더 측에서 수행되는 OBMC 툴의 프로세스를 일반화하는 것을 제안한다.
이 접근법에 의해 해결되는 문제는, 설계를 단순화하고 고려된 비디오 코덱의 전체 압축 성능을 증가시키기 위해, 모든 CU들에 대해 OBMC 프로세스를 일반화하는 방법이다.
최신 기술의 접근법에서, 서브-파트들로 분할되는 CU들은 분할되지 않는 CU들(온전한 CU들)과 동일한 OBMC 프로세스를 따르지 않는다.
제안된 접근법의 기본 아이디어는 모션 보상 인터 예측 후에 수행되는 OBMC 프로세스를 모든 CU들에 대해 일반화하는 것이다.
평활화된 예측 동작들은 중첩 블록 모션 보상(Overlapped Block Motion Compensation, OBMC)과 관련하여 설명된다. OBMC는 크기 4x4 픽셀들의 서브-블록 레벨에서 동작한다. 도면들에서, 전체 블록은 코딩 유닛(CU)이고, 작은 정사각형들은 4x4 서브-블록들이다.
각각의 단계에서, 프로세스는 2개의 예측, Pc 및 Pn을 구성하며, 여기서 예측은 현재 CU 모션 벡터(Pc) 및 이웃하는 서브-블록으로부터의 모션 벡터(Pn)를 이용하는 모션 보상으로 보상된 대응하는 서브-블록(즉, 모션 벡터를 사용하여 참조 픽처로부터 선택된 서브-블록)이다.
그 다음, 현재 예측(Pc)은 다른 예측(Pn)을 사용하여 평활화되어, 새로운 현재 예측을 제공한다.
예를 들어, Pn이 좌측 이웃하는 모션 벡터를 사용하여 획득되었다면, 픽셀들의 제1 좌측 열은 Pc'=3/4Pc + 1/4Pn로 되고, 제2 열 Pc'=7/8Pc + 1/8Pn, ...로 될 것이다.
따라서, 도면들에서, 스트라이프 라인들은 평활화의 방향에 대응한다. 그것들이 4x4 서브-블록을 채우면, 4개의 라인/열이 필터링된다는 것을 의미하며, 그것들이 서브-블록의 절반만을 채우면, 2개의 라인/열만이 필터링된다는 것을 의미한다. 스트라이프들 자체는 픽셀들의 라인들/열들의 수를 나타내지 않는다.
종래 기술의 OBMC와 일반화된 OBMC 프로세스 사이의 하나의 주요 차이점은 필터링될 픽셀들의 라인들/열들의 수가 정의되는 방식에 있다.
종래 기술에서, 그것은 현재 코딩 유닛의 코딩 모드로부터 모든 방향들에 대해 선험적으로 설정된다. 코딩 유닛이 서브-블록들로 분할된 경우, 각각의 이웃과 함께 2개의 라인/열이 필터링되고, 코딩 유닛의 면적이 64보다 작은 경우, 2개의 라인/열에 대해 필터링이 행해지는 것을 제외하고, 전체 코딩 유닛이 하나의 엔티티로서 처리되는 경우, 4개의 라인/열이 필터링된다.
일반화된 OBMC의 실시예에서, 이 수는 각각의 방향에 대해 그리고 각각의 서브-블록에 대해 상이할 수 있다. 이는 2개의 반대쪽 이웃으로부터 정의되고, 둘 다가 현재 서브-블록에 대한 것과 상이한 모션 벡터와 함께 이용가능하면, 각각의 이웃으로부터 2개의 라인/열이 필터링되고, 하나만이 이용가능하면, 이 이용가능한 이웃으로부터 4개의 라인/열이 필터링된다. 그리고 아무것도 이용가능하지 않거나 또는 두 모션 벡터들이 현재의 서브-블록 모션 벡터와 동일하다면, 필터링이 적용되지 않는다.
예를 들어, 수평을 테스트할 때, (현재의 것의) 좌측 및 우측 서브-블록들로부터의 좌측 및 우측 MV들이 가능한 경우 검색되고, 두 MV들이 현재 서브-블록의 현재 모션 벡터와 상이하면, 현재 서브-블록의 픽셀들의 제1 좌측 열은 Pc'=3/4Pc + 1/4PL로 되고 제2 열 Pc'=7/8Pc + 1/8PL로 될 것이고, 픽셀들의 마지막 열은 Pc'=3/4Pc + 1/4PR로 되고 제3 열 Pc'=7/8Pc + 1/8PR로 될 것이다.
또한, 종래 기술의 OBMC에서는, 현재 CU의 면적이 64보다 작다면(4x4, 8x4, 4x8), 필터링될 픽셀들의 수를 강제로 2로 만든다.
이러한 한정은 코딩 유닛이 크지 않을 때 필터링을 제한한다. 예를 들어, 4x4 CU의 경우, 하나의 서브-블록만이 존재하고, 이 기준이 없으면, 모든 라인들 및 열들은 좌측으로부터 상부로 필터링될 것이고, 이것은 좀 너무 많을 수 있다. 이러한 기준으로, 2개의 라인 및 열만이 필터링될 것이다.
그러나, 64보다 큰 면적을 갖는 일부 CU는, 제안된 일반화된 OBMC에서와 같이, 한 방향에서 4 픽셀들의 크기(4x16, 16x4, 4x32, 32x4, …)를 가질 수 있고, 필터링될 픽셀들의 수는 각각의 방향에 대해 상이하게 설정될 수 있으며, 이러한 면적 기준을 방향에 따라 크기 기준이 되도록 수정하는 것이 가능하다. 도 14에 도시된 바와 같이, CU가 한 방향에서 8보다 작은 크기를 갖는다면, 이 방향에서 평활화될 픽셀들의 수는 강제로 2로 될 수 있고, 다른 방향에서는 4일 수 있다. 도 15는 너무 많은 필터링을 갖는 종래 기술을 도시한다.
제안된 실시예들은 특히 다음을 포함한다.
- 코딩 모드가 무엇이든 모든 CU들에 대해 OBMC 프로세스를 일반화한다.[인코더/디코더]
- 얇은 CU들에 대해 프로세스를 적응시킨다.[인코더/디코더]
- 일부 특정 CU들에 대해 프로세스의 속도를 높인다.[인코더/디코더]
영향을 받는 코덱 모듈들은 도 3의 모션 보상(170) 및 모션 추정(175)과 도 4의 275이다.
OBMC(Overlapped Block Motion Compensation)는 서브-블록들로 분할된 CU들 사이의 그리고 그것들 내부의 모션 전이들을 감소시키는 것을 목표로 한다.
최신 기술에서, OBMC 프로세스의 제1 단계는, 전체 또는 서브-블록들로 분할된, 필터링할 CU의 종류를 검출하는 것에 있다. 디폴트로, 인입 CU는 전체로 고려된다. 실제 JEM에서, 서브-블록들로 분할된 CU는 ATMVP/STMVP 예측자를 갖는 병합 모드, FRUC 병합 모드 또는 아핀 모드를 사용하여 코딩된다.
이들 두 종류의 CU에 적용되는 다음의 OBMC 프로세스는 상이하다.
최신 기술에 따르면, 전체 CU들의 경우, 모션 전이들은 상부 및 좌측 경계들에서 발생하고(하부 및 우측은 아직 코딩/디코딩되지 않음), 그래서 이러한 CU들의 경우에는, 32x16 전체 인터 코딩된 코딩 유닛에 적용되는 종래 기술의 OBMC인, 도 5에 도시된 바와 같이 OBMC가 4x4 서브-블록들의 상부 행 및 좌측 열에만 적용된다.
현재 CU의 모션 보상으로 그리고 이 현재 CU의 모션 벡터를 사용하여 획득된 현재의 4x4 서브-블록 예측을 Pc로 표시하고, 이웃하는 4x4 서브-블록 모션 벡터로 획득된 대응하는 4x4 서브-블록 예측을 Pn - n은 상부(T) 또는 좌측(L)에 있음 - 으로 표시한다. 이웃하는 4x4 서브-블록이 현재 모션 벡터와 상이한 모션 벡터로 존재하는 경우에만 Pn이 존재하고 OBMC이 현재의 4x4 서브-블록에 적용될 수 있다.
각각의 4x4 서브-블록에 대해, 현재 예측(Pc)은 그 다음에 모션 전이를 평활화하기 위해 이용가능한 예측들(Pn)을 사용하여 필터링된다.
Pn의 픽셀들의 4개의 라인 및/또는 열은 Pc에 대한 가중 인자들{1/4, 1/8, 1/16, 1/32} 및 Pn에 대한 가중 인자들{3/4, 7/8, 15/16, 31/32}을 사용하여 현재 예측 Pc에 추가된다.
현재 CU 면적이 64보다 작으면(4x4, 8x4 및 4x8 CU들), 2개의 제1 가중 인자를 사용하여 픽셀들의 2개의 제1 라인/열만이 필터링된다.
수 개의 픽셀들이 여러 번 순차적으로 필터링되기 때문에, 제1 4x4 서브-블록에서, 그 결과는 상이한 이웃들의 사용 순서에 의존한다. 그 점에 관해서는, OBMC가 좌측으로부터 상부로 필터링하고, 이것은 Pc가 다음과 같이 되는 것을 암시한다:
- 제1 4x4 서브-블록에 대해 Pc ---PL---> Pc'---PT--->Pc''
- 제1 열의 모든 다른 서브-블록에 대해 Pc ---PL---> Pc'
- 제1 라인의 모든 다른 서브-블록에 대해 Pc ---PT--->Pc''
전체 CU들에 대한 전체 OBMC 프로세스는 도 6에 도시된 바와 같다.
최신 기술에 따르면, 서브-블록들로 분할된 CU들의 경우, 모션 전이들은 모든 서브-블록 사이와 상부 및 좌측 경계들에서 발생하며, 그래서 이러한 CU들의 경우에는, 32x16 전체 인터 코딩된 코딩 유닛에 적용되는 최신 기술의 OBMC를 도시하는, 도 7에 도시된 바와 같이 OBMC가 각각의 4x4 서브-블록에 적용된다.
이 경우, Pn은 (인과적인(causal) CU로부터 또는 현재 CU로부터, 그리고 현재 모션 벡터와 상이한 모션 벡터에 의해) 이용가능한 경우 4개의 상이한 이웃, 상부(T), 좌측(L), 하부(B) 및 우측(R) 이웃하는 서브-블록으로부터 획득될 수 있다.
각각의 4x4 서브-블록에 대해, 현재 예측(Pc)은 그 다음에 모션 전이들을 평활화하기 위해 모든 이용가능한 예측들(Pn)을 사용하여 필터링된다.
각각의 서브-블록의 픽셀들의 2개의 첫번째 라인 또는 열은 각각 상부 또는 좌측 이웃하는 서브-블록들로부터의 현재 예측 Pc 및 Pn의 가중 합(weighted sum)이다. 각각의 서브-블록의 픽셀들의 2개의 마지막 라인 또는 열은 각각 하부 또는 우측 이웃하는 서브-블록으로부터의 Pn을 사용한다. 여기서 사용되는 가중 인자들은 Pn에 대한 {1/4, 1/8} 및 Pc에 대한 {3/4, 7/8}이다.
거의 모든 픽셀들이 여러 번 순차적으로 필터링되기 때문에, 그 결과는 상이한 이웃들의 사용 순서에 의존한다. 그 점에 관해서는, OBMC가 좌측으로부터 상부 다음에 우측 및 하부로 필터링하고, 이것은 Pc가 다음과 같이 되는 것을 암시한다:
- 마지막 행 및 열을 제외한 모든 4x4 서브-블록들에 대해 Pc ---PL---> Pc' ---PT---> Pc'' ---PR---> Pc''' ---PB---> Pc''''
- 마지막 4x4 서브-블록을 제외한 4x4 서브-블록들의 마지막 행에 대해 Pc ---PL---> Pc' ---PT---> Pc'' ---PR---> Pc'''
- 마지막 4x4 서브-블록을 제외한 4x4 서브-블록들의 마지막 열에 대해 Pc ---PL---> Pc' ---PT---> Pc'' ---PB---> Pc''''
- 마지막 4x4 서브-블록에 대해 Pc ---PL---> Pc' ---PT---> Pc''
그 다음, 서브-블록들로 분할된 이러한 CU들에 대한 OBMC 프로세스는 도 8에 도시된 바와 같다.
이 툴의 주요 제한은, 처리할 CU가 서브-블록들로 분할되는지 여부를 검출하고, 그것을, 디폴트로, 전체로서 고려할 필요가 있다는 것이다.
실제로, 새로운 코딩 모드가 추가될 때, 그것은, 디폴트로, 전체로서 고려된다. 그러한 경우 및 CU들을 서브-블록들로 분할하는 경우, 그것은 아래에서 도 9에 제시된 분류 에러(classification error)로 진행한다.
그리고, 서브-블록들로 분할된 CU가 잘 분류되지 않으면, 서브-블록들의 첫번째 라인 및 열만이 필터링될 것이지만, 픽셀들의 4개의 행/열은 도 7의 결과 대신에 도 9에 도시된 바와 같이 될 것이다.
동일한 방식으로, 전체 CU가 서브-블록들로 분할된 것으로서 분류되면, 모든 서브-블록들이 처리될 것이다. 현재 CU 내부의 모든 모션 벡터들이 동일한 값을 갖기 때문에, OBMC는 서브-블록들의 첫번째 라인 및 열만을 필터링할 것이지만, 도 5의 정확한 결과 대신에 다음의 도 10에 제시된 바와 같이 픽셀들의 2개의 행/열만이 평활화될 것이다.
그래서, CU가 잘 분류되지 않을 때, 이어지는 OBMC 프로세스는 상이하고 결과도 또한 상이하다.
기존의 툴이 수정되어 하나의 카테고리로부터 다른 카테고리로 되거나 새로운 툴이 추가될 때마다, OBMC는 CU를 정확하게 분류하도록 수정되어야 하고, 그렇지 않으면 차선의 프로세스로 진행할 것이다.
다음의 단락들은 이 접근법에서 제안된 일반화된 OBMC 프로세스를 설명한다.
제안된 해결책은 최신 기술의 OBMC와 동일한 결과를 위해 CU를 분류할 필요가 없고, CU의 면적에 의해 제한되지 않는다.
제안된 접근법은, 모든 주변 이웃들이 고려되는, 서브-블록들로 분할된 CU들에 대한 최신 기술의 OBMC 프로세스에 기초한다.
제안된 일반화된 OBMC 프로세스에서, 4개의 이웃하는 서브-블록들은 쌍들, 좌-우 및 상-하, 즉, 수평 및 수직에 의해 체크되지만, 여전히 순차적으로 사용되어, 현재 예측을 평활화한다.
현재 코딩 유닛 및 각각의 방향의 각각의 4x4 서브-블록에 대해, 이웃하는 모션 벡터들 둘 다는, 이용가능한 경우, 즉, 그것들이 현재 서브-블록에 대한 모션 벡터와 상이한 모션 벡터와 함께 존재하는 경우 검색된다.
이웃하는 모션 벡터들 둘 다가 이용가능한 경우, 이 테스트된 방향을 따라 필터링될 픽셀들의 수는 2로 설정된다. 즉, 처음 2개의 라인 또는 열은 제1 이웃으로 필터링될 것이고, 마지막 2개의 라인 또는 열은 제2 이웃으로 필터링될 것이다. 그리고, 하나의 이웃하는 모션 벡터만이 이용가능한 경우, 그것은 4 픽셀들로 설정된다. 즉, 4개의 라인/열이 이 이웃으로 필터링될 것이다. 어느 것도 이용가능하지 않은 경우, OBMC는 여전히 적용가능하지 않다.
다음으로, 서브-블록은 이용가능한 이웃하는 모션 벡터들과 그것의(그것들의) 연관된 Pn 및 최신 기술의 OBMC에 대해서와 동일한 가중 인자들(Pn에 대한 {1/4, 1/8, 1/16, 1/32} 및 Pc에 대한 {3/4, 7/8, 15/16, 31/32})을 사용하여 순차적으로 평활화된다. 이 가중치들은 테스트된 이웃으로부터 그 반대쪽으로; 좌측에 대해 좌측으로부터 우측으로 및 상부에 대해 상부로부터 하부로, 우측에 대해 우측으로부터 좌측으로, 적용된다.
제안된 해결책에서, 이웃들은 방향 쌍들, 좌-우 및 상-하로 연구된다. 이것은, CU 코딩 모드에 따라, 선험적으로, 이 수를 설정하는 대신에, 평활화될 픽셀들의 라인들 또는 열들의 수를 2 또는 4로서 선택하는 것을 허용한다.
OBMC 프로세스는 현재 예측을 필터링함으로써 모션 전이를 평활화하고, 따라서 여기서 설명된 제안된 해결책은 코딩 유닛의 각각의 서브-블록의 현재 예측을 약간 수정한다.
또한, 이 해결책이 각각의 방향에서 독립적으로 평활화된 라인들/열들의 수를 선택하는 것을 허용한다는 것과, 그것들이 상이할 수 있다는 것에 주목하는 것이 중요하다. 이것은 도 13의 종래 기술의 OBMC에 비해 도 12에 도시된 바와 같이 병합 ATMVP/STMVP 모드에서 코딩된 것들과 같은 CU들에서의 모션 전이들에 더 잘 맞출 수 있게 허용한다.
이 예에서, 우측에 있는 8x16 파티션은 일반화된 OBMC 프로세스로 독립적인 CU인 것처럼 정확하게 평활화되지만, 최신 기술의 OBMC에서는 그렇지 않다.
도 5에 제시된 바와 같은 전체 CU들에 대해, 그리고 도 7에 제시된 바와 같은 서브-블록들로 완전히 분할된 CU들(아핀, FRUC)에 대해, 일반화된 OBMC 프로세스의 출력은 최신 기술의 OBMC와 동일하다.
결과들에서의 유일한 차이는, 도 12에 제시된 바와 같이 병합 ATMVP/STMVP 모드로 코딩된 것들로서 서브-블록들로 완전히 분할되지 않은 CU들에 대해 관측될 수 있다.
최신 기술의 OBMC에서, CU 면적이 64 미만일 때, 픽셀들의 2개의 라인/열만이 필터링된다.
이러한 개념은 또한 새로운 제안된 OBMC 프로세스에서 일반화될 수 있다.
이웃들의 각각의 쌍에 대해, CU의 대응하는 크기(수평에 대한 폭 또는 수직에 대한 높이)가 8보다 작다면, 필터링될 픽셀들의 수를 강제로 2로 만든다. 이어서, 얇은 CU는 도 14에 제시된 바와 같이 픽셀들의 2개의 라인 및 4개의 열을 따라 또는 그 반대로 필터링될 수 있다.
이러한 일반화된 기준은 또한 64보다 작은 CU들(4x4, 8x4 및 4x8)에 대한 2 픽셀들 및 더 큰 것들(4x16, 16x4, 4x32, 32x4, …)에 대한 4 픽셀들만을 필터링하는 최신 기술의 OBMC에 비해 모션 전이들에 더 잘 맞출 수 있게 허용하며, 전체 폭 또는 높이는 도 15에 제시된 바와 같이 평활화된다.
제안된 일반화된 OBMC의 복잡성은 종래 기술의 OBMC보다 더 높은데, 그 이유는 그것이 모든 CU들의 모든 서브-블록들에 대한 4개의 이웃을 체크하는 반면, 종래 기술의 OBMC에서는 서브-블록들로 분할된 CU들에 대해서만 체크되기 때문이다.
일반화된 OBMC의 프로세스의 속도를 높이기 위해, 최신 기술의 OBMC에서 사용되는 것과 동일한 종류의 분류를 사용하는 것이 가능하다.
여기서 사용되는 분류는 (서브-블록들로 분할된 CU들 대신에) 전체 CU들을 격리하고, 디폴트로, 유입 CU를 (전체 대신에) 서브-블록들로 분할된 것으로서 고려한다. 이러한 반전된 분류(reversed classification)는, 도 9의 에러는 여전히 관찰될 수 있지만 도 10의 에러는 더 이상 발생할 수 없기 때문에 불량 검출들에 관련된 에러들을 제한한다. 더욱이, 새로운 코딩 모드가 추가될 때, 디폴트로, 서브-블록들로 분할된 것으로서 고려되고, 전체 CU들을 사용하는 경우에는, 여기서 상이한 OBMC 결과를 생성하지 않는 도 10에서 제시된 불량 분류로 진행된다. 따라서, 코딩 모드가 전체로부터 분할된 것으로 전환될 때, OBMC는 수정되어야 하지만, 분할된 것으로부터 전체로 전환될 때 또는 새로운 코딩 모드가 추가될 때, OBMC 결과는 동일하고, OBMC에 통지함으로써 복잡성만이 감소될 수 있다.
분류 후에, 전체 CU들은 단순화되고 더 빠른 OBMC 프로세스로 진행되며, 여기서 서브-블록들의 첫번째 라인 및 열만이 각각의 쌍의 제1 이웃만을 사용하여 필터링된다(반대쪽 이웃은 항상 이용불가능한 것으로 간주된다).
전체로서 분류된 CU들에 대한 OBMC 프로세스는 도 16에서 설명된 바와 같이 되고, 다른 CU들에 대한 것은 도 11에 제시된 것으로 유지된다.
하나의 바람직한 실시예에서, OBMC의 3가지 제안된 개선이 사용된다: 얇은 CU들에 대한 일반화된 기준을 갖는 일반화된 프로세스 및 전체 CU들에 대한 단순화된 버전.
전체 CU들에 대한 프로세스는 도 16에 설명되고, 다른 CU들에 대해서는 도 17에 제시된 바와 같은 추가적인 얇은 CU 관리와 함께 도 11에 의해 설명된다.
평활화된 예측 동작들은 중첩 블록 모션 보상(Overlapped Block Motion Compensation, OBMC)과 관련하여 설명되지만, 다른 예측 방법들로 일반화될 수 있다.
각각의 단계에서, 프로세스는 2개의 예측, Pc 및 Pn을 구성하며, 여기서 예측은 현재 CU 모션 벡터(Pc) 및 이웃하는 서브-블록으로부터의 모션 벡터(Pn)로 보상된 대응하는 서브-블록(모션 보상으로, 즉, 모션 벡터를 사용하여 참조 픽처로부터 선택된 서브-블록)이다.
그 다음, 현재 예측(Pc)은 다른 예측(Pn)을 사용하여 평활화되어, 새로운 현재 예측을 제공한다.
종래 기술의 OBMC와 일반화된 OBMC 프로세스 사이의 하나의 주요 차이점은 필터링될 픽셀들의 라인들/열들의 수가 정의되는 방식에 있다.
종래 기술에서, 그것은 현재 코딩 유닛의 코딩 모드로부터 모든 방향들에 대해 선험적으로 설정된다. 코딩 유닛이 서브-블록들로 분할된 경우, 각각의 이웃과 함께 2개의 라인/열이 필터링되고, 코딩 유닛의 면적이 64보다 작은 경우, 2개의 라인/열에 대해 필터링이 행해지는 것을 제외하고, 전체 코딩 유닛이 하나의 엔티티로서 처리되는 경우, 4개의 라인/열이 필터링된다.
일반화된 OBMC의 실시예에서, 이 수는 각각의 방향에 대해 그리고 각각의 서브-블록에 대해 상이할 수 있다. 이는 2개의 반대쪽 이웃으로부터 정의되고, 둘 다가 현재 서브-블록에 대한 것과 상이한 모션 벡터와 함께 이용가능하면, 각각의 이웃으로부터 2개의 라인/열이 필터링되고, 하나만이 이용가능하면, 이 이용가능한 이웃으로부터 4개의 라인/열이 필터링된다.
또한, 종래 기술의 OBMC에서는, 현재 CU의 면적이 64보다 작다면(4x4, 8x4, 4x8), 필터링될 픽셀들의 수를 강제로 2로 만든다.
이러한 한정은 코딩 유닛이 크지 않을 때 필터링을 제한한다. 예를 들어, 4x4 CU의 경우, 하나의 서브-블록만이 존재하고, 이 기준이 없으면, 모든 라인들 및 열들은 좌측으로부터 상부로 필터링될 것이고, 이것은 좀 너무 많을 수 있다. 이러한 기준으로, 2개의 라인 및 열만이 필터링될 것이다.
그러나, 64보다 큰 면적을 갖는 일부 CU는, 제안된 일반화된 OBMC에서와 같이, 한 방향에서 4 픽셀들의 크기(4x16, 16x4, 4x32, 32x4, …)를 가질 수 있고, 필터링될 픽셀들의 수는 각각의 방향에 대해 상이하게 설정될 수 있으며, 이러한 면적 기준을 방향에 따라 크기 기준이 되도록 수정하는 것이 가능하다. 도 14에 도시된 바와 같이, CU가 한 방향에서 8보다 작은 크기를 갖는다면, 이 방향에서 평활화될 픽셀들의 수는 강제로 2로 되고, 다른 방향에서는 4일 수 있다. 도 15는 너무 많은 필터링을 갖는 종래 기술을 도시한다.
OBMC 설계는, 각각의 OBMC 4XS 대역에 대한 일루미네이션 보상(illumination compensation, IC) 파라미터들을 계산하지 않고 이웃하는 4x4 서브-블록들로부터 IC 파라미터들을 상속(inheriting)함으로써 조명(lighten)될 수 있다. 이를 위해, 현재 픽처의 IC 파라미터들은 4x4 서브-블록 해상도로 모션 필드 정보와 함께 저장된다.
전술한 실시예들은 인코더 또는 인코딩 동작에 관하여 설명되었다. 디코더는 RDO 프로세스 또는 임의의 다른 타입의 스플릿하는 실시예로 생성된 스플릿들과 동일한 방식으로 설명된 실시예들을 사용하여 인코더에서 생성된 스플릿들을 단순히 해석할 것이다.
도 18은 비디오 데이터의 블록을 코딩하기 위한 방법(1800)의 일 실시예를 도시한다. 그 방법은 시작 블록(1801)에서 시작하고 블록(1810)으로 진행하여 서브-블록 주위의 모션 벡터들의 수평 및 수직 쌍들을 비교한다. 서브-블록은 인코딩될 더 큰 블록의 일부일 수 있다. 그 방법은 이웃하는 서브-블록들의 모션 벡터들을 서브-블록에 대한 현재 모션 벡터와 비교한다. 제어는 블록(1810)으로부터 블록(1820)으로 진행하여, 서브-블록에 대한 현재 모션 벡터와는 상이한 모션 벡터들을 갖는 서브-블록들의 이웃하는 예측들로 서브-블록에 대한 현재 예측을 사용하는 서브-블록의 예측을 필터링해서, 현재 서브-블록의 평활화된 예측을 생성한다. 제어는 블록(1820)으로부터 블록(1830)으로 진행하여, 서브-블록에 대한 평활화된 예측을 사용하여 서브-블록을 인코딩한다.
도 19는 비디오 데이터의 블록을 코딩하기 위한 방법(1900)의 일 실시예를 도시한다. 그 방법은 시작 블록(1901)에서 시작하고 블록(1910)으로 진행하여 서브-블록 주위의 모션 벡터들의 수평 및 수직 쌍들을 비교한다. 서브-블록은 디코딩될 더 큰 블록의 일부일 수 있다. 그 방법은 이웃하는 서브-블록들의 모션 벡터들을 서브-블록에 대한 현재 모션 벡터와 비교한다. 제어는 블록(1910)으로부터 블록(1920)으로 진행하여, 서브-블록에 대한 현재 모션 벡터와는 상이한 모션 벡터들을 갖는 서브-블록들의 이웃하는 예측들로 서브-블록에 대한 현재 예측을 사용하는 서브-블록의 예측을 필터링해서, 현재 서브-블록의 평활화된 예측을 생성한다. 제어는 블록(1920)으로부터 블록(1930)으로 진행하여, 서브-블록에 대한 평활화된 예측을 사용하여 서브-블록을 디코딩한다.
도 20은 비디오 데이터의 블록을 코딩 또는 디코딩하기 위한 장치(2000)의 일 실시예를 도시한다. 그 장치는 입력 및 출력 포트들을 갖는 프로세서(2010)를 포함하고, 프로세서(2010)는 입력 및 출력 포트들을 또한 갖는 메모리(2020)와 신호 접속성(signal connectivity) 상태에 있다. 그 장치는 전술한 방법 실시예들, 또는 그의 임의의 변형들 중 어느 하나를 실행할 수 있다.
도면들에 도시된 다양한 요소들의 기능들은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 연관하여 소프트웨어를 실행할 수 있는 하드웨어를 사용하여 제공될 수 있다. 프로세서에 의해 제공될 때, 기능들은 단일 전용 프로세서에 의해, 단일 공유 프로세서에 의해, 또는 그 중 일부가 공유될 수 있는 복수의 개별적인 프로세서에 의해 제공될 수 있다. 또한, 용어 "프로세서" 또는 "제어기"의 명시적 사용은 소프트웨어를 실행할 수 있는 하드웨어를 배타적으로 지칭하도록 해석되지 않아야 하고, 디지털 신호 프로세서(digital signal processor)("DSP") 하드웨어, 소프트웨어를 저장하기 위한 판독-전용 메모리(read-only memory)("ROM"), 랜덤 액세스 메모리(random access memory)("RAM"), 및 비휘발성 스토리지를 암시적으로 포함할 수 있으며, 이에 제한되지는 않는다.
종래의 및/또는 주문형(custom)의 다른 하드웨어도 포함될 수 있다. 유사하게, 도면들에 도시된 임의의 스위치들은 개념적일 뿐이다. 이들의 기능은 프로그램 로직(program logic)의 동작을 통해, 전용 로직을 통해, 프로그램 제어와 전용 로직의 상호작용을 통해, 또는 심지어 수동으로 수행될 수 있고, 특정 기법은 맥락으로부터 더 구체적으로 이해되는 바와 같이 구현자에 의해 선택가능하다.
본 설명은 본 아이디어들을 예시한다. 따라서, 본 기술분야의 통상의 기술자는 본 명세서에 명시적으로 설명되거나 도시되지는 않았지만 본 아이디어들을 제시하고 그 사상 및 범위 내에 포함되는 다양한 배열들을 고안할 수 있을 것이라는 것을 이해할 것이다.
본 명세서에서 언급된 모든 예들 및 조건부 언어는, 본 발명자(들)에 의해 본 기술분야를 발전시키는데 기여한 본 원리들 및 개념들을 독자가 이해하는 것을 돕기 위한 교육적 목적들을 위해 의도되며, 이러한 구체적으로 언급된 예들 및 조건들에 제한되지는 않는 것으로서 해석되어야 한다.
또한, 본 명세서에서 원리들, 양태들, 및 본 원리들의 실시예들뿐만 아니라 그의 구체적인 예들을 언급하는 모든 표현은 그의 구조적 및 기능적 등가물 둘 다를 포함하는 것으로 의도된다. 추가적으로, 그러한 등가물들은 현재 알려져 있는 등가물들뿐만 아니라 미래에 개발되는 등가물들, 즉, 구조와는 상관없이 동일한 기능을 수행하는 임의의 개발되는 요소들 둘 다를 포함하도록 의도된다.
따라서, 예를 들어, 본 명세서에서 제시된 블록도들은 본 원리들을 구현하는 예시적인 회로의 개념도를 나타낸다는 것이 본 기술분야의 통상의 기술자에 의해 인식될 것이다. 유사하게, 임의의 순서도(flow chart), 흐름도(flow diagram), 상태 전이도(state transition diagram), 의사코드(pseudocode) 등은 컴퓨터 판독 가능 매체에 실질적으로 표현될 수 있고 따라서 컴퓨터 또는 프로세서가 명시적으로 도시되어 있는지 여부에 관계없이 그러한 컴퓨터 또는 프로세서에 의해 실행될 수 있는 다양한 프로세스들을 나타낸다는 것이 이해될 것이다.
본 명세서의 청구항들에서, 지정된 기능을 수행하기 위한 수단으로서 표현된 임의의 요소는, 예를 들어, a) 그 기능을 수행하는 회로 요소들의 조합 또는 b) 그에 따라 펌웨어, 마이크로코드(microcode) 또는 이와 유사한 것을 포함한 임의의 형태의 소프트웨어와 그 소프트웨어를 실행하기 위한 적절한 회로의 조합을 포함하여, 그 기능을 수행하는 임의의 방식을 포괄하도록 의도된다. 이러한 청구항들에 의해 정의되는 바와 같은 본 원리들은, 다양한 언급된 수단들에 의해 제공되는 기능들이 청구항들이 필요로 하는 방식으로 함께 합쳐지고 조합된다는 사실에 있다. 따라서, 그러한 기능들을 제공할 수 있는 임의의 수단들은 본 명세서에 도시된 것들과 동등한 것으로 간주된다.
본 명세서에서 본 원리들의 "일 실시예" 또는 "하나의 실시예"에 대한 참조뿐만 아니라, 그의 다른 변형들은 실시예와 관련하여 설명된 특정 특징, 구조, 특성 등이 본 원리들의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, "일 실시예에서" 또는 "하나의 실시예에서"라는 구절뿐만 아니라, 본 명세서 도처의 다양한 곳에 나타나는 임의의 다른 변형들의 출현들은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.

Claims (15)

  1. 방법으로서,
    비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 상기 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하는 단계;
    상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 상기 서브-블록에 대한 예측을 생성하는 단계; 및
    상기 필터링된 예측을 사용하여 상기 서브-블록을 인코딩하는 단계
    를 포함하는, 방법.
  2. 비디오 데이터의 블록을 코딩하기 위한 장치로서,
    메모리, 및
    프로세서
    를 포함하고,
    상기 프로세서는:
    비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 상기 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하고;
    상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 상기 서브-블록에 대한 예측을 생성하고;
    상기 필터링된 예측을 사용하여 상기 서브-블록을 인코딩하도록 구성되는, 장치.
  3. 방법으로서,
    비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 상기 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하는 단계;
    상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 상기 서브-블록에 대한 예측을 생성하는 단계; 및
    상기 필터링된 예측을 사용하여 상기 서브-블록을 디코딩하는 단계
    를 포함하는, 방법.
  4. 비디오 데이터의 블록을 코딩하기 위한 장치로서,
    메모리, 및
    프로세서
    를 포함하고,
    상기 프로세서는:
    비디오 코딩 블록의 서브-블록 주위의 수평 및 수직 모션 벡터 쌍들을 각각 상기 서브-블록에 대한 현재 모션 벡터와 비교하여, 차이들을 체크하고;
    상이한 모션 벡터들을 사용한 적어도 하나의 이웃하는 서브-블록 예측 및 상기 현재 모션 벡터를 사용한 예측으로부터의 픽셀들을 사용하여 상기 서브-블록의 예측의 픽셀을 필터링하여, 상기 서브-블록에 대한 예측을 생성하고;
    상기 필터링된 예측을 사용하여 상기 서브-블록을 디코딩하도록 구성되는, 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀은 예측되는 상기 서브-블록의 2개의 첫번째 픽셀 또는 2개의 첫번째 라인에 대해 좌측 또는 상부 서브-블록으로부터의 예측을 사용하여 각각 필터링되는, 방법 또는 장치.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀은 예측되는 상기 서브-블록의 2개의 마지막 픽셀 또는 2개의 마지막 라인에 대해 우측 또는 하부 서브-블록으로부터의 예측을 사용하여 각각 필터링되는, 방법 또는 장치.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀은 상기 대응하는 수평 또는 수직 모션 벡터 쌍들 중 또 다른 하나가 상기 서브-블록의 모션 벡터와 동일할 때 하나의 이웃하는 서브-블록 예측을 사용하여 필터링되는, 방법 또는 장치.
  8. 제5항에 있어서, 상기 서브-블록을 포함하는 블록의 크기가 특정 크기보다 작을 때, 상기 서브-블록 예측의 2개의 첫번째 픽셀 또는 2개의 첫번째 라인이 좌측 또는 상부 이웃하는 서브-블록으로부터의 예측을 사용하여 각각 필터링되는, 방법 또는 장치.
  9. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀은 예측되는 상기 서브-블록의 첫번째 픽셀 또는 첫번째 라인에 대해 좌측 또는 상부 서브-블록으로부터의 예측을 사용하여 각각 필터링되는, 방법 또는 장치.
  10. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 픽셀은 예측되는 상기 서브-블록의 마지막 픽셀 또는 마지막 라인에 대해 우측 또는 하부 서브-블록으로부터의 예측을 사용하여 각각 필터링되는, 방법 또는 장치.
  11. 제1항 내지 제4항 중 어느 한 항에 있어서, 서브-블록의 2개의 픽셀 또는 2개의 라인은 특정 크기보다 큰 상기 서브-블록을 포함하는 블록들에 대응하는 예측들에 대해 필터링되고, 하나의 픽셀 또는 하나의 라인은 특정 크기보다 작은 상기 서브-블록을 포함하는 블록들에 대응하는 예측들에 대해 필터링되는, 방법 또는 장치.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 서브-블록은 코딩 유닛의 일부인, 방법 또는 장치.
  13. 플레이백을 위해, 제1항 및 제5항 내지 제12항 중 어느 한 항의 방법에 따라, 또는 제2항 및 제5항 내지 제12항 중 어느 한 항의 장치에 의해 생성되는 데이터 콘텐츠를 포함하는 비일시적 컴퓨터 판독가능 매체.
  14. 플레이백을 위해, 제1항 및 제5항 내지 제12항 중 어느 한 항의 방법에 따라, 또는 제2항 및 제5항 내지 제12항 중 어느 한 항의 장치에 의해 생성되는 비디오 데이터를 포함하는 신호.
  15. 프로그램이 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금, 제2항 및 제5항 내지 제12항 중 어느 한 항의 방법에 따라, 또는 제4항 및 제5항 내지 제12항 중 어느 한 항의 장치에 의해 생성되는 스트림을 디코딩하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품.
KR1020207024139A 2018-02-26 2019-02-22 일반화된 obmc를 위한 방법 및 장치 KR20200123787A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP18305196.0 2018-02-26
EP18305196.0A EP3531701A1 (en) 2018-02-26 2018-02-26 Method and apparatus for generalized obmc
EP18305386 2018-03-30
EP18305386.7 2018-03-30
PCT/US2019/019073 WO2019165162A1 (en) 2018-02-26 2019-02-22 Method and apparatus for generalized obmc

Publications (1)

Publication Number Publication Date
KR20200123787A true KR20200123787A (ko) 2020-10-30

Family

ID=65576747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207024139A KR20200123787A (ko) 2018-02-26 2019-02-22 일반화된 obmc를 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US11563970B2 (ko)
EP (1) EP3759919A1 (ko)
KR (1) KR20200123787A (ko)
CN (1) CN111989926B (ko)
WO (1) WO2019165162A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023207511A1 (en) * 2022-04-29 2023-11-02 Mediatek Inc. Method and apparatus of adaptive weighting for overlapped block motion compensation in video coding system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8144778B2 (en) * 2007-02-22 2012-03-27 Sigma Designs, Inc. Motion compensated frame rate conversion system and method
US9071851B2 (en) 2011-01-10 2015-06-30 Qualcomm Incorporated Adaptively performing smoothing operations
US9338476B2 (en) * 2011-05-12 2016-05-10 Qualcomm Incorporated Filtering blockiness artifacts for video coding
US9232237B2 (en) * 2011-08-05 2016-01-05 Texas Instruments Incorporated Block-based parallel deblocking filter in video coding
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
US9794569B2 (en) * 2013-01-30 2017-10-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
WO2014178563A1 (ko) * 2013-04-29 2014-11-06 인텔렉추얼 디스커버리 주식회사 인트라 예측 방법 및 장치
WO2015081888A1 (en) * 2013-12-06 2015-06-11 Mediatek Inc. Method and apparatus for motion boundary processing
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
US10230980B2 (en) 2015-01-26 2019-03-12 Qualcomm Incorporated Overlapped motion compensation for video coding
WO2016200115A1 (ko) * 2015-06-07 2016-12-15 엘지전자(주) 디블록킹 필터링을 수행하는 방법 및 장치
CN105872559A (zh) 2016-03-20 2016-08-17 信阳师范学院 一种基于色度混合匹配的帧率上转换方法
WO2017184970A1 (en) * 2016-04-22 2017-10-26 Vid Scale, Inc. Prediction systems and methods for video coding based on filtering nearest neighboring pixels
CN109792535B (zh) * 2016-05-13 2023-03-28 夏普株式会社 预测图像生成装置、运动图像解码装置以及运动图像编码装置
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US11638027B2 (en) * 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
US10834396B2 (en) * 2018-04-12 2020-11-10 Qualcomm Incorporated Bilateral filter for predicted video data
US10999594B2 (en) * 2018-12-20 2021-05-04 Qualcomm Incorporated Virtual search area for current picture referencing (CPR) and intra block copy (IBC)

Also Published As

Publication number Publication date
US11563970B2 (en) 2023-01-24
EP3759919A1 (en) 2021-01-06
US20200413085A1 (en) 2020-12-31
CN111989926A (zh) 2020-11-24
WO2019165162A1 (en) 2019-08-29
CN111989926B (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
US11265540B2 (en) Apparatus and method for applying artificial neural network to image encoding or decoding
CN113170181B (zh) 块内拷贝模式中的仿射继承方法
TWI665907B (zh) 用於圖像和視訊編碼的基於模板的圖框內預測的方法和裝置
KR20240068078A (ko) 모드-인식 딥 러닝을 갖는 필터링을 위한 방법 및 장치
US11706447B2 (en) Method and apparatus for intra prediction with multiple weighted references
CN111052744B (zh) 比运动矢量差分更精细的精度下的运动补偿
EP3553748A1 (en) Deep learning based image partitioning for video compression
TW201813403A (zh) 用於二叉樹分割塊的確定候選集的方法及裝置
CN113228638B (zh) 在区块分割中条件式编码或解码视频区块的方法和装置
US20210195187A1 (en) Texture-based partitioning decisions for video compression
KR20210145816A (ko) 비디오 코딩 시스템을 위한 단순화된 아핀 서브블록 프로세스의 방법 및 장치
CN110832854B (zh) 利用插值进行帧内预测的方法和装置
CN111052745B (zh) 编码单元的内部子块的细化
KR20200123787A (ko) 일반화된 obmc를 위한 방법 및 장치
EP3531701A1 (en) Method and apparatus for generalized obmc
RU2783219C2 (ru) Уточнение внутренних подблоков единицы кодирования
EP3499890A1 (en) Deep learning based image partitioning for video compression
US12034921B2 (en) Apparatus and method for applying artificial neural network to image encoding or decoding
CN111954894B (en) Depth learning based image partitioning for video compression
EP3422718A1 (en) Method and apparatus for intra prediction with multiple weighted references
CN112136329A (zh) 视频编解码的方法和装置
KR20200005207A (ko) 움직임 보상 및 필터링을 처리하는 영상 복호화 및 부호화 방법

Legal Events

Date Code Title Description
A201 Request for examination