KR20210089155A - 페어와이즈 평균 후보 계산에서 라운딩 - Google Patents

페어와이즈 평균 후보 계산에서 라운딩 Download PDF

Info

Publication number
KR20210089155A
KR20210089155A KR1020217013353A KR20217013353A KR20210089155A KR 20210089155 A KR20210089155 A KR 20210089155A KR 1020217013353 A KR1020217013353 A KR 1020217013353A KR 20217013353 A KR20217013353 A KR 20217013353A KR 20210089155 A KR20210089155 A KR 20210089155A
Authority
KR
South Korea
Prior art keywords
motion
video
candidate
block
motion vector
Prior art date
Application number
KR1020217013353A
Other languages
English (en)
Inventor
카이 장
리 장
홍빈 리우
유에 왕
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20210089155A publication Critical patent/KR20210089155A/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or 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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions

Abstract

서브블록 기반 예측에서 통합된 라운딩을 위한 장치, 시스템 및 방법이 설명된다. 대표적인 양상에서, 비디오 프로세싱 방법은 비디오의 현재 블록의 프로세싱을 위해 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보를 생성하는 단계 및 상기 페어와이즈 머지 후보에 기반하여 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 또 다른 대표적인 양상에서, 비디오 프로세싱 방법은 기하 분할 모드를 이용하여 코딩된 비디오의 현재 블록에 대해 스케일링된 움직임 벡터 및 리스트0 움직임 벡터에 기반하여 단일 예측 움직임 후보를 생성하는 단계, 및 상기 단일 예측 움직임 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.

Description

페어와이즈 평균 후보 계산에서 라운딩
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2018년 11월 10일에 제출된 국제 출원 PCT/CN2018/114931호의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 미국 법 하의 모든 목적을 위해, 상기 출원들의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 특허 문서는 일반적으로 이미지 및 비디오 코딩 기술들에 관한 것이다.
움직임 보상은 비디오에서 카메라 및/또는 물체의 움직임을 고려하여 이전 및/또는 미래 프레임들이 주어지면 비디오에서 프레임을 예측하는 비디오 프로세싱 기술이다. 움직임 보상은 비디오 압축을 위한 비디오 데이터의 인코딩 및 디코딩에 사용될 수 있다.
이미지 및 비디오 코딩을 위한 서브 블록 기반 예측에 대한 통합된 라운딩(unified rounding) 방법들과 연관된 장치들, 시스템들 및 방법들이 개시된다.
일 예시적 양상에서, 개시된 기술은 비디오 프로세싱의 방법을 제공하는 데 사용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보를 생성하는 단계 및 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00001
이고,
Figure pct00002
이며, offs 는 정수이고, >> 는 오른쪽 시프트 연산(right shift operation)을 의미한다.
다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보를 생성하는 단계 및 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00003
이고, SignShift(x,s)
Figure pct00004
이며, offs는 정수이고, >>는 시프트 연산(shift operation)을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보를 생성하는 단계 및 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00005
이고, SignShift(x,s)
Figure pct00006
offs는 정수이고, >>는 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계를 포함하고, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00007
이고,
Figure pct00008
이며, offs는 정수이고, >> 는 오른쪽 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계를 포함하되, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하되, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00009
이고,
Figure pct00010
이며, offs는 정수이고, >>는 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계를 포함하되, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하되, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00011
이고,
Figure pct00012
off 및 s는 정수이고, >>는 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계를 포함하되, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하되, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서,
Figure pct00013
Figure pct00014
이며,
Figure pct00015
이고, W, off 및 s는 정수이며, >>는 오른쪽 시프트 연산(right shift operation)을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계를 포함하되, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하되, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00016
Figure pct00017
이며,
Figure pct00018
이고, W, off s는 정수이고, >>는 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계를 포함하되, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y)를 포함하고, 제2 움직임 후보의 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하되, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보로서
Figure pct00019
Figure pct00020
Figure pct00021
, W, off s는 정수이고, >>는 시프트 연산을 의미한다 .
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 기하 분할 모드를 이용하여 코딩된 비디오의 현재 블록에 대해 단일 예측 움직임 후보를 스케일링된 움직임 벡터 및 리스트0 (list0) 움직임 벡터를 기반으로 생성하는 단계 및 상기 단일 예측 움직임 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 스케일링된 움직임 벡터는 MV1' = (MV1'x, MV1'y)이고, 상기 리스트0 움직임 벡터는 MV0 = (MV0x, MV0y)이며, MV* = (MV*x, MV*y)는 상기 단일 예측 움직임 후보로서,
Figure pct00022
Figure pct00023
이고,
Figure pct00024
이며, offs 는 정수이고 >> 는 오른쪽 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 기하 분할 모드를 이용하여 코딩된 비디오의 현재 블록에 대해 단일 예측 움직임 후보를 스케일링된 움직임 벡터 및 리스트0 (list0) 움직임 벡터를 기반으로 생성하는 단계 및 상기 단일 예측 움직임 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 스케일링된 움직임 벡터는 MV1' = (MV1'x, MV1'y)이고, 상기 리스트0 움직임 벡터는 MV0 = (MV0x, MV0y)이며, MV* = (MV*x, MV*y)는 상기 단일 예측 움직임 후보로서
Figure pct00025
Figure pct00026
이고,
Figure pct00027
offs 는 정수이고, >>는 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 이용될 수 있다.
이 방법은 기하 분할 모드를 이용하여 코딩된 비디오의 현재 블록에 대해 단일 예측 움직임 후보를 스케일링된 움직임 벡터 및 리스트0 (list0) 움직임 벡터를 기반으로 생성하는 단계 및 상기 단일 예측 움직임 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 스케일링된 움직임 벡터는 MV1' = (MV1'x, MV1'y)이고, 상기 리스트0 움직임 벡터는 MV0 = (MV0x, MV0y)이며, MV* = (MV*x, MV*y)는 상기 단일 예측 움직임 후보로서
Figure pct00028
이고,
Figure pct00029
이고, offs 는 정수이며 >>는 시프트 연산을 의미한다.
또 다른 대표적인 양상에서, 상기에 개시된 방법은 컴퓨터 실행가능한 코드의 형태로 구현될 수 있으며 컴퓨터 읽기 가능한 프로그램 매체에 저장된다.
또 다른 대표적인 양상에서, 상기에 개시된 방법들을 수행하도록 구성되거나 동작할 수 있는 장치가 개시된다. 이 장치에는 이러한 방법을 구현하도록 프로그래밍된 프로세서가 포함될 수 있다.
또 다른 대표적인 양상에서, 비디오 디코더 장치는 여기에 개시된 방법들을 구현할 수 있다.
개시된 기술의 상기 및 다른 양상 및 특징은 도면, 설명 및 청구범위에서 보다 상세히 설명된다.
도 1은 서브 블록 기반 예측의 예를 보여준다.
도 2는 단순화된 어파인 움직임 모델(simplified affine motion model)의 예를 보여준다.
도 3은 서브 블록 당 어파인(affine) 움직임 벡터 필드(motion vector field, MVF)의 예를 보여준다.
도 4는 AF_INTER 어파인 움직임 모드에 대한 움직임 벡터 예측(motion vector prediction, MVP)의 예를 보여준다.
도 5A 및 5B는 AF_MERGE 어파인 움직임 모드에 대한 후보들의 예를 보여준다.
도 6은 코딩 유닛(coding unit, CU)에 대한 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction, ATMVP) 알고리즘을 사용한 움직임 예측의 예를 보여준다.
도 7은 시공간적 움직임 벡터 예측(spatial-temporal motion vector prediction, STMVP) 알고리즘에서 사용하는 서브 블록들 및 인접 블록들을 갖는 코딩 유닛(CU)의 예를 보여준다.
도 8은 양방향 광학 흐름(bi-directional optical flow, BIO) 알고리즘에서 사용하는 광학 흐름 궤적의 예를 보여준다.
도 9A 및 9B는 블록 확장 없이 양방향 광학 흐름(BIO) 알고리즘을 사용하는 예시적인 스냅샷들을 보여준다.
도 10은 프레임 율 향상 변환(frame-rate up conversion, FRUC) 알고리즘에서 양방향(bilateral) 매칭의 예를 보여준다.
도 11은 FRUC 알고리즘에서 템플릿 매칭(template matching)의 예를 보여준다.
도 12는 FRUC 알고리즘에서 단방향 움직임 추정(unilateral motion estimation)의 예를 보여준다.
도 13은 JEM에서 4:2:0 포맷을 갖는 다른 구성요소들에 대한 서브 블록들의 예를 보여준다.
도 14는 개시된 기술에 따른 4:2:0 포맷을 갖는 다른 구성요소들에 대한 서브 블록들의 예를 보여준다.
도 15는 개시된 기술에 따른 4:2:0 포맷을 갖는 다른 구성요소들에 대한 서브 블록들의 다른 예를 보여준다.
도 16은 개시된 기술에 따른 서브 블록 움직임 벡터(MV) 복사(copying)의 예를 보여준다.
도 17은 개시된 기술에 따른 서브 블록 움직임 벡터(MV) 복사(copying)의 다른 예를 보여준다.
도 18은 서브 블록 움직임 벡터(MV) 유도의 예를 보여준다.
도 19A 내지 19C는 예시적인 비디오 프로세싱 방법들의 흐름도들을 보여준다.
도 20은 본 문서에서 설명된 시각적 매체 디코딩(visual media decoding) 혹은 시각적 매체 인코딩(visual media encoding) 기술을 구현하기 위한 하드웨어 플랫폼의 예시적인 블록도이다.
도 21은 개시된 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템의 블록도이다.
더 높은 해상도를 가진 비디오에 대한 수요가 계속 증가함에 따라, 비디오 코딩 방법 및 기법들은 현대 기술에서는 흔히 볼 수 있게 되었다. 비디오 코덱은 디지털 비디오를 압축하거나 푸는 소프트웨어 또는 전자 회로를 주로 포함하며 더 높은 코딩 효율을 제공하기 위해 지속적으로 개선되고 있다. 비디오 코덱은 압축되지 않은 비디오를 압축된 포맷으로 또는 그 반대로 변환시킨다. 비디오의 질, 비디오를 표현하는 데에 사용되는 데이터의 양(비트율에 의해 결정), 인코딩 및 디코딩 알고리즘들의 복잡성, 데이터 손실 및 에러에 대한 민감도, 편집 용이성, 랜덤 액세스, 그리고 단대단 지연 사이에는 복잡한 관계가 있다. 압축된 포맷은 대개의 경우 (H265 또는 MPEG-H Part 2로도 알려진) HEVC (High Efficiency Video Coding) 표준, 최종 확정될 VVC (Versatile Video Coding) 또는 기타 현재 및/또는 미래의 비디오 코딩 표준들을 따른다.
서브 블록 기반 예측은 HEVC 표준에 의해 비디오 코딩 표준에 처음 도입되었다. 서브 블록 기반 예측에 의하면, 코딩 유닛(CU) 혹은 예측 유닛(prediction unit, PU)과 같은 블록이 중첩되지 않는 여러 서브 블록들로 분할된다. 참조 인덱스(reference index) 혹은 움직임 벡터(MV)와 같은 상이한 움직임 정보는 상이한 서브 블록에 할당될 수 있으며 움직임 보상(motion compensation, MC)이 개별적으로 각 서브 블록에 대해 수행된다. 도 1은 서브 블록 기반 예측의 예를 보여준다.
개시된 기술의 실시예들은 런타임(runtime) 성능의 향상을 위해 기존 비디오 코딩 표준들 (예를 들어, HEVC, H 256) 및 미래의 표준들에 적용될 수 있다. 본 문서에서 섹션 제목들은 설명의 가독성을 높이기 위해 사용된 것이며 논의 또는 실시예들 (및/또는 구현들)의 해당 섹션들로 결코 제한하지 않는다.
1 JEM(Joint Exploration Model)의 예들
일부 실시예들에서, JEM으로 알려진 참조 소프트웨어를 사용하여 미래의 비디오 코딩 기술들이 탐구된다. JEM에서, 서브 블록 기반 예측은 어파인 예측, 대안적인 시간적 움직임 벡터 예측(ATMVP), 시공간적 움직임 벡터 예측(STMVP), 양-방향 광학 흐름(BIO), 프레임율 향상 변환(FRUC), 지역적 적응 움직임 벡터 해상도(LAMVR), 중첩된 블록 움직임 보상(OBMC), 지역 조명 보상(LIC) 및 디코더 측 움직임 벡터 개선(DMVR)과 같은 다양한 코딩 툴들에서 채택된다.
1.1 어파인 예측의 예들
HEVC에서, 오직 병진 움직임 모델만이 움직임 보상 예측(Motion Compensation Prediction: MCP)에 대해 적용된다. 하지만, 카메라 및 대상들은 줌 인/아웃, 회전, 원근적 움직임 및/또는 기타 불규칙 움직임들과 같은 여러 종류의 움직임을 가질 수 있다. 반면에, JEM은 단순화된 어파인 변환 움직임 보상 예측을 적용한다. 도 2는 두 제어 포인트 움직임 벡터들 V0 및 V1에 의해 기술되는 블록(200)의 어파인 움직임 필드의 예를 도시한다. 상기 블록(200)의 상기 움직임 벡터 필드(Motion Vector Field: MVF)는 아래 식으로 기술될 수 있다.
Figure pct00030
도 2에 도시된 바와 같이,
Figure pct00031
는 좌측 상단 코너 제어 포인트의 움직임 벡터이며,
Figure pct00032
는 우측 상단 코너 제어 포인트의 움직임 벡터이다. 움직임 보상 예측을 단순화하기 위해, 서브 블록 기반 어파인 변환 예측이 적용될 수 있다. 서브 블록 크기 MxN은 아래와 같이 유도된다.
Figure pct00033
여기서, MvPre는 움직임 벡터 분수 정확도(예를 들어, JEM에서 1/16)이다.
Figure pct00034
는 식(1)에 따라 계산된, 좌측 하단 제어 포인트의 움직임 벡터이다. M과 N은 필요한 경우 하향 조정되어 각각 w와 h의 제수로 만들 수 있다.
도 3은 블록(300)에 대한 서브 블록 당 어파인 MVF의 일 예를 도시한다. 각 MxN 서브 블록의 움직임 벡터를 유도하기 위해, 각 서브 블록의 가운데 샘플의 움직임 벡터는 식(1)에 따라 계산되어 움직임 벡터 분수 정확도(예를 들어, JEM에서 1/16)로 라운딩될 수 있다. 다음으로, 유도된 움직임 벡터를 가지는 각 서브 블록의 예측을 생성하기 위해 움직임 보상 보간 필터들이 적용될 수 있다. MCP 후에, 각 서브 블록의 고정확도 움직임 벡터는 법선 움직임 벡터(normal motion vector)와 같은 정확도로 라운딩되고 보존된다.
JEM에는 AF_INTER 모드 및 AF_MERGE 모드라는 두 어파인 움직임 모드가 있다. 폭과 높이가 모두 8보다 큰 CU들에 대해서는 AF_INTER 모드가 적용될 수 있다. CU 레벨에서 어파인 플래그는 AF_INTER 모드가 사용되는지 여부를 지시하기 위해 비트스트림으로 시그널링된다. AF_INTER 모드에서, 움직임 벡터 쌍
Figure pct00035
을 가지는 후보 리스트는 주변 블록들을 사용하여 구성된다.
도 4는 AF_INTER 어파인 움직임 모드에서 움직임 벡터 예측(MVP)의 일 예를 보여준다. 도 4에 도시된 바와 같이,
Figure pct00036
은 서브 블록 A, B 및 C의 움직임 벡터들로부터 선택된다. 주변 블록들로부터의 움직임 벡터들은 참조 리스트에 따라 스케일링될 수 있다. 움직임 벡터들은 또한 주변 블록에 대한 참조의 픽처 오더 카운트(Picture Order Count: POC), 현재 CU에 대한 참조의 POC 그리고 현재 CU의 POC 사이의 관계에 따라 스케일링될 수 있다. 주변 서브 블록 D 및 E로부터 v1을 선택하는 접근법은 유사하다. 만약 후보 리스트의 수가 2 보다 작다면, 상기 리스트는 각각의 AMVP 후보들을 복제하여 구성된 움직임 벡터 쌍으로 패딩된다. 상기 후보 리스트가 2 보다 큰 경우, 후보들은 먼저 주변 움직임 벡터들에 따라(예를 들어, 쌍 후보에서 두 움직임 벡터들의 유사성에 기반하여) 구분될 수 있다. 일부 구현들에서는, 처음 두 후보들이 선택된다. 일부 실시예들에서는, 어떤 움직임 벡터 쌍 후보가 현재 CU의 제어 포인트 움직임 벡터 예측(Control Point Motion Vector Prediction: CPMVP)으로 선택되는지를 율-왜곡 코스트 체크를 사용하여 결정한다. 후보 리스트에서 CPMVP의 위치를 지시하는 인덱스는 비트스트림에서 시그널링될 수 있다. 현재 어파인 CU의 CPMVP가 결정된 후에, 어파인 움직임 추정이 적용되고 제어 포인트 움직임 벡터(Control Point Motion Vector: CPMV)가 발견된다. 다음으로, CPMV와 CPMVP간의 차이가 비트스트림에서 시그널링된다.
CU가 AF_MERGE 모드에서 적용되는 경우, 복원된 유효한 주변 블록들로부터 어파인 모드로 코딩된 제1 블록이 획득된다. 도 5A는 현재 CU(500)에 대한 후보 블록들의 선택 순서의 일 예를 도시한다. 도 5A에 도시된 바와 같이, 선택 순서는 현재 CU(500)의 좌측(501)에서 출발하여 상단(502), 우측 상단(503), 좌측 하단(504) 그리고 좌측 상단(505) 순일 수 있다. 도 5B는 AF_MERGE 모드에서 현재 CU(500)에 대한 후보 블록들의 다른 예를 도시한다. 도 5B에 도시된 것처럼, 좌하단 주변 블록(501)이 어파인 모드로 코딩된 경우, 상기 서브 블록(501)을 포함하는 CU의 좌상단 코너, 우상단 코너 및 좌하단 코너의 움직임 벡터들
Figure pct00037
가 도출된다. 상기 현재 CU(501)의 좌상단 코너의 움직임 벡터 v0는
Figure pct00038
를 기반으로 산출된다. 상기 현재 CU의 우상단의 움직임 벡터 v1은 그에 따라 산출될 수 있다.
현재 CU의 CPMV인 v0 및 v1가 식(1)에서 어파인 움직임 모델에 따라 계산된 후, 현재 CU의 MVF가 생성될 수 있다. 현재 CU가 AF_MERGE 모드로 코딩되는지 여부를 식별하기 위해서, 적어도 어파인 모드로 코딩된 적어도 하나의 주변 블록이 존재하는 경우, 어파인 플래그가 비트스트림으로 시그널링될 수 있다.
JEM에서, 논-머지 어파인(non-merge affine) 모드는 현재 블록의 너비 및 높이가 모두 8보다 큰 경우에만 사용될 수 있다. 머지 어파인(merge affine) 모드는 현재 블록의 면적(예를 들어, 높이 x 너비)이 64보다 작지 않은 경우에만 사용될 수 있다.
1.2 대안적인 시간적 움직임 벡터 예측(ATMVP)의 예들
ATMVP 방법에서, TMVP 예측 방법은 현재 CU 보다 작은 블록들로부터 (움직임 벡터들 및 참조 인덱스들을 포함하는) 움직임 정보의 복수의 세트들을 불러옴으로써 수정된다.
도 6은 CU (600)에 대한 ATMVP 움직임 예측 과정의 일 예를 도시한다. 상기 ATMVP 방법은 CU(600)에서 서브 CU들(601)의 움직임 벡터들을 두 단계로 예측한다. 첫 번째 단계는 시간적 벡터를 가지는 참조 픽처(650)에서 해당 블록 (651)을 식별하는 것이다. 상기 참조 픽처(650)는 또한 움직임 소스 픽처로도 지칭된다. 두 번째 단계는 현재 CU(600)를 서브 CU들(601)로 분할하고 각각의 서브 CU에 상응하는 블록으로부터 각 서브 CU의 참조 인덱스들뿐 아니라 움직임 벡터들을 획득하는 것이다.
상기 첫 번째 단계에서, 참조 픽처(650) 및 해당 블록은 현재 CU(600)의 공간적 주변 블록들의 움직임 정보로 결정된다. 주변 블록들에 대한 반복적인 스캐닝 과정을 방지하기 위해, 현재 CU(600)의 머지 후보 리스트 내의 제1 머지 후보가 사용된다. 제1 가용 움직임 벡터뿐 아니라 그것과 연관된 참조 인덱스가 상기 움직임 소스 픽처에 대한 시간적 벡터 및 인덱스로 설정된다. 이러한 방식으로, 해당 블록은 TMVP에 비해 더 정확하게 식별될 수 있다. 이때, (간혹 동일 위치 블록(collocated block)으로 불리는) 해당 블록은 현재 CU에 대해 항상 우측 아래 또는 가운데 위치에 있다.
두 번째 단계에서, 서브 CU(1051)의 해당 블록은 움직임 소스 픽처(1050)내의 시간적 벡터에 의해 또는 시간적 벡터에 현재 CU의 좌표를 추가함으로써 식별된다. 각각의 서브 CU에 대해, 그것에 상응하는 블록(예, 가운데 샘플을 덮은 최소 움직임 그리드)의 움직임 정보는 상기 서브 CU에 대한 움직임 정보를 유도하는 데에 사용된다. 해당 N x N블록의 움직임 정보가 식별된 후에, HEVC의 TMVP와 동일한 방식으로 현재 서브 CU의 움직임 벡터들 및 참조 인덱스들로 변환된다. 이때, 움직임 스케일링 및 기타 절차들이 적용된다. 예를 들어, 디코더는 저지연 조건(예를 들어, 현재 픽처의 모든 참조 픽처들의 POC들이 현재 픽처의 POC 보다 작다.)이 충족되는지 여부를 확인하고, 가능한 경우, 움직임 벡터 MVx(예를 들어, 참조 픽처 리스트 X에 해당하는 움직임 벡터)를 사용하여 각 서브 CU에 대해 움직임 벡터 MVy(이때, X는 0 또는 1과 같고, Y는 1-X와 같다)를 예측한다.
1.3 시공간적 움직임 벡터 예측(spatial-temporal motion vector prediction, STMVP)의 예들
STMVP 방법에서, 서브 CU들의 움직임 벡터들은 래스터 스캔 순서를 따라 재귀적으로 유도된다. 도 7은 4개의 서브 블록들 및 주변 블록들을 가지는 하나의 CU의 일 예를 도시한다. 네 개의 4x4 서브 CU들인 A(701), B(702), C(703) 및 D(704)를 포함하는 8x8 CU(700)를 살펴보자. 현재 프레임에서 주변 4x4 블록들은 a(711), b(712), c(713) 및 d(714)로 표시된다.
서브 CU A에 대한 움직임 유도는 그것의 두 공간적 이웃들을 식별하면서 시작된다. 첫 번째 이웃은 서브 CU A(701) 위에 있는 NxN 블록(블록 c(713))이다. 만약 이 블록 c(713)가 가용하지 않거나 화면 내 코딩된 것이라면, 서브 CU A(701) 위의 다른 NxN 블록들을(블록 c(713)에서 출발하여 좌측에서 우측으로) 확인한다. 두 번째 이웃은 서브 CU A(701) 좌측에 있는 블록(블록 b(712))이다. 만약 이 블록 b(712)가 가용하지 않거나 화면 내 코딩된 것이라면, 서브 CU A(701) 좌측의 다른 NxN 블록들을(블록 b(712)에서 출발하여 위에서 아래로) 확인한다. 각각의 리스트에 대해 주변 블록들로부터 획득된 움직임 정보는 주어진 리스트에 대한 제1 참조 프레임으로 스케일링된다. 다음으로, 서브 블록 A(701)의 시간적 움직임 벡터 예측자(TMVP)가 HEVC에 규정된 TMVP 유도와 같은 절차로 유도된다. 블록 D(704)에서 동일 위치 블록의 움직임 정보가 획득되고 그에 맞게 스케일링된다. 마지막으로, 움직임 정보를 조회하여 스케일링한 후, 각 참조 리스트에 대해 개별적으로 모든 가용한 움직임 벡터들의 평균을 낸다. 평균화된 움직임 벡터는 현재 서브 CU의 움직임 벡터로 할당된다.
1.4 양 방향 광학 흐름(bi-directional optical flow, BIO)의 예들
양방향 광학 흐름(BIO) 방법은 양 방향에 대한 블록 단위 움직임 보상의 상부에 수행되는 샘플 단위 움직임 개선이다. 일부 구현들에서, 샘플 레벨 움직임 개선(sample level motion refinement)은 시그널링을 사용하지 않는다.
Figure pct00039
을 블록 움직임 보상 후 레퍼런스
Figure pct00040
로부터의 루마 값이라 하고,
Figure pct00041
Figure pct00042
그래디언트(gradient)의 각각 수평 및 수직 성분들이라 하자. 광학 흐름이 유효하다고 가정하면, 움직임 벡터
Figure pct00043
는 아래 식에 의해 주어진다.
Figure pct00044
각 샘플의 운동 궤적에 대해 이러한 광학 흐름 방정식과 헤르미트(Hermite) 보간법을 결합하면, 끝에서 도함수들
Figure pct00045
및 함수 값들
Figure pct00046
모두를 매칭시키는 고유한 3차 다항식이 획득된다. t=0에서 이 다항식의 값은 BIO 예측이다.
Figure pct00047
Figure pct00048
도 8은 양방향 광학 흐름(BIO) 방법에서 광학 흐름 궤적의 일 예를 보여준다. 여기서,
Figure pct00049
은 참조 프레임까지의 거리들을 나타낸다. 거리
Figure pct00050
는 Ref0 및 Ref1에 기반하여 계산된다. 즉,
Figure pct00051
. 만약 두 예측 모두 같은 방향에서(예를 들어, 둘 다 과거로부터 또는 미래로부터) 획득된다면, 부호들은 다르다(예를 들어, e.g.,
Figure pct00052
). 이때, 예측이 동일한 순간으로부터 오는 것이 아니라면(예를 들어, e.g.,
Figure pct00053
), BIO가 적용된다. 참조된 양 영역 모두 논-제로 움직임을 가지며(예를 들어,
Figure pct00054
) 블록 움직임 벡터들은 시간 거리에 비례한다(예를 들어,
Figure pct00055
).
움직임 벡터 필드
Figure pct00056
는 점 A 및 점 B에서의 값들 사이의 차이를 최소화함으로써 결정된다. 도 9a 및 도 9b는 움직임 궤적과 참조 프레임 평면들 간의 교차의 일 예를 보여준다. 모델은
Figure pct00057
에 대해 로컬 테일러 전개식의 제1 선형항만을 사용한다.
Figure pct00058
상기 식에서의 모든 값들은
Figure pct00059
로 표시된 샘플 위치에 의존한다. 움직임이 로컬 환경에서 일관적이라고 가정하면, 현재 예측된 점 (i,j)에 중심이 맞춰진 (2M+1)x(2M+1) 정사각형 윈도우 Ω 내의
Figure pct00060
는 최소화될 수도 있다. 여기서 M은 2와 같다.
Figure pct00061
이러한 최적화 문제에 대해, JEM은 단순화된 접근 방식을 사용하여 먼저 수직 방향으로 최소화하고, 그 다음으로 수평 방향에 최소화한다. 그 결과는 아래와 같다.
Figure pct00062
여기서,
Figure pct00063
제로 또는 매우 작은 값에 의한 나눗셈을 피하기 위해, 정규화(regularization) 파라미터들 r 및 m 이 식(7) 및 식(8)에 도입될 수 있다. 이때,
Figure pct00064
여기서,
Figure pct00065
는 비디오 샘플들의 비트 깊이이다.
BIO에 대한 메모리 액세스를 정규 양 예측 움직임 보상에 대한 것과 같게 하기 위해, 모든 예측 및 그래디언트 값들인
Figure pct00066
은 현재 블록 내부의 위치들에 대해 계산된다. 도 9A는 블록(900) 외부의 액세스 위치들의 예를 보여준다. 도 9A에 도시된 것과 같이, 식(9)에서, 예측된 블록의 경계상의 현재 예측된 점에 중심이 맞춰진 (2M+1)x(2M+1) 정사각형 윈도우 Ω는 상기 블록 외부의 위치들에 접근할 필요가 있다. JEM에서 상기 블록 외부의
Figure pct00067
의 값들은 상기 블록 내부의 가장 가까운 가용 값과 같도록 설정된다. 예를 들어, 도 9B에 도시된 바와 같이, 이것은 패딩 영역(901)으로 구현될 수 있다.
BIO를 사용하면, 움직임 필드가 각 샘플에 대해 개선될 수 있다. 계산 복잡도를 줄이기 위해, BIO의 블록 기반 디자인이 JEM에서 사용된다. 움직임 개선은 4x4 블록에 기반하여 계산될 수 있다. 블록 기반 BIO에서, 4x4 블록 상의 모든 샘플들의 식(9)에 따른
Figure pct00068
의 값들이 합산될 수 있으며, 그 다음 식 (9)에서 합산된
Figure pct00069
의 값들은 상기 4x4 블록에 대한 BIO 움직임 벡터 오프셋을 유도하는 데에 사용된다. 구체적으로, 아래 식이 블록 기반 BIO 유도를 위해 사용될 수 있다.
Figure pct00070
여기서,
Figure pct00071
는 예측된 블록의 k번째 4x4 블록에 속한 샘플들의 세트를 표시한다. 관련된 움직임 벡터 오프셋들을 유도하기 위해, 식(7) 및 식(8)에서
Figure pct00072
Figure pct00073
로 대체된다.
일부 시나리오에서, BIO의 MV 레지먼트 (regiment)는 노이즈 또는 불규칙한 움직임으로 인해 신뢰할 수 없을 수도 있다. 그러므로, BIO에서, MV 레지먼트의 크기는 특정 임계값으로 클립된다. 상기 임계값은 현재 픽처의 모든 레퍼런스 픽처들이 모두 한 방향에서 오는지의 여부에 기초하여 결정된다. 예를 들어, 현재 픽처의 모든 참조 픽처들이 한 방향으로부터 오는 경우, 상기 임계값은
Figure pct00074
로 설정되고, 그렇지 않을 경우,
Figure pct00075
로 설정된다.
BIO에 대한 그래디언트들(gradients)은 HEVC 움직임 보상 절차(예를 들어, 2D 분리가능한 유한 임펄스 응답(Finite Impulse Response: FIR)과 부합하는 동작들을 사용하는 움직임 보상 보간과 동시에 계산될 수 있다. 일부 실시예들에서, 상기 2D 분리가능한 FIR에 대한 입력은 움직임 보상 절차에 대한 것과 같은 참조 프레임 샘플 및 블록 움직임 벡터의 분수 부분에 따른 분수 위치 (fracX, fracY) 이다. 수평 그래디언트
Figure pct00076
에 대해, 신호는 먼저 역스케일링 시프트 d-8을 갖는 분수 위치 fracY에 해당하는 BIOfilterS를 사용하여 수직으로 보간된다. 그 다음에, 보간 필터 BIOfilterG18-d 만큼의 역스케일링 시프트를 갖는 분수 위치 fracX에 해당하는 수평 방향으로 적용된다. 수직 그래디언트
Figure pct00077
에 대해, 그래디언트 필터는 역스케일링 시프트 d-8을 갖는 분수 위치 fracY에 해당하는 BIOfilterG를 사용하여 수직으로 적용된다. 그 다음으로, 신호 변위는 역스케일링 시프트 18-d을 갖는 분수 위치 fracX에 해당하는 수평 방향으로 BIOfilterS를 사용하여 실행된다. 그래디언트 계산을 위한 보간 필터 BIOfilterG 및 신호 변위를 위한 BIOfilterF의 길이는 적절한 복잡도를 유지하기 위해 더 짧을 수 있다(예를 들어, 6-탭). 표 2는 BIO에서 블록 움직임 벡터의 상이한 분수 위치들의 그래디언트 계산을 위해 사용될 수 있는 필터들의 예를 보여준다. 표 3은 BIO에서 예측 신호 생성을 위해 사용될 수 있는 보간 필터들의 예를 보여준다.
표 2: BIO에서 그래디언트 계산을 위한 필터들의 예
Figure pct00078
표 3: BIO에서 예측 신호 생성을 위한 보간 필터들의 예
Figure pct00079
JEM에서, BIO는 2 개의 예측들이 상이한 참조 픽처들로부터 올 경우, 모든 양방향 예측된 블록들에 적용될 수 있다. LIC (local illumination compensation) 이 CU에 대해 활성화되는(enabled) 경우, BIO는 비활성화 될 수 있다(disabled).
일부 실시예들에서, OBMC는 정상(normal) MC 절차 후에 블록에 대해 적용된다. 계산 복잡성을 줄이기 위해, BIO는 상기 OBMC 절차 동안에는 적용되지 않을 수 있다. 이는 BIO는 블록에 대한 MC 절차에서 그것 자체의 MV를 사용하는 경우 적용되며, 주변 블록의 MC가 상기 OBMC 절차 동안 사용되는 경우 MC 절차에서 적용되지 않음을 의미한다.
JEM에서, BIO는 루마 구성요소에 대해서만 적용된다.
1.5 프레임 율 향상 변환(frame-rate up conversion, FRUC)의 예들
FRUC 플래그는 머지 플래그가 참일 때에 CU에 대해 시그널링될 수 있다. FRUC 플래그가 거짓이면, 머지 인덱스가 시그널링될 수 있고, 정규 머지 모드(regular merge mode)가 사용된다. FRUC 플래그가 참이면, 추가적인 FRUC 모드 플래그가 시그널링되어 블록의 움직임 신호를 유도하기 위해 어떤 방법(예를 들어, 양방향 매칭 또는 템플릿 매칭)이 사용되어야 하는지를 지시할 수 있다.
인코더 측에서, CU에 대해 FRUC 머지 모드를 사용할지 여부에 대한 결정은 정상(normal) 머지 후보에 대해서와 같이 RD 코스트 선택에 기반한다. 예를 들어, 복수의 매칭 모드들(예를 들어, 양방향 매칭 및 템플릿 매칭)이 RD 코스트 선택을 사용하여 CU에 대해 확인된다. 최소 비용으로 이어지는 것은 다른 CU 모드들과 더 비교된다. 만약 FRUC 매칭 모드가 가장 효율적인 경우, FRUC 플래그는 해당 CU에 대해 참으로 설정되고, 관련 매칭 모드가 사용된다.
대개의 경우, FRUC 머지 모드에서의 움직임 유도 프로세스는 2 단계를 가진다. CU 레벨 움직임 탐색이 먼저 수행되고, 그 다음으로 서브 CU 레벨 움직임 개선이 수행된다. CU 레벨에서, 초기 움직임 벡터는 양방향 매칭 또는 템플릿 매칭에 기반하여 CU 전체에 대해 유도된다. 먼저, MV 후보들의 리스트가 생성되고, 최소 매칭 코스트로 이어지는 후보가 추가 CU 레벨 개선을 위한 출발점으로 선택된다. 그 다음으로, 상기 출발점을 중심으로 양방향 매칭 또는 템플릿 매칭을 기반으로 한 로컬 탐색이 수행된다. 최소 매칭 코스트로 귀결되는 MV가 CU 전체에 대한 MV로 간주된다. 그 후, 유도된 CU 움직임 벡터들을 출발점으로 하여, 움직임 정보는 서브 CU 레벨에서 추가로 개선된다.
예를 들어, WХH CU 움직임 정보 유도를 위해 다음과 같은 유도 과정이 수행된다. 첫 번째 단계에서, 전체 WХH CU에 대한 MV가 유도된다. 두 번째 단계에서, 상기 CU는 MХM 서브 CU들로 더 분할된다. M의 값은 식(22) 에서와 같이 계산되며, D는 미리 정의된 분할 깊이로서, JEM에서 기본적으로 3으로 설정된다. 다음으로, 각 서브 CU에 대한 MV가 유도된다.
Figure pct00080
도 10은 프레임율 향상 변환(FRUC) 기법에 사용되는 양방향 매칭의 일 예를 도시한다. 양방향 매칭은 두 상이한 참조 픽처들(1010, 1011)에서 현재 CU의 움직임 궤적을 따라 두 블록들 간의 가장 가까운 매칭을 찾음으로써 현재 CU(1000)의 움직임 정보를 유도하는 데에 사용된다. 연속적인 움직임 궤적의 가정하에, 두 참조 블록을 가리키는 움직임 벡터 MV0(1001) 및 MV1(1002)는 현재 픽처와 상기 두 참조 픽처 사이의 시간적 거리들, 즉 TD0(1003) 및 TD1(1004)에 비례한다. 일부 실시예들에서, 현재 픽처(1000)가 두 참조 픽처들(1010, 1011) 사이에 시간적으로 존재하고 상기 현재 픽처에서 상기 두 참조 픽처까지의 시간적 거리가 같을 때, 양방향 매칭은 미러 기반 양방향 MV가 된다.
도 11은 프레임율 향상 변환(FRUC) 기법에 사용되는 템플릿 매칭의 일 예를 도시한다. 템플릿 매칭은 현재 픽처에서의 템플릿(예를 들어, 현재 CU의 상단 및/또는 좌측 인접 블록들)과 참조 픽처(1110)에서의 블록(예를 들어, 템플릿과 동일한 크기) 사이에서 가장 가까운 매칭을 찾아 현재 CU(1100)의 움직임 정보를 도출하는 데 사용될 수 있다. 앞서 언급한 FRUC 머지 모드를 제외하고 템플릿 매칭은 AMVP 모드에도 적용될 수 있다. JEM 및 HEVC 모두에서, AMVP는 두 후보를 가진다. 템플릿 매칭 방법으로 새로운 후보가 유도될 수 있다. 만약 템플릿 매칭에 의해 새로 유도된 상기 후보가 기존 제1 AMVP 후보와 다른 경우, AMVP 후보 리스트의 맨 처음에 삽입되고 해당 리스트 크기는 2로 설정된다(예를 들어, 기존 제2 AMVP 후보를 제거). AMVP 모드에 적용시, 오직 CU 레벨 탐색만 적용된다.
CU 레벨에서 설정된 MV는 다음 후보들 및 MV들을 포함할 수 있다: (1) 현재 CU가 AMVP 모드인 경우, 원본 AMVP 후보들, (2) 모든 머지 후보들, (3) 보간된 MV 필드(차후 설명)의 몇몇 MV들, 그리고 상부 및 좌측 주변 움직임 벡터들.
양방향 매칭을 사용하는 경우, 머지 후보의 유효한 각각의 MV는 양방향 매칭을 가정하여 MV 쌍을 생성하기 위한 입력으로 사용될 수 있다. 예를 들어, 머지 후보의 유효한 하나의 MV는 참조 리스트 A에서
Figure pct00081
이다. 다음으로, 그것의 쌍을 이룬 양방향 MV의 참조 픽쳐
Figure pct00082
가 다른 쪽 참조 리스트 B에서 발견되어
Figure pct00083
Figure pct00084
가 시간적으로 현재 픽처의 다른 사이드에 있게 된다. 이러한
Figure pct00085
가 참조 리스트 B에서 사용 가능하지 않은 경우,
Figure pct00086
Figure pct00087
와 다른 레퍼런스로 결정되고, 그것의 현재 픽처까지의 시간적 거리는 리스트 B에서 최소가 된다.
Figure pct00088
가 결정된 후, MVb는 현재 픽처와
Figure pct00089
사이의 시간적 거리를 기반으로 MVa를 스케일링하여 유도된다.
일부 구현들에서, 보간된 MV 필드로부터 4개의 MV 또한 CU 레벨 후보 리스트에 추가될 수 있다. 보다 구체적으로, 현재 CU의 위치 (0, 0), (W/2, 0), (0, H/2) 및 (W/2, H/2)의 보간된 MV들이 추가된다. FRUC가 AMVP 모드에서 적용되면, 원본 AMVP 후보들도 CU 레벨 MV 후보 세트에 추가된다. 일부 구현들의 경우, CU 레벨에서, AMVP CU들에 대한 15개의 MV 및 머지 CU에 대한 13개의 MV가 후보 리스트에 추가될 수 있다.
서브 CU 레벨에서 설정된 MV 후보는 (1) CU 레벨 탐색에서 결정된 MV, (2) 상단, 좌측, 좌측 상단 및 우측 상단 주변 MV들, (3) 참조 픽처들에서 동일 위치(collocated) MV들의 스케일링된 버전들, (4) 하나 또는 그 이상의(예를 들어, 최대 4개의) ATMVP 후보들, 그리고 (5) 하나 또는 그 이상의(예를 들어, 최대 4개의) STMVP 후보들을 포함한다. 참조 픽처로부터 스케일링된 MV는 다음과 같이 유도된다. 두 리스트의 참조 픽처들이 횡단된다. 참조 픽처에서 서브 CU의 동일 위치에 있는(collocated) MV들은 시작 CU 레벨 MV의 레퍼런스로 스케일링된다. ATMVP 및 STMVP 후보들은 4개의 제1 후보들이 될 수 있다. 서브 CU 레벨에서 하나 또는 그 이상의(예를 들어, 최대 17개의) MV가 후보 리스트에 추가된다.
보간된 MV 필드의 생성 프레임을 코딩하기 전에, 단방향 ME를 기반으로 픽처 전체에 대해 보간된 움직임 필드가 생성된다. 다음으로 상기 움직임 필드는 후에 CU 레벨 또는 서브 CU 레벨 MV 후보들로 사용될 수 있다.
일부 실시예들에서, 두 참조 리스트에 있는 각 참조 픽처의 움직임 필드는 4x4 블록 레벨에서 횡단된다. 도 12는 FRUC 기법에서 단방향 움직임 추정(Motion Estimation: ME)(1200)의 일 예를 보여준다. 각 4x4 블록에 대해, 만약 현재 픽처에서 4x4 블록을 통과하는 블록과 관련된 움직임이 있고 상기 블록에 보간된 움직임이 할당되지 않은 경우, 참조 블록의 움직임은 시간적 거리 TD0 및 TD1에 따라 상기 현재 픽처로 스케일링되고 (HEVC에서 TMVP의 MV 스케일링과 동일한 방식), 상기 스케일링된 움직임은 현재 프레임의 블록에 할당된다. 스케일링된 MV가 4x4 블록에 할당되지 않은 경우, 블록의 움직임은 보간된 움직임 필드에서 사용할 수 없는 것으로 표시된다.
보간 및 매칭 코스트 움직임 벡터가 분수 샘플 위치를 가리키는 경우, 움직임 보상된 보간이 필요하다. 복잡성을 줄이기 위해, 양방향 매칭과 템플릿 매칭 모두에 대해 정규(regular) 8-탭 HEVC 보간 대신 양선형(bi-linear) 보간이 사용될 수 있다.
매칭 코스트 계산은 단계마다 조금씩 다르다. CU 레벨에서 설정된 후보자 세트에서 후보자를 선택하는 경우, 매칭 코스트는 양방향 매칭 또는 템플릿 매칭의 절대 차 합(Sum of Absolute Difference: SAD)일 수 있다. 시작 MV(starting MV)가 결정된 후 서브 CU 레벨 탐색에서 양방향 매칭의 매칭 코스트 C는 다음과 같이 계산된다.
Figure pct00090
여기서, w는 가중치이다. 일부 실시예들에서, w는 경험적으로 4로 설정될 수 있다.
Figure pct00091
는 각각 현재 MV와 시작 MV를 나타낸다. SAD는 서브 CU 레벨의 템플릿 매칭의 매칭 코스트로 여전히 사용될 수 있다.
FRUC 모드에서 MV는 루마 샘플들만을 사용하여 유도된다. 유도된 움직임은 MC 화면 간 예측을 위한 루마와 크로마 모두에 사용된다. MV가 결정되면 루마에 대해서는 8-탭 보간 필터를, 크로마에 대해서는 4-탭 보간 필터를 사용하여 최종 MC를 수행한다.
MV 개선은 양방향 매칭 코스트 또는 템플릿 매칭 코스트를 기준으로 하는 패턴 기반 MV 탐색이다. JEM에서는 2개의 탐색 패턴, 즉 무제약 중심 바이어스 다이아몬드 탐색(Unrestricted Center-biased Diamond Search: UCBDS) 및 적응형 교차 탐색이 각각 CU 레벨 및 서브 CU 레벨의 MV 개선을 위해 지원된다. CU 레벨 및 서브 CU 레벨 모두의 MV 개선에서, MV는 1/4 루마 샘플 MV 정확도에서 직접적으로 탐색되고, 1/8 루마 샘플 MV 개선이 뒤따른다. CU 및 서브 CU 단계에 대한 MV 개선의 탐색 범위는 8개의 루마 샘플과 같게 설정된다.
양방향(bilateral) 매칭 머지 모드에서는 양예측이 적용된다. 왜냐하면 CU의 움직임 정보가 두 상이한 참조 픽처들에서 상기 현재 CU의 움직임 궤적을 따라 두 블록들 간의 가장 가까운 매칭을 기반으로 유도되기 때문이다. 템플릿 매칭 머지 모드에서, 인코더는 CU에 대해 리스트 0으로부터의 단일 예측(uni-prediction), 리스트 1로부터의 단일 예측, 또는 양 예측 가운데 선택할 수 있다. 상기 선택은 아래와 같이 템플릿 매칭 코스트를 기반으로 할 수 있다.
If costBi <= factor * min (cost0, cost1)
양 예측이 사용된다.
Otherwise, if cost0 <= cost1
리스트 0(list0)으로부터의 단일 예측이 사용된다;
Otherwise,
리스트 1(list1)로부터의 단일 예측이 사용된다;
여기서, cost0은 리스트 0 템플릿 매칭의 SAD, cost1은 리스트 1(list1) 템플릿 매칭의 SAD, 그리고 costBi는 양 예측 템플릿 매칭의 SAD이다. 예를 들어, 계수의 값이 1.25와 같으면, 이는 선택 프로세스가 양 예측에 편향되어 있음을 의미한다. 화면 간 예측 방향 선택은 오직 CU 레벨 템플릿 매칭 프로세스에만 적용될 수 있다.
1.6 크로마 구성요소들에서 MC에 대해 유도된 MV의 예들
예를 들어, HEVC 표준은 루마 구성요소(mv로 표시)에서 MC에 사용된 MV에서 크로마 구성요소(mvC로 표시)에서 MC에 사용되는 MV를 유도하는 방법을 정의한다. 일반적으로 mvC는, 예를 들어, 4:2:0 혹은 4:2:2와 같은 색상 형식에 의존하는 인자를 곱한 mv로 계산된다.
1.7 VVC에서 현재 픽처 참조의 예들
현재 픽처 참조(current picture reference: CPR)로도 알려진 화면 내 블록 복사(IBC, 혹은 현재 픽처 블록 보상(intra picture block compensation))는 HEVC 스크린 콘텐츠 코딩 확장(screen content coding extensions: SCC)에서 채택되었다. 이런 툴은, 동일한 픽처 내에서 빈번하게 발생하는 텍스트 및 그래픽이 풍부한 콘텐츠의 반복 패턴의 스크린 콘텐츠 비디오 코딩에 매우 효율적이다. 예측자와 동일하거나 유사한 패턴을 갖는 이전에 복원된 블록을 갖는 것은 예측 에러를 효율적으로 감소시킬 수 있고, 결과적으로 코딩 효율을 향상시킬 수 있다.
HEVC SCC에서 CPR의 설계와 유사하게, VVC에서는, IBC 모드의 사용이 시퀀스 및 픽처 레벨 모두에서 시그널링된다. IBC 모드가 시퀀스 파라미터 세트 (sequence parameter set)에서 활성화되는 경우, 픽처 레벨에서 활성화될 수 있다. IBC 모드가 픽처 레벨에서 활성화되는 경우, 현재 복원된 픽처는 참조 픽처로 취급된다. 따라서, IBC 모드 사용을 시그널링하기 위해 기존 VVC 화면 간 모드 위에 블록 레벨에서의 구문 변경이 요구되지 않는다.
이 실시예의 특징은 다음을 포함한다.
- 정상 화면 간 모드(normal inter mode)로 취급된다. 따라서, 머지 및 스킵 모드들은 IBC 모드에서도 허용된다. 머지 후보 리스트 구성은 통합(unified)되며, IBC 모드 혹은 HEVC 화면간 모드 모두에서 코딩된 인접 위치의 머지 후보들을 포함한다. 선택된 머지 인덱스에 기초하여, 머지 혹은 스킵 모드 하의 현재 블록은 IBC 모드 코딩된 인접 혹은 참조 픽처들인 다른 픽처들을 갖는 정상 화면간 모드 코딩된 블록으로 병합될 수 있다.
- IBC 모드에 대한 블록 벡터 예측 및 코딩 방식들은 HEVC 화면간 모드(AMVP 및 MVD 코딩)에서 움직임 벡터 예측 및 코딩에 사용되는 방식을 재사용한다.
- 블록 벡터로도 지칭되는 IBC 모드에서의 움직임 벡터는 정수-픽셀 정밀도로 코딩되나, 보간 및 디블록킹(deblocking) 단계에서 1/4-픽셀 정밀도가 필요하므로, 디코딩된 이후에는 1/16-픽셀 정밀도로 메모리에 저장된다. IBC 모드에서의 움직임 벡터 예측에 사용되면, 저장된 벡터 예측자는 오른쪽으로 4만큼 시프트(shifted)된다.
- 탐색 범위: 현재 CTU 내로 제한된다.
- 어파인 모드/삼각 모드(triangular mode)/GBI/가중된 예측(weighted prediction)이 활성화되는 경우 CPR은 허용되지 않는다.
1.8 페어와이즈 평균 후보들의 예들
페어와이즈 평균 후보들(pairwise average candidates)은 현재 머지 후보 리스트의 기 정의된 후보들의 쌍들을 평균화함으로서 생성되며, 상기 기 정의된 쌍들은 {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}로 정의되며, 여기서 번호들은 머지 후보 리스트의 머지 인덱스들을 나타낸다. 평균화된 움직임 벡터들은 각 참조 리스트에 대해 개별적으로 계산된다. 하나의 리스트에서 두 움직임 벡터들을 모두 사용할 수 있는 경우, 그 두 움직임 벡터들은 서로 다른 참조 픽처들을 가리키는 경우에도 평균화된다. 오직 한 움직임 벡터만이 사용 가능한 경우, 그 하나의 움직임 벡터는 그대로 사용된다. 사용 가능한 움직임 벡터가 없는 경우, 해당 리스트는 사용 불가능한 것으로 유지한다. 페어와이즈 평균 후보들은 HEVC 표준의 결합된 후보들(combined candidates)을 대체한다. 두 머지 후보들의 MV들이 MV0 = (MV0x, MV0y) 및 MV1=(MV1x, MV1y)라면, MV*=(MV*x, MV*y)로 지칭되는 페어와이즈 머지 후보의 MV는 다음과 같이 유도된다.
MV*x=(MV0x+MV1x)/2, 및
MV*y=(MV0y+MV1y)/2.
또한, MV0 및 MV1이 현재 픽처(예를 들어, CPR 모드)를 참조하는 경우, MV*x 및 MV*y는 정수 MV가 명확히 획득되도록, 풀 픽셀(full pixel)보다 높은 정밀도를 갖는 부분을 삭제하기 위해 더 라운딩된다.
MV*x = (MV*x /16 )<<4, 및
MV*y = (MV*y /16 )<<4.
각 쌍에 대해, 둘 중 하나는 CPR로 코딩되고, 다른 하나는 그렇지 않은 경우, 그러한 쌍들은 페어와이즈 평균 후보를 생성하는 것이 허용되지 않는다.
1.9 삼각 예측 모드의 예들
삼각 예측 모드(triangular prediction mode: TPM)의 개념은 움직임 보상된 예측을 위한 새로운 삼각 분할을 도입하는 것이다. CU를 대각선 방향으로 혹은 역대각선 방향으로 두 개의 삼각 예측 유닛으로 분할한다. CU에서 각 삼각 예측 유닛은 고유한 단일 예측 움직임 벡터와 하나의 단일 예측 후보 리스트로부터 유도된 참조 프레임 인덱스를 사용하여 화면 간 예측된다. 적응적 가중 프로세스(adaptive weighting process)는 삼각 예측 유닛들을 예측한 이후 대각선 가장자리(edge)에 대해 수행된다. 이후, 변환 및 양자화 과정이 전체 CU에 대해 적용된다. 이 모드는 머지 모드에 대해서만 적용된다(여기서, 스킵 모드는 특별한 머지 모드로 취급된다). TPM에 대한 단일 예측 후보 리스트.
TPM 움직임 후보 리스트로 명명되는 단일 예측 후보 리스트는 다섯 개의 단일 예측 움직임 벡터 후보들로 구성된다. 이는 다섯 개의 공간적 인접 블록들과 두 개의 시간적 동일 위치(co-located) 블록들을 포함하는 일곱 개의 인접 블록들로부터 유도된다. 일곱 개의 인접 블록들의 움직임 벡터들을 수집하여 단일 예측 움직임 벡터들, 양 예측 움직임 벡터들의 L0 움직임 벡터, 양 예측 움직임 벡터들의 L1 움직임 벡터, 양 예측 움직임 벡터들의 L0 및 L1 움직임 벡터들에 대한 평균화된 움직임 벡터 순으로 단일 예측 후보 리스트에 포함시킨다. 후보들의 수가 5보다 작은 경우, 영 움직임 벡터(zero motion vector)가 리스트에 추가된다. TPM에 대한 이 리스트에 추가된 움직임 후보들은 TPM 후보들로 지칭되고, 공간적/시간적 블록들로부터 유도된 움직임 정보는 정규 움직임 후보(regular motion candidate)들로 지칭된다.
보다 상세하게는, 다음의 단계들이 관련된다.
(1) 프루닝(pruning) 작업 없이, A1, B1, B0, A0, B2, Col(정규 머지 모드의 그것과 유사) 및 Col2로부터 정규 움직임 후보들을 획득한다.
(2) 변수 numCurrMergeCand를 0으로 설정한다.
(3) numCurrMergeCand가 5 미만인, A1, B1, B0, A0, B2, Col 및 Col2로부터 유도된 각각의 정규 움직임 후보에 대하여, 정규 움직임 후보가 (리스트 0 또는 리스트 1로부터) 단일 예측이면, numCurrMergeCand가 1만큼 증가되고, TPM 후보로서 머지 리스트에 바로 추가된다. 이러한 TPM 후보는 "원래 단일 예측 후보"라 한다.
풀 프루닝(Full pruning)이 적용된다.
(4) numCurrMergeCand가 5 미만인, A1, B1, B0, A0, B2, Col 및 Col2로부터 유도된 각각의 움직임 후보에 대하여, 정규 움직임 후보가 양 예측이면, 리스트 0의 움직임 정보가 새로운 TPM 후보로서 TPM 머지 리스트에 추가(즉, 리스트 0에서 단일 예측으로 변경)되고, numCurrMergeCand는 1만큼 증가된다. 이러한 TPM 후보는 "절삭된(truncated) 리스트-0 예측 후보"라 한다.
풀 프루닝(Full pruning)이 적용된다.
(5) numCurrMergeCand가 5 미만인, A1, B1, B0, A0, B2, Col 및 Col2로부터 유도된 각각의 움직임 후보에 대하여, 정규 움직임 후보가 양 예측이면, 리스트 1의 움직임 정보가 TPM 머지 리스트에 추가(즉, 리스트 1으로부터 단일 예측으로 변경)되고, numCurrMergeCand는 1만큼 증가된다. 이러한 TPM 후보는 "절삭된(truncated) List-1 예측 후보"라 한다.
풀 프루닝(Full pruning)이 적용된다.
(6) numCurrMergeCand가 5 미만인, A1, B1, B0, A0, B2, Col 및 Col2로부터 유도된 각각의 움직임 후보에 대하여, 정규 움직임 후보가 양 예측이면, 리스트 1의 움직임 정보가 먼저 리스트 0 참조 픽처로 스케일링되고, 2개의 MV(하나는 원본 리스트 0에서부터 온 것이고 다른 하나는 리스트 1의 스케일링된 MV임)의 평균이 TPM 머지 리스트에 추가되고, 이러한 후보는 리스트 0 움직임 후보에서 평균 단일 예측이라 하고, numCurrMergeCand는 1만큼 증가된다.
풀 프루닝(Full pruning)이 적용된다.
(7) numCurrMergeCand가 5 미만이면, 영 움직임 벡터 후보들이 추가된다.
후보를 리스트에 삽입할 때, 이전에 추가된 모든 후보와 비교하여 그들 중 하나와 동일한지를 확인해야 하는 경우, 이러한 과정을 풀 프루닝이라 한다.
(MV1'x, MV1'y)로 표시된 스케일링된 MV 및 (MV0x, MV0y)로 표시된 리스트 0 MV를 가정한다. (MV*x, MV*y)로 표시된 리스트 0 움직임 후보의 평균 단일 예측은 다음과 같이 정의된다.
MV*x=(MV0x+MV1'x + 1) >> 1, 및
MV*y=(MV0y+MV1'y +1 ) >> 1.
2 기존 구현들의 단점들
기존 서브 블록 기반 예측 기술들은 다음과 같은 문제점을 가진다.
(1) 일부 기존 구현에서, 서브 블록들의 크기(예를 들어, JEM에서 4x4)는 주로 루마 구성요소를 위해 설계된 것이다. JEM에서, 서브 블록들의 크기는 4:2:0 포맷의 2x2크로마 구성요소들과, 4:2:2 포맷의 2x4 크로마 구성요소들이다. 서브 블록들의 작은 크기는 보다 높은 대역폭을 요구한다. 도 13은 JEM에서 4:2:0 포맷을 갖는 다른 요소들에 대한 16x16 블록(Cb/Cr에 대해 8x8)의 서브 블록들의 일 예를 보여준다.
(2) JEM의 어파인 예측과 같은 기존 서브블록 기반 툴들(tools)에서, 각 서브 블록의 MV들은 각 구성 요소에 대해 독립적으로 식 (1)에 표시된 어파인 모델로 계산되며, 이로 인해 루마와 크로마 구성요소들 간의 움직임 벡터의 잘못된 정렬이 도출된다.
(3) 어파인 예측과 같은 기존의 일부 서브 블록 기반 툴들에서, 사용 제약은 머지 모드와 논-머지(non-merge) 화면간 모드(예를 들어, AMVP, 혹은 노멀 화면 간 모드)에 대해 다르므로, 통합되어야 한다.
(4) 일부 기존 구현에서, 리스트 0 움직임 후보로부터 페어와이즈 머지 후보/평균화된 단일 예측을 유도하기 위한 움직임 벡터 평균 연산은 서브 블록 예측에서 사용된 라운딩 방법과 맞춰져야 한다. 그러므로, 하드웨어는 통합된 디자인을 가질 수 있다.
3 비디오 코딩에서 통합된 라운딩을 위한 예시적인 방법들
예 1. 한 블록은 색상 구성요소 및/혹은 색상 포맷 및/혹은 블록 모양/크기에 따라 다른 방식으로 서브 블록으로 분할된다.
(a) 하나의 루마와 그에 대응하는 크로마 블록들(예를 들어, 4:2:0 색상 포맷에서, 하나의 MxN 루마 블록은 하나의 M/2 x N/2 Cb 블록 및 하나의 M/2 x N/2 Cr 블록에 대응됨)에 대해, 분할된 서브 블록들의 수는 구성 요소에 따라 달라질 수 있다. 위 블록이 해당 구성요소를 위해 더 큰 크기를 가지는 경우, 구성요소에 대해 더 많은 서브 블록들로 분할된다.
(b) 각 색상 구성요소에 대해, 서브 블록들의 크기는 동일하며, 예를 들어, Y, Cb 및 Cr 구성요소에 대해 wХh이면, wХh는 8 x 8, 8 x 4, 4 x 8, 4 x 4 등일 수 있다. 예를 들어, x와 h는 둘 다 4일 수 있다. 도 14는 4:2:0 포맷의 다른 구성요소들에 대한 16 x 16 블록(Cb/Cr에 대해서는 8 x 8)의 제안된 서브 블록들의 일 예를 보여준다. 일 예에서, w>W 혹은 h>H이면, 위 블록은 위 구성요소에 대한 서브블록들로 분할되지 않는다.
(c) 한 블록 내에서 서로 다른 크기의 서브 블록들이 허용될 수 있다. 일 예로서, W(혹은 H)가 w(혹은 h)의 정수 배수가 아닌 경우, w/h 보다 작은 너비/높이를 갖는 서브 블록들을 위 블록의 인접한 좌측 혹은 상단 서브 블록으로 병합(merge)하는 것이 제안된다. 도 15는 12 x 16 블록(Cb/Cr에 대해서는 6 x 8)은 서브 블록들로 분할되는 일 예를 보여준다. 서브 블록 크기는 4 x 4이다. Cb/Cr 구성요소들에 대해, 마지막 두 개의 서브 블록들의 크기는 2 x 4이므로, 그들의 좌측 인접 블록들로 병합된다.
(d) 서브 블록 크기들은 블록 모양에 기반할 수 있다.
(i) 일 예로서, 정사각형 블록들(W는 H와 동일)에서, w는 h와 동일하게 설정될 수 있다.
(ii) 대안적으로, 정사각형이 아닌 블록들(W는 H와 상이)에서, w는 h와 동일하지 않을 수 있다. 예를 들어, W > H 이면, w는 h보다 크게 설정될 수 있으며, 반대의 경우도 가능하다.
(e) 다양한 색상 구성요소들 혹은 다양한 블록 모양들의 서브 블록 크기들은 시퀀스 파라미터 세트(sequence, parameter set: SPS), 픽처 파라미터 세트(picture parameter set: PPS), 슬라이스 헤더(slice header)에서 시그널링될 수 있다.
(f) Y 구성요소 및 Cb/Cr 구성요소들의 서브 블록 크기들은 서로 다른 방식으로 결정될 수 있다. 예를 들어, Y 구성요소의 서브 블록 크기는 4Х4 8Х8 4Х8 및 8Х4와 같은 일부 후보들로부터 적응적으로 결정되나, Cb/Cr 구성요소들의 서브블록 크기는 4Х4로 고정된다.
(g) Y 구성요소 및 Cb/Cr 구성요소들의 서브 블록 크기들은 4:2:0, 4:2:2: 및 4:4:4와 같은 색상 포맷들에 기반할 수 있다.
예 2. 하나의 색상 구성요소의 서브 블록의 MV는 어파인 모델로 이미 유도된 다른 색상 구성요소의 하나 이상의 서브 블록들의 MV(들)로부터 유도될 수 있다. 이 경우, 동일한 색상 구성요소의 정보를 기반으로 세번에 걸쳐 하나의 색상 구성요소의 움직임 정보를 유도할 필요가 없다.
(a) 일 예로서, 하나의 구성요소에 대한 서브 블록의 MV는 다른 구성요소에 대한 하나의 대응 서브 블록의 MV로부터 유도될 수 있다. 도 16은 4:2:0 포맷에 대한 일 예를 보여준다. 각 구성요소에 대한 블록은 도 13의 예에 따라 분할된다. 제1 유도된 MV*는 Y 구성요소의 해당 4 x 4서브 블록의 MV에서 복제된 다음, 섹션 1.6. 에 특정된 규칙에 따라 MV*로부터 Cb 혹은 Cr 구성요소의 2 x 2 서브 블록의 MV가 유도된다.
(b) 다른 일 예로서, 한 구성 요소에 대한 서브 블록의 MV는 다른 구성 요소에 대한 대응되는 다수의 서브 블록들의 MV들로부터 유도될 수 있다. 도 17은 4:2:0 포맷에 대한 일 예를 보여준다. 여기서 Cb 혹은 Cr 구성요소의 4x4 서브 블록은 Y 구성요소에 대한 네 개의 4 x 4 서브 블록에 대응된다. 각 구성요소에 대한 블록들은 도 14의 예에 따라 분할된다. 제1 유도된 MV*는 다른 구성요소에 대한 다수의 대응 서브 블록들의 MV들로부터 산출되고, 이후, Cb 혹은 Cr 구성요소의 4x4 서브블록의 MV가 섹션 1.6.에 특정된 규칙에 따라 MV* 로부터 유도된다.
(i) 일 실시예에서, MV*는 Y 구성요소의 모든 대응되는 서브 블록 MV들의 평균으로 계산된다. 일 예로서, MV* = ( MV0 + MV1 + MV2 + MV3 ) / 4이다. MV*=(MV*x, MV*y), MV0=(MV0x, MV0y), MV1=(MV1x, MV1y), MV2=(MV2x, MV2y) 및 MV3=(MV3x, MV3y)로 가정한다.
(1) 일 실시예에서, MV*x=Shift(MV0x+MV1x+MV2x +MV3x, 2), MV*y=Shift(MV0y+MV1y+MV2y+MV3y, 2)이다.
(2) 다른 일 실시예에서, MVx*=SignShift(MV0x+MV1x+ MV2x+MV3x, 2), MVy*=SignShift(MV0y+MV1y+MV2y+MV3y, 2)이다.
(3) 다른 일 실시예에서, MV*의 계산은 다음과 같은 순서로 수행될 수 있다.
MV'x=Shift(MV0x+MV1x, 1),
MV'y=Shift(MV0y+MV1y, 1),
MV''x= Shift(MV2x+MV3x, 1),
MV''y=Shift(MV2y+MV3y, 1),
MV*x=Shift(MV'x+MV''x, 1), 및
MV*y=Shift(MV'y+MV''y, 1).
(4) 다른 일 실시예에서, MV*의 계산은 다음과 같은 순서로 수행될 수 있다.
MV'x=Shift(MV0x+MV2x, 1),
MV'y=Shift(MV0y+MV2y, 1),
MV''x= Shift(MV1x+MV3x, 1),
MV''y=Shift(MV1y+MV3y, 1),
MV*x=Shift(MV'x+MV''x, 1), 및
MV*y=Shift(MV'y+MV''y, 1).
(5) 다른 일 실시예에서, MV*의 계산은 다음과 같은 순서로 수행될 수 있다.
MV'x=SignShift(MV0x+MV1x, 1),
MV'y=SignShift(MV0y+MV1y, 1),
MV''x= SignShift(MV2x+MV3x, 1),
MV''y=SignShift(MV2y+MV3y, 1),
MV*x=SignShift(MV'x+MV''x, 1), 및
MV*y=SignShift(MV'y+MV''y, 1).
(6) 다른 일 실시예에서, MV*의 계산은 다음과 같은 순서로 수행될 수 있다.
MV'x=SignShift(MV0x+MV2x, 1),
MV'y=SignShift(MV0y+MV2y, 1),
MV''x = SignShift(MV1x+MV3x, 1),
MV''y = SignShift(MV1y+MV3y, 1),
MV*x = SignShift(MV'x+MV''x, 1), 및
MV*y = SignShift(MV'y+MV''y, 1).
(ii) 일 실시예에서, MV*는 Y 구성요소에 대한 좌측 상단의 대응 서브 블록의 MV로 계산된다. 일 예로서, MV*= MV0이다.
(iii) 일 실시예에서, MV*는 Y 구성요소에 대한 중앙의 대응 서브 블록의 MV로 계산된다.
(iv) 일 실시예에서, MV*는 Y 구성요소에 대한 모든 대응 서브 블록 MV들의 중간값(median)으로 계산된다. 여기서, MV* = median(MV0,MV1,MV2,MV3)이다.
(v) 다른 구성요소로부터 하나의 구성 요소에 대한 서브 블록들의 MV들을 유도하는 방식은 4:2:0, 4:2:2 및 4:4:4과 같은 색상 포맷들에 기반하여 결정될 수 있다.
(1) 색상 포맷이 4:4:4인 경우, 일 예로서, 서브 블록의 크기들은 모든 구성요소에 대하여 동일하고, 각 서브 블록에 대한 서브 블록의 MV는 동일하다.
(2) 색상 포맷이 4:2:2인 경우, 일 예로서, 모든 구성 요소에 대하여 서브 블록의 크기들이 동일하고, 제1 유도된 MV*는 다른 구성 요소에 대한 대응되는 다수의 서브 블록들의 MV들로부터 계산되며, 이후, 섹션 2.6.에 특정된 규칙에 따라 Cb 혹은 Cr 구성요소에서 서브 블록의 MV는 MV*로부터 유도된다. 도 18에 나타난 일예에서, 하나의 Cb/Cr 서브 블록은 움직임 벡터 MV0 및 MV1을 갖는 두 개의 Y 서브 블록에 대응된다.
(a) MV* =(MV0+MV1)/2이다. MV*=(MV*x, MV*y), MV0=(MV0x, MV0y), MV1=(MV1x, MV1y)라고 가정한다.
(i) 일 실시예로서, MV*x=Shift(MV0x+MV1x, 1), MV*y=Shift(MV0y+MV1y, 1)이다.
(ii) 다른 일 실시예로서, MVx*=SignShift(MV0x+MV1x, 1), MVy*=SignShift(MV0y+MV1y, 1)이다.
머지 및 논-머지 어파인 모드들에 대한 통합된 제약 조건들의 예들
예 3. 머지 어파인 모드 및 논-머지 어파인 모드는 동일한 블록 크기 제약 조건으로, 허용되거나 허용되지 않는다.
(a) 블록 크기 제약 조건은 하나 혹은 두 개의 임계값들과 비교되는 너비 및 높이에 기반한다. 예를 들어, 머지 어파인 모드 및 논-머지 어파인 모드 모두는, 현재 블록의 너비 및 높이 모두가 M보다 큰 경우(예를 들어, M은 8) 혹은 너비가 M0보다 크고 높이가 M1 보다 큰 경우(예를 들어, M0은 8 및 M1은 4) 허용된다. 그 외의 경우, 머지 어파인 모드 및 논-머지 어파인 모드 둘다 허용되지 않는다.
(b) 블록 크기 제약 조건은 한 블록(예를 들어, 너비 x 높이인 영역) 내의 총 샘플들의 수에 기반한다. 일 예로서, 머지 어파인 모드 및 논-머지 어파인 모드 모두는, 현재 블록의 영역(예를 들어, 너비 x 높이)이 N보다 작지 않은 경우(예를 들어, N은 64), 허용된다. 그 외의 경우, 머지 어파인 모드 및 논-머지 어파인 모드는 둘다 허용되지 않는다.
(c) 머지 어파인 모드의 경우, JEM에서 플래그로 시그널링되는 명시적인 모드(explicit mode)이거나, 다른 구현에서와 같이 플래그로 시그널링되지 않는 암시적인(implicit) 모드일 수도 있다. 후자의 경우, 어파인 머지 후보는 머지 어파인 모드가 허용되지 않는 경우 통합된 머지 후보 리스트에 포함되지 않는다.
(d) 논-머지 어파인 모드의 경우, 상기 규칙에 따라 어파인이 허용되지 않으면, 어파인 모드 지시 시그널링은 생략된다.
통합된 라운딩 과정의 예들
예 4. 한 머지 후보가 MV0 = (MV0x, MV0y)인 움직임 벡터를 갖고, 다른 머지 후보가 MV1=(MV1x, MV1y)인 움직임 벡터를 갖는다고 가정한다. 그리고 이러한 두 개의 머지 후보들로부터 유도된 페어와이즈 머지 후보 중 한 MV는 MV*=(MV*x, MV*y)로 표시되며, 다음과 같이 유도된다.
MV*x=Shift(MV0x+MV1x, 1), 및
MV*y=Shift(MV0y+MV1y, 1).
대안적으로,
MV*x=SignShift(MV0x+MV1x, 1), 및
MV*y =SignShift(MV0y+MV1y, 1).
예 5. 한 머지 후보가 MV0 = (MV0x, MV0y)인 움직임 벡터를 갖고, 다른 머지 후보가 MV1=(MV1x, MV1y)인 움직임 벡터를 갖는다고 가정한다. 그리고 MV0 및/혹은 MV1이 현재 픽처를 참조하고, 이러한 두 개의 머지 후보들로부터 유도된 페어와이즈 머지 후보의 한 MV는 MV*=(MV*x, MV*y)로 표시되며, 다음과 같이 유도된다.
(a) MV*x=Shift(MV0x+MV1x, 1); MV*y=Shift(MV0y+MV1y, 1); 이면 MV*x=(Shift(MV*x, 4))<<4; MV*y=(Shift(MV*y, 4))<<4
(b) MV*x=SignShift(MV0x+MV1x, 1); MV*y= SignShift (MV0y+MV1y, 1); 이면 MV*x=( SignShift (MV*x, 4))<<4; MV*y=( SignShift (MV*y, 4))<<4
(c) MV*x=(Shift(MV0x+MV1x, (W+1)))<<W; MV*y=(Shift(MV0y+MV1y, (W+1)))<<W, 여기서 W는 2 혹은 4인 정수이다. W는 정수로서, 1<<W가 MV 표현 정밀도와 동일하다.
(d) MV*x=(SignShift(MV0x+MV1x, (W+1)))<<W; MV*y=(SignShift(MV0y+MV1y, (W+1))) <<W, W는 2 혹은 4인 정수이다. W는 정수로서, 1<<W가 MV 표현 정밀도와 동일하다.
예 6. (MV1'x, MV1'y) 로 표시되는 스케일링된 MV 및 (MV0x, MV0y)로 표시되는 리스트 0 MV를 가정하자. (MV*x, MV*y)로 표시된 리스트 0 움직임 후보로부터 평균화된 단일 예측은 다음과 같이 정의된다.
MV*x=Shift(MV0x+MV1'x, 1), 및
MV*y=Shift(MV0y+MV1'y, 1).
대안적으로,
MV*x=SignShift(MV0x+MV1'x, 1), 및
MV*y =SignShift(MV0y+MV1'y, 1).
일부 실시예들에서, SignShift(x, s)는 0 방향으로 정수를 우측 시프트(right shift)할 수 있다. 이는 다음과 같이 정의된다.
SignShift(x, s) =
Figure pct00092
여기서, off = (1 << (s-1) ) - 1이다.
다른 실시예에서, SignShift(x, s)는 대안적으로 다음과 같이 정의될 수 있다.
SignShift(x, s) =
Figure pct00093
여기서, off = (1 << (s-1) ) - 1이다.
상기에서 설명된 예들은 비디오 디코더 및/혹은 비디오 인코더에서 실행될 수 있는 방법 1930, 1960 및 1990을 포함한 하기에서 설명되는 방법들의 맥락에서 통합될 수 있다.
도 19A는 예시적인 비디오 프로세싱 방법 1930의 흐름도를 보여준다. 방법 1930은 단계 1932로서, 비디오의 현재 블록의 프로세싱을 위하여, 한 쌍의 움직임 후보들에 기반하여 페어와이즈 머지 후보를 생성하는 과정을 포함한다.
방법 1930은 단계 1934로서 상기 페어와이즈 머지 후보에 기반하여 상기 비디오의 비트스트림 표현과 상기 현재 블록 간의 변환을 수행하는 과정을 포함한다.
도 19B는 예시적인 비디오 프로세싱 방법 1960의 흐름도를 보여준다. 방법 1960은 단계 1962로서 비디오의 현재 블록의 프로세싱을 위하여 위 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보를 생성하는 과정을 포함한다.
방법 1960은 단계 1964로서 페어와이즈 머지 후보를 기반으로 위 비디오의 비트스트림 표현과 위 현재 블록 간의 변환을 수행하는 단계를 포함한다.
도 19C는 예시적인 비디오 프로세싱 방법 1990의 흐름도를 보여준다. 방법 1990은 단계 1992로서, 기하 분할 모드를 이용하여 코딩된 비디오의 현재 블록에 대한 단일 예측 움직임 후보를, 스케일링된 움직임 벡터 및 리스트 0 움직임 벡터를 기반으로 생성하는 과정을 포함한다.
방법 1990은 단계 1994로서 단일 예측 움직임 후보에 기반하여 상기 비디오의 비트스트림 표현과 상기 현재 블록 간의 변환을 수행하는 과정을 포함한다.
일부 실시예에서, 다음과 같은 기술적 해결책이 구현된다:
A1. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록 프로세싱을 위해 움직임 후보들이 쌍을 기반으로 페어와이즈 머지 후보(pariwise merge candidate)를 생성하는 단계, 상기 페어와이즈 머지 후보에 기반하여 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00094
Figure pct00095
이고,
Figure pct00096
이고, off 및 s는 정수이고, >>는 오른쪽 시프트 연산(right shift operation)을 의미하는, 비디오 프로세싱 방법.
A2. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위해, 한 쌍의 움직임 후보들에 기반하여 페어와이즈 머지 후보를 생성하는 단계 및 상기 페어와이즈 머지 후보에 기반하여 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00097
Figure pct00098
이고,
Figure pct00099
Figure pct00100
이며, off 및 s는 정수이고, >>는 시프트 연산을 의미하는, 비디오 프로세싱 방법.
A3. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위해 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보를 생성하는 단계, 상기 페어와이즈 머지 후보에 기반하여 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00101
Figure pct00102
이고,
Figure pct00103
off 및 s는 정수이고, >>는 시프트 연산을 의미하는, 비디오 프로세싱 방법.
A4. A1 내지 A3의 어느 한 방법에 있어서, 상기 한 쌍의 머지 후보들은 머지 후보 리스트로부터 기인하는, 비디오 프로세싱 방법.
A5. A1 내지 A3의 어느 한 방법에 있어서, 상기 참조 픽처 리스트 L은 참조 픽처 리스트 0(L0) 혹은 참조 픽처 리스트 1(L1)를 포함하는, 비디오 프로세싱 방법.
A6. A1 내지 A3의 어느 한 방법에 있어서, 상기 페어와이즈 머지 후보를 상기 머지 후보 리스트에 삽입하는 단계를 더 포함하는, 비디오 프로세싱 방법.
A7. A1 내지 A3의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계 이후, 상기 머지 후보 리스트를 업데이트하는 단계를 더 포함하는, 비디오 프로세싱 방법.
A8. A1 내지 A7의 어느 한 방법에 있어서, off= 0인, 비디오 프로세싱 방법.
A9. A1 내지 A7의 어느 한 방법에 있어서, s= 0이라는 결정 하에 off= 0인, 비디오 프로세싱 방법.
A10. A1 내지 A7의 어느 한 방법에 있어서,
Figure pct00104
인, 비디오 프로세싱 방법.
A11. A1 내지 A7의 어느 한 방법에 있어서,
Figure pct00105
는 결정 하에
Figure pct00106
인, 비디오 프로세싱 방법.
A12. A1 내지 A7의 어느 한 방법에 있어서,
Figure pct00107
인, 비디오 프로세싱 방법.
A13. A1 내지 A12의 어느 한 방법에 있어서, 상기 현재 비디오 블록은 코딩 유닛(coding unit)인, 비디오 프로세싱 방법.
A14. A1 내지 A13의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계는 상기 현재 비디오 블록으로부터 상기 비트스트림 표현을 생성하는 단계를 포함하는, 비디오 프로세싱 방법.
A15. A1 내지 A13의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 현재 비디오 블록을 생성하는 단계를 포함하는, 비디오 프로세싱 방법.
A16. A1 내지 A15의 어느 한 방법을 실행하는 프로세서를 포함하는, 비디오 디코딩 장치.
A17. 비-일시적 컴퓨터 읽기 가능한 매체에 저장된 컴퓨터 프로그램 제품에 있어서, A1 내지 A15의 어느 한 방법을 실행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
일부 실시예로서, 다음과 같은 기술적 해결책들이 실현된다:
B1. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위해, 페어와이즈 머지 후보를 생성하는 단계, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하고, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00108
Figure pct00109
이며, off와 s는 정수이고, >>는 오른쪽 시프트 연산(right shift operation)을 의미하는, 비디오 프로세싱 방법.
B2. B1의 방법에 있어서, 상기 페어와이즈 머지 후보를 생성하는 단계는
Figure pct00110
연산을 수행하는 단계를 더 포함하는, 비디오 프로세싱 방법.
B3. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위해, 페어와이즈 머지 후보를 생성하는 단계, 여기서 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하고, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00111
이고,
Figure pct00112
off와 s는 정수이고, >>는 시프트 연산을 의미하는, 비디오 프로세싱 방법.
B4. B3의 방법에 있어서, 상기 페어와이즈 머지 후보를 생성하는 단계에서,
Figure pct00113
인, 비디오 프로세싱 방법.
B5. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위해, 페어와이즈 머지 후보를 생성하는 단계, 여기서 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하고, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00114
이고,
Figure pct00115
off와 s는 정수이고, >>는 시프트 연산을 의미하는, 비디오 프로세싱 방법.
B6. B5의 방법에 있어서, 상기 페어와이즈 머지 후보를 생성하는 단계는
Figure pct00116
연산을 수행하는 단계를 더 포함하는, 비디오 프로세싱 방법.
B7. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위해, 페어와이즈 머지 후보를 생성하는 단계, 여기서 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하고, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00117
Figure pct00118
이고,
Figure pct00119
이며, W, offs는 정수이고, >>는 오른쪽 시프트 연산을 의미하는, 비디오 프로세싱 방법.
B8. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00120
Figure pct00121
이고, SignShift(x,s)
Figure pct00122
이고, W, off s는 정수이며, >>는 시프트 연산을 의미하는, 비디오 프로세싱 방법.
B9. 비디오 프로세싱 방법에 있어서, 비디오의 현재 블록의 프로세싱을 위하여, 페어와이즈 머지 후보를 생성하는 단계, 상기 생성하는 단계는 상기 현재 블록을 포함하는 현재 픽처를 참조하는 한 쌍의 움직임 후보들을 기반으로 하며, 상기 페어와이즈 머지 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 한 쌍의 움직임 후보들은 제1 움직임 후보의 참조 픽처 리스트 L에 대한 제1 움직임 벡터 MV0 = (MV0x, MV0y) 및 제2 움직임 후보의 상기 참조 픽처 리스트 L에 대한 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고, MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보이며,
Figure pct00123
Figure pct00124
Figure pct00125
이고, W, off s 는 정수이고, >>는 시프트 연산을 의미하는, 비디오 프로세싱 방법.
B10. B7 내지 B9의 어느 한 방법에 있어서, W는 2 혹은 4인, 비디오 프로세싱 방법.
B11. B10의 방법에 있어서,
Figure pct00126
는 움직임 벡터 표현 정밀도인, 비디오 프로세싱 방법.
B12. B1 내지 B11의 어느 한 방법에 있어서, 상기 머지 후보들의 쌍은 머지 후보 리스트로부터 기인하는, 비디오 프로세싱 방법.
B13. B1 내지 B11의 어느 한 방법에 있어서, 상기 참조 픽처 리스트 L은 참조 픽처 리스트 0(L0) 혹은 참조 픽처 리스트 1(L1)을 포함하는, 비디오 프로세싱 방법.
B14. B1 내지 B11의 어느 한 방법에 있어서, 상기 페어와이즈 머지 후보를 상기 머지 후보 리스트에 삽입하는 단계를 더 포함하는, 비디오 프로세싱 방법.
B15. B1 내지 B11의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계 이후, 상기 머지 후보 리스트를 업데이트 하는 단계를 더 포함하는, 비디오 프로세싱 방법.
B16. B1 내지 B15의 어느 한 방법에 있어서, off= 0인, 비디오 프로세싱 방법.
B17. B1 내지 B15의 어느 한 방법에 있어서, s= 0이라는 결정 하에 off= 0인, 비디오 프로세싱 방법.
B18. B1 내지 B15의 어느 한 방법에 있어서,
Figure pct00127
인, 비디오 프로세싱 방법.
B19. B1 내지 B15의 어느 한 방법에 있어서,
Figure pct00128
라는 결정 하에
Figure pct00129
인, 비디오 프로세싱 방법.
B20. B1 내지 B15의 어느 한 방법에 있어서,
Figure pct00130
인, 비디오 프로세싱 방법.
B21. B1 내지 B20의 어느 한 방법에 있어서, 상기 현재 비디오 블록은 코딩 유닛(coding unit)인, 비디오 프로세싱 방법.
B22. B1 내지 B21의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계는 상기 현재 블록으로부터 상기 비트스트림 표현을 생성하는 단계를 포함하는, 비디오 프로세싱 방법.
B23. B1 내지 B21의 어느 한 방법에 있어서,상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 현재 블록을 생성하는 단계를 포함하는, 비디오 프로세싱 방법.
B24. B1 내지 B23의 어느 한 방법을 실행하는 프로세서를 포함하는 비디오 디코딩 장치.
B25. 비-일시적 컴퓨터 읽기가능한 매체에 저장된 컴퓨터 프로그램에 있어서, B1 내지 B23의 어느 한 방법을 실행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
일부 실시예에서, 다음과 같은 기술적 해결책들이 실현된다:
C1. 비디오 프로세싱 방법에 있어서, 기하 분할 모드를 사용하여 코딩된 비디오의 현재 블록에 대하여, 스케일링된 움직임 벡터 및 리스트0 움직임 벡터를 기반으로 단일 예측 움직임 후보를 생성하는 단계, 상기 단일 예측 움직임 후보에 기반하여 상기 현재 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 상기 스케일링된 움직임 벡터는 MV1' = (MV1'x, MV1'y)이고, 상기 리스트0 움직임 벡터는 MV0 = (MV0x, MV0y)이고, MV* = (MV*x, MV*y)는 상기 단일 예측 움직임 후보이며,
Figure pct00131
이고,
Figure pct00132
이며, offs 는 정수이며, >>는 오른쪽 시프트 연산(right shift operation)을 의미하는, 비디오 프로세싱 방법.
C2. 비디오 프로세싱 방법에 있어서, 기하 분할 모드를 이용하여 코딩된 비디오의 현재 블록에 대하여, 스케일링된 움직임 벡터 및 리스트0 움직임 벡터를 기반으로 단일 예측 움직임 후보를 생성하는 단계, 상기 단일 예측 움직임 후보를 기반으로 상기 현재 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 스케일링된 움직임 벡터는 MV1' = (MV1'x, MV1'y)이고, 상기 리스트0 움직임 벡터는 MV0 = (MV0x, MV0y)이고, MV* = (MV*x, MV*y)는 상기 단일 예측 움직임 후보이며,
Figure pct00133
이고,
Figure pct00134
이고,
offs는 정수이고, >>는 시프트 연산(shift operation)을 의미하는, 비디오 프로세싱 방법.
C3. 비디오 프로세싱 방법에 있어서, 기하 분할 모드를 이용하여 코딩된 비디오의 현재 블록에 대해, 스케일링된 움직임 벡터와 리스트0 움직임 벡터를 기반으로 단일 예측 움직임 후보를 생성하는 단계, 및 상기 단일 예측 움직임 후보를 기반으로 상기 현재 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하며, 상기 스케일링된 움직임 벡터는 MV1' = (MV1'x, MV1'y)이며, 상기 리스트0 움직임 벡터는 MV0 = (MV0x, MV0y)이며, MV* = (MV*x, MV*y)는 상기 단일 예측 움직임 후보이며,
Figure pct00135
이고,
Figure pct00136
이고,
offs는 정수이고, >> 는 시프트 연산(shift operation)을 의미하는, 비디오 프로세싱 방법.
C4. C1 내지 C3의 어느 한 방법에 있어서, MV*는 리스트0의 참조 픽처를 사용하는, 비디오 프로세싱 방법.
C5. C1 내지 C3의 어느 한 방법에 있어서, 상기 스케일링된 움직임 벡터 및 상기 리스트0 움직임 벡터는 상기 기하 분할 모드를 이용하여 코딩된 블록들로부터 유도된 움직임 후보 리스트로부터 기인하는, 비디오 프로세싱 방법.
C6. C1 내지 C3의 어느 한 방법에 있어서, 상기 단일 예측 움직임 후보를 상기 움직임 후보 리스트에 삽입하는 단계를 더 포함하는, 비디오 프로세싱 방법.
C7. C1 내지 C3의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계 이후, 상기 움직임 후보 리스트를 업데이트하는 단계를 더 포함하는, 비디오 프로세싱 방법.
C8. C1 내지 C7의 어느 한 방법에 있어서,
Figure pct00137
인, 비디오 프로세싱 방법.
C9. C1 내지 C7의 어느 한 방법에 있어서, s = 0라는 결정 하에
Figure pct00138
인, 비디오 프로세싱 방법.
C10. C1 내지 C7의 어느 한 방법에 있어서,
Figure pct00139
인, 비디오 프로세싱 방법.
C11. C1 내지 C7의 어느 한 방법에 있어서,
Figure pct00140
라는 결정 하에
Figure pct00141
인, 비디오 프로세싱 방법.
C12. C1 내지 C7의 어느 한 방법에 있어서,
Figure pct00142
인, 비디오 프로세싱 방법.
C13. C1 내지 C12의 어느 한 방법에 있어서, 상기 기하 분할 모드는 삼각 예측 모드(triangular prediction mode: TPM)를 포함하는, 비디오 프로세싱 방법.
C14. C1 내지 C12의 어느 한 방법에 있어서, 상기 현재 블록은 비-정사각형(non-square) 및 비-직사각형(non-rectangular)인 적어도 하나의 파티션(partition)을 포함한 다수의 파티션들로 분할되는, 비디오 프로세싱 방법.
C15. C1 내지 C14의 어느 한 방법에 있어서, 상기 현재 비디오 블록은 코딩 유닛(coding unit)인, 비디오 프로세싱 방법.
C16. C1 내지 C15의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계는 상기 현재 비디오 블록으로부터 상기 비트스트림 표현을 생성하는 단계를 포함하는, 비디오 프로세싱 방법.
C17. C1 내지 C15의 어느 한 방법에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 현재 비디오 블록을 생성하는 단계를 포함하는, 비디오 프로세싱 방법.
C18. C1 내지 C17의 어느 한 방법을 실행하는 프로세서를 포함하는 비디오 디코딩 장치.
C19. 비-일시적 컴퓨터 읽기 가능한 매체에 저장된 프로그램에 있어서, C1 내지 C17의 어느 한 방법을 실행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
4 개시된 기술의 구현 예들
도 20은 비디오 프로세싱 장치 2000의 블록도이다. 장치 2000는 여기에 개시된 하나 혹은 이상의 방법들을 구현하는데 사용될 수 있다. 장치 2000는 스마트폰, 타블렛(tablet), 컴퓨터, IoT(Internet of Things) 수신기 등으로 구현될 수 있다. 상기 장치 2000은 하나 이상의 프로세서 2002, 하나 이상의 메모리 2004 및 비디오 프로세싱 하드웨어 2006를 포함할 수 있다. 프로세서(들) 2002는 본 개시에 설명된 하나 이상의 방법(방법 1930, 1960, 1990을 포함하나 이에 한정되는 것은 아님)을 구현할 수 있다. 메모리(들) 2004는 여기에 개시된 상기 방법들 및 기술들을 실행하기 위한 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 프로세싱 하드웨어 2006은 하드웨어 회로에서 본 개시에 설명된 기술들을 구현하는데 사용될 수 있다.
일부 실시예로서, 상기 비디오 디코딩 방법들은 도 20을 참조하여 설명된 바와 같이 하드웨어 플랫폼 상의 장치를 이용하여 구현될 수 있다.
도 21은 여기서 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템 2100을 보여주는 블록도이다.다양한 구현 예들은 상기 시스템 2100의 구성요소 전부 혹은 일부를 포함할 수 있다. 시스템 2100은 비디오 컨텐츠를 수신하기 위하여 입력 2102를 포함할 수 있다. 비디오 컨텐츠는 raw 포맷 혹은 압축되지 않은 포맷(예를 들어, 8 혹은 10 비트 다중 구성요소 픽셀 값들)이거나 압축된 혹은 인코딩된 포맷으로 수신될 수 있다. 입력 2102는 네트워크 인터페이스, 주변 버스 인터페이스, 혹은 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷(Ethernet), 수동 광 통신망(passive optical network: PON) 등과 같은 유선 인터페이스들과 와이파이(Wi-Fi) 혹은 셀룰러 인터페이스들(cellular interfaces)과 같은 무선 인터페이스들을 포함한다.
시스템 2100은 본 개시에 설명된 다양한 코딩 혹은 인코딩 방법들을 구현할 수 있는 코딩 구성요소 2104를 포함할 수 있다. 코딩 구성요소 2104는 비디오의 코딩된 표현을 생성하기 위해 입력 2102로부터 코딩 구성요소 2104의 출력으로의 비디오 평균 비트율(bitrate)을 감소시킬 수 있다. 코딩 기술들은 이에 따라 종종 비디오 압축 혹은 비디오 트랜스코딩 기술들로 불린다. 상기 코딩 구성요소 2104의 출력은 저장되거나, 구성요소 2106에 의해 표현된 연결된 통신을 통해 송신될 수 있다. 입력 2102에서 수신된 비디오의 저장된 혹은 통신된 비트스트림(혹은 코딩된) 표현은 픽셀 값들 혹은 디스플레이 인터페이스 2110에 전송된 디스플레이 가능한 비디오를 생성하기 위해 구성요소 2108에 의해 사용될 수 있다. 비트스트림 표현으로부터 유저가 볼 수 있는 비디오를 생성하는 과정은 종종 비디오 압축 해제라고 불린다. 또한, 특정 비디오 처리 작업들이 "코딩" 작업들 혹은 툴들로 지시될 때, 코딩 툴들 혹은 작업들은 인코더에서 사용되고, 코딩의 결과들을 역전시키는, 대응되는 디코딩 툴들 혹은 작업들은 디코더에 의해 수행될 것으로 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(Universal Serial Bus: USB) 또는 고화질 멀티미디어 인터페이스(High Definition Multimedia Interface: HDMI) 또는 디스플레이 포트 등을 포함할 수 있다. 스토리지 인터페이스의 예들은 SATA (serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 개시에 설명된 기술들은 휴대폰, 노트북(랩탑, laptop), 스마트폰, 또는 디지털 데이터 처리(프로세싱, processing) 및/또는 비디오 디스플레이를 수행할 수 있는 다른 기타 장치들과 같은 다양한 전자 장치들에서 구현될 수 있다.
상기로부터, 현재 개시된 기술의 구체적인 실시예들은 예시적인 설명의 목적으로 기재되었으며, 본 발명의 범위에서 벗어나지 않는 한 다양한 수정이 이루어질 수 있다는 점이 이해될 것이다. 따라서, 현재 개시된 기술은 첨부된 청구항들에 의하는 바를 제외하고는 한정되지 않는다.
본 특허 문서에 기재된 주제 및 기능적 작업들의 구현들은 다양한 시스템, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 본 명세서에서 개시된 구조들 및 구조적 등가물들, 또는 그 중 하나 이상의 조합이 포함될 수 있다. 본 명세서에 기재된 주제의 구현들은 하나 이상의 컴퓨터 프로그램 제품들로, 즉, 유형의, 비-일시적인 컴퓨터 판독 가능한 매체에 코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현되어, 데이터 처리 장치에 의해 실행하거나, 또는 상기 장치의 작동을 제어할 수 있다. 상기 컴퓨터 판독 가능한 매체는 기계 판독 가능한 저장 디바이스, 기계 판독 가능한 저장 기판, 메모리 디바이스, 기계 판독 가능한 전파 신호를 가져오는 물질의 조성, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 유닛" 또는 "데이터 처리 장치”는, 데이터를 처리하기 위한 모든 장치, 디바이스 및 기계를 포괄하며, 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터들을 포함한다. 상기 장치는, 하드웨어 외에도, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함할 수 있고, 코드는 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 인터프리터 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨터 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 상응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부에 저장되거나(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트), 당해 프로그램 전용의 단일 파일에 저장되거나, 또는 다수의 조직화된 파일들(예를 들어, 하나 이상의 모듈, 서브프로그램, 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 한 위치에 배치되거나 또는 다수의 위치에 걸쳐서 분산되고 통신 네트워크에 의해 접속된 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에서 설명된 프로세스와 논리 흐름은 하나 이상의 프로그래머블 프로세서에 의해 수행될 수 있고, 이 프로그래머블 프로세서는 입력 데이터에 작용하여 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행한다. 프로세서와 논리 흐름은, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 전용 논리 회로에 의해 수행될 수 있고, 장치 또한 전용 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예를 들어, 범용 및 전용 마이크로프로세서 및 임의 종류의 디지털 컴퓨터의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 양자로부터 명령어들과 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령을 실행하는 프로세서 및 명령어와 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 수 있다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크), 광자기 디스크 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
도면과 함께 본 명세서는 오직 예시적인 것으로 간주되어야 한다. 여기서, 단수형 표현과 '상기', '위' 와 같은 표현들은 문맥이 달리 명시하지 않는 한 복수형도 포함하는 것으로 의도되었다. 또한, 본 문서에서 사용된 "또는”은 문맥이 명시적으로 달리 지시하지 않는 한 "및/또는”을 포함하는 것으로 의도되었다.
본 특허문서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 임의 발명의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로도 이해되어서는 안 되며, 특정한 발명들의 특정한 실시예들에 고유할 수 있는 특징의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되기까지 하였지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 기술되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 기술되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (17)

  1. 비디오 프로세싱 방법에 있어서,
    비디오의 현재 블록의 프로세싱을 위해, 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보(pairwise merge candidate)를 생성하는 단계; 및
    상기 페어와이즈 머지 후보를 기반으로, 상기 비디오의 비트스트림 표현과 상기 현재 블록 간의 변환을 수행하는 단계; 를 포함하되,
    상기 한 쌍의 움직임 후보들이 제1 움직임 후보에 대한 참조 픽처 리스트 L의 제1 움직임 벡터 MV0 = (MV0x, MV0y)와 제2 움직임 후보에 대한 참조 픽처 리스트 L의 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고,
    MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보를 나타내되,
    Figure pct00143
    이며,
    Figure pct00144
    이고, off s는 정수이고, >> 는 오른쪽 시프트 연산인, 비디오 프로세싱 방법.
  2. 비디오 프로세싱 방법에 있어서,
    비디오의 현재 블록의 프로세싱을 위해, 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보(pairwise merge candidate)를 생성하는 단계;
    상기 페어와이즈 머지 후보를 기반으로, 상기 비디오의 비트스트림 표현과 상기 현재 블록 간의 변환을 수행하는 단계; 를 포함하되,
    상기 한 쌍의 움직임 후보들이 제1 움직임 후보에 대한 참조 픽처 리스트 L의 제1 움직임 벡터 MV0 = (MV0x, MV0y)와 제2 움직임 후보에 대한 참조 픽처 리스트 L의 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고,
    MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보를 나타내되,
    Figure pct00145
    이며,
    Figure pct00146
    이고, off s는 정수이고, >> 는 오른쪽 시프트 연산인, 비디오 프로세싱 방법.
  3. 비디오 프로세싱 방법에 있어서,
    비디오의 현재 블록의 프로세싱을 위해, 한 쌍의 움직임 후보들을 기반으로 페어와이즈 머지 후보(pairwise merge candidate)를 생성하는 단계;
    상기 페어와이즈 머지 후보를 기반으로, 상기 비디오의 비트스트림 표현과 상기 현재 블록 간의 변환을 수행하는 단계; 를 포함하되,
    상기 한 쌍의 움직임 후보들이 제1 움직임 후보에 대한 참조 픽처 리스트 L의 제1 움직임 벡터 MV0 = (MV0x, MV0y)와 제2 움직임 후보에 대한 참조 픽처 리스트 L의 제2 움직임 벡터 MV1 = (MV1x, MV1y)를 포함하고,
    MV* = (MV*x, MV*y)는 상기 페어와이즈 머지 후보를 나타내되,
    Figure pct00147
    이며,
    Figure pct00148
    이고, off s는 정수이고, >> 는 오른쪽 시프트 연산인, 비디오 프로세싱 방법.
  4. 제1 항 내지 제3항 중 어느 한 항에 있어서,
    상기 머지 후보들의 쌍은 머지 후보 리스트에서 기인하는, 비디오 프로세싱 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 참조 픽처 리스트 L은 참조 픽처 리스트 0(L0) 혹은 참조 픽처 리스트 1(L1)를 포함하는, 비디오 프로세싱 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 머지 후보 리스트에 상기 페어와이즈 머지 후보를 추가하는 단계;를 더 포함하는, 비디오 프로세싱 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 변환을 수행한 후, 상기 머지 후보 리스트를 업데이트하는 단계;를 더 포함하는, 비디오 프로세싱 방법.
  8. 제1항 내지 제3항 중 어느 한 항에 있어서,
    Figure pct00149
    는 0인, 비디오 프로세싱 방법.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서, s가 0이라는 결정 하에
    Figure pct00150
    가 0인, 비디오 프로세싱 방법.
  10. 제1항 내지 제7항 중 어느 한 항에 있어서,
    Figure pct00151
    Figure pct00152
    인, 비디오 프로세싱 방법.
  11. 제1항 내지 제7항 중 어느 한 항에 있어서,
    s가 0이 아니라는 결정 하에,
    Figure pct00153
    Figure pct00154
    인, 비디오 프로세싱 방법.
  12. 제1항 내지 제7항 중 어느 한 항에 있어서,
    Figure pct00155
    Figure pct00156
    인, 비디오 프로세싱 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 현재 비디오 블록은 코딩 유닛인, 비디오 프로세싱 방법.
  14. 제1항 내지 제13항에 있어서, 상기 변환을 수행하는 단계는 상기 현재 비디오 블록으로부터 상기 비트스트림 표현을 생성하는 것을 포함하는, 비디오 프로세싱 방법.
  15. 제1항 내지 제13항에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 현재 비디오 블록을 생성하는 것을 포함하는, 비디오 프로세싱 방법.
  16. 제1항 내지 제15항 중 하나 이상의 방법을 구현하는 프로세서를 포함하는 비디오 디코딩 장치.
  17. 비-일시적 컴퓨터 읽기 가능한 매체에 저장된 컴퓨터 프로그램으로서, 제1항 내지 제15항 중 하나 이상의 방법을 도출하는 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.

KR1020217013353A 2018-11-10 2019-11-11 페어와이즈 평균 후보 계산에서 라운딩 KR20210089155A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2018/114931 2018-11-10
CN2018114931 2018-11-10
PCT/CN2019/117119 WO2020094151A1 (en) 2018-11-10 2019-11-11 Rounding in pairwise average candidate calculations

Publications (1)

Publication Number Publication Date
KR20210089155A true KR20210089155A (ko) 2021-07-15

Family

ID=70610974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217013353A KR20210089155A (ko) 2018-11-10 2019-11-11 페어와이즈 평균 후보 계산에서 라운딩

Country Status (6)

Country Link
US (3) US20210152846A1 (ko)
EP (1) EP3861723A4 (ko)
JP (1) JP7324841B2 (ko)
KR (1) KR20210089155A (ko)
CN (4) CN112997480B (ko)
WO (3) WO2020094149A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210016581A (ko) 2018-06-05 2021-02-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Ibc 및 atmvp 간의 상호 작용
CN110636298B (zh) 2018-06-21 2022-09-13 北京字节跳动网络技术有限公司 对于Merge仿射模式和非Merge仿射模式的统一约束
EP3788782A1 (en) 2018-06-21 2021-03-10 Beijing Bytedance Network Technology Co. Ltd. Sub-block mv inheritance between color components
WO2020065517A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Simplified history based motion vector prediction
JP7324841B2 (ja) 2018-11-10 2023-08-10 北京字節跳動網絡技術有限公司 ビデオ・データ処理方法、装置、記憶媒体及び記憶方法
AU2019381454A1 (en) * 2018-11-16 2021-06-24 FG Innovation Company Limited Systems and methods for deriving a motion vector prediction in video coding
EP4277275A3 (en) * 2018-12-21 2023-12-13 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding for deriving affine motion vectors for chroma components
AU2020237079B2 (en) 2019-03-12 2023-05-11 Tencent America LLC Method and apparatus for video encoding or decoding
EP3963889A4 (en) 2019-06-04 2023-01-25 Beijing Bytedance Network Technology Co., Ltd. CONDITIONAL IMPLEMENTATION OF A MOVEMENT CANDIDATE LIST CONSTRUCTION PROCESS
CN117395397A (zh) 2019-06-04 2024-01-12 北京字节跳动网络技术有限公司 使用临近块信息的运动候选列表构建
CN117354507A (zh) 2019-06-06 2024-01-05 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
WO2021008513A1 (en) 2019-07-14 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Transform block size restriction in video coding
MX2022000716A (es) 2019-07-26 2022-02-23 Beijing Bytedance Network Tech Co Ltd Determinación del modo de particionado de imagen con base en el tamaño de bloque.
JP6960969B2 (ja) * 2019-09-20 2021-11-05 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
CN117596389A (zh) 2019-09-28 2024-02-23 北京字节跳动网络技术有限公司 视频编解码中的几何分割模式
CN114556953A (zh) 2019-10-10 2022-05-27 北京字节跳动网络技术有限公司 视频编解码中非矩形分割的使用
CN112788345B (zh) * 2019-11-11 2023-10-24 腾讯美国有限责任公司 视频数据解码方法、装置、计算机设备和存储介质
WO2023278489A1 (en) * 2021-06-28 2023-01-05 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for geometric partition mode with motion vector refinement
WO2023273987A1 (en) * 2021-06-29 2023-01-05 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (224)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08186825A (ja) 1994-12-28 1996-07-16 Nippon Hoso Kyokai <Nhk> 動きベクトル検出方法
WO2000065829A1 (en) * 1999-04-26 2000-11-02 Koninklijke Philips Electronics N.V. Sub-pixel accurate motion vector estimation and motion-compensated interpolation
WO2004013810A1 (en) 2002-07-31 2004-02-12 Koninklijke Philips Electronics N.V. System and method for segmenting
CN101827265B (zh) 2002-11-25 2012-11-21 松下电器产业株式会社 图像编码装置及方法、图像解码装置及方法以及记录方法
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
CN100344163C (zh) 2004-06-16 2007-10-17 华为技术有限公司 视频编解码处理方法
CN1777283A (zh) 2004-12-31 2006-05-24 上海广电(集团)有限公司 一种基于微块的视频信号编/解码方法
US8954943B2 (en) 2006-01-26 2015-02-10 International Business Machines Corporation Analyze and reduce number of data reordering operations in SIMD code
JP4826315B2 (ja) 2006-03-31 2011-11-30 ソニー株式会社 画像処理装置および方法、並びにプログラム
US8184715B1 (en) 2007-08-09 2012-05-22 Elemental Technologies, Inc. Method for efficiently executing video encoding operations on stream processor architectures
US8670488B2 (en) 2007-12-21 2014-03-11 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive intra mode selection
CN101605255B (zh) 2008-06-12 2011-05-04 华为技术有限公司 一种视频编解码的方法及装置
US20110002386A1 (en) 2009-07-06 2011-01-06 Mediatek Singapore Pte. Ltd. Video encoder and method for performing intra-prediction and video data compression
JP5234368B2 (ja) 2009-09-30 2013-07-10 ソニー株式会社 画像処理装置および方法
JP2011147049A (ja) 2010-01-18 2011-07-28 Sony Corp 画像処理装置および方法、並びにプログラム
WO2011095260A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) Managing predicted motion vector candidates
KR101630688B1 (ko) 2010-02-17 2016-06-16 삼성전자주식회사 움직임 예측 장치 및 방법과 영상 처리 장치
CN101895751B (zh) 2010-07-06 2012-02-08 北京大学 帧内预测的方法及装置、基于帧内预测的编/解码方法及系统
JP5579937B2 (ja) * 2010-10-06 2014-08-27 インテル コーポレイション 低複雑度の動きベクトルを導出するシステム及び方法
CN102685479A (zh) * 2011-03-11 2012-09-19 华为技术有限公司 视频编解码处理方法和装置
US9374598B2 (en) * 2011-03-21 2016-06-21 Lg Electronics Inc. Method for selecting motion vector predictor and device using same
US20120287999A1 (en) 2011-05-11 2012-11-15 Microsoft Corporation Syntax element prediction in error correction
US9866859B2 (en) 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
GB201113527D0 (en) * 2011-08-04 2011-09-21 Imagination Tech Ltd External vectors in a motion estimation system
MX343471B (es) * 2011-08-29 2016-11-07 Ibex Pt Holdings Co Ltd Metodo para generar un bloque de prediccion en modo de prediccion de vector de movimiento avanzada (amvp).
KR20170005464A (ko) 2011-08-30 2017-01-13 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
WO2013047811A1 (ja) 2011-09-29 2013-04-04 シャープ株式会社 画像復号装置、画像復号方法および画像符号化装置
JP5768662B2 (ja) 2011-10-31 2015-08-26 富士通株式会社 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
JP2013098933A (ja) 2011-11-04 2013-05-20 Sony Corp 画像処理装置および方法
CN107835413A (zh) 2011-11-08 2018-03-23 株式会社Kt 对视频信号进行解码的方法
KR102433985B1 (ko) 2011-11-11 2022-08-19 엘지전자 주식회사 영상 정보 전송 방법 및 장치와 이를 이용한 복호화 방법 및 장치
JP5895469B2 (ja) * 2011-11-18 2016-03-30 富士通株式会社 動画像符号化装置、および動画像復号装置
KR20130058524A (ko) 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
EP2806635A4 (en) * 2012-01-18 2015-12-02 Korea Electronics Telecomm METHOD AND DEVICE FOR ENCODING AND DECODING AN IMAGE
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US9325991B2 (en) * 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
WO2013152736A1 (en) 2012-04-12 2013-10-17 Mediatek Singapore Pte. Ltd. Method and apparatus for block partition of chroma subsampling formats
EP3796651A1 (en) 2012-05-09 2021-03-24 Sun Patent Trust Method of performing motion vector prediction, encoding and decoding methods, and apparatuses thereof
US20130329007A1 (en) 2012-06-06 2013-12-12 Qualcomm Incorporated Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding
TWI574553B (zh) 2012-07-02 2017-03-11 三星電子股份有限公司 畫面間預測的運動向量預測方法與裝置
KR101955700B1 (ko) 2012-08-29 2019-03-07 브이아이디 스케일, 인크. 스케일러블 비디오 코딩을 위한 모션 벡터 예측 방법 및 장치
US9491461B2 (en) 2012-09-27 2016-11-08 Qualcomm Incorporated Scalable extensions to HEVC and temporal motion vector prediction
AU2012232992A1 (en) 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
EP2911397A1 (en) 2012-09-28 2015-08-26 Intel Corporation Inter-layer pixel sample prediction
WO2014053519A1 (en) 2012-10-01 2014-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding using inter-layer prediction of spatial intra prediction parameters
US9615089B2 (en) 2012-12-26 2017-04-04 Samsung Electronics Co., Ltd. Method of encoding and decoding multiview video sequence based on adaptive compensation of local illumination mismatch in inter-frame prediction
US9294777B2 (en) 2012-12-30 2016-03-22 Qualcomm Incorporated Progressive refinement with temporal scalability support in video coding
US9674542B2 (en) 2013-01-02 2017-06-06 Qualcomm Incorporated Motion vector prediction for video coding
US20140254678A1 (en) * 2013-03-11 2014-09-11 Aleksandar Beric Motion estimation using hierarchical phase plane correlation and block matching
US9521425B2 (en) 2013-03-19 2016-12-13 Qualcomm Incorporated Disparity vector derivation in 3D video coding for skip and direct modes
US9491460B2 (en) * 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
WO2014166116A1 (en) 2013-04-12 2014-10-16 Mediatek Inc. Direct simplified depth coding
WO2015007159A1 (en) 2013-07-15 2015-01-22 Mediatek Singapore Pte. Ltd. Method of disparity derived depth coding in 3d video coding
US9628795B2 (en) 2013-07-17 2017-04-18 Qualcomm Incorporated Block identification using disparity vector in video coding
WO2015006967A1 (en) 2013-07-19 2015-01-22 Mediatek Singapore Pte. Ltd. Simplified view synthesis prediction for 3d video coding
CN104769947B (zh) 2013-07-26 2019-02-26 北京大学深圳研究生院 一种基于p帧的多假设运动补偿编码方法
WO2015010317A1 (zh) 2013-07-26 2015-01-29 北京大学深圳研究生院 一种基于p帧的多假设运动补偿方法
AU2013228045A1 (en) 2013-09-13 2015-04-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US9667996B2 (en) 2013-09-26 2017-05-30 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
US9762927B2 (en) 2013-09-26 2017-09-12 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
CN103561263B (zh) 2013-11-06 2016-08-24 北京牡丹电子集团有限责任公司数字电视技术中心 基于运动矢量约束和加权运动矢量的运动补偿预测方法
CN105723713A (zh) * 2013-12-19 2016-06-29 夏普株式会社 合并候选导出装置、图像解码装置以及图像编码装置
TWI536811B (zh) 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
RU2669005C2 (ru) 2014-01-03 2018-10-05 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Предсказание вектора блока в кодировании/декодировании видео и изображений
WO2015109598A1 (en) 2014-01-27 2015-07-30 Mediatek Singapore Pte. Ltd. Methods for motion parameter hole filling
CN108989815B9 (zh) * 2014-03-19 2021-06-04 株式会社Kt 针对多视图视频信号生成合并候选列表的方法及解码装置
CN110099281B (zh) 2014-05-06 2021-06-25 寰发股份有限公司 用于块内复制模式编码的块向量预测方法
US10785486B2 (en) 2014-06-19 2020-09-22 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
US20150373362A1 (en) 2014-06-19 2015-12-24 Qualcomm Incorporated Deblocking filter design for intra block copy
US10327001B2 (en) 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy
US20150373343A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Representation format update in multi-layer codecs
CN105282558B (zh) 2014-07-18 2018-06-15 清华大学 帧内像素预测方法、编码方法、解码方法及其装置
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
US10412387B2 (en) 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
EP3180917B1 (en) 2014-09-01 2022-04-20 HFI Innovation Inc. Method of intra picture block copy for screen content and video coding
CA2960617A1 (en) 2014-09-11 2016-03-17 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
EP3198872A1 (en) 2014-09-26 2017-08-02 VID SCALE, Inc. Intra block copy coding with temporal block vector prediction
US9918105B2 (en) 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
KR20240038134A (ko) 2014-10-31 2024-03-22 삼성전자주식회사 움직임 벡터 부복호화 방법 및 장치
US10182240B2 (en) 2014-11-18 2019-01-15 Mediatek Inc. Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US11477477B2 (en) 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN107431817B (zh) 2015-01-29 2020-03-24 Vid拓展公司 用于调色板译码的方法及装置
JP2018050091A (ja) 2015-02-02 2018-03-29 シャープ株式会社 画像復号装置、画像符号化装置および予測ベクトル導出装置
WO2016138513A1 (en) 2015-02-27 2016-09-01 Arris Enterprises, Inc. Modification of unification of intra block copy and inter signaling related syntax and semantics
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
WO2016165069A1 (en) 2015-04-14 2016-10-20 Mediatek Singapore Pte. Ltd. Advanced temporal motion vector prediction in video coding
WO2016173519A1 (en) 2015-04-29 2016-11-03 Hfi Innovation Inc. Method and apparatus for intra block copy reference list construction
US20160337662A1 (en) 2015-05-11 2016-11-17 Qualcomm Incorporated Storage and signaling resolutions of motion vectors
CN106303543B (zh) 2015-05-15 2018-10-30 华为技术有限公司 视频图像编码和解码的方法、编码设备和解码设备
EP3295660A4 (en) 2015-06-03 2019-05-29 MediaTek Inc. METHOD FOR PALLET CODING OF IMAGE AND VIDEO DATA
GB2539213A (en) 2015-06-08 2016-12-14 Canon Kk Schemes for handling an AMVP flag when implementing intra block copy coding mode
CN107646195B (zh) 2015-06-08 2022-06-24 Vid拓展公司 用于屏幕内容译码的帧内块复制模式
US10148977B2 (en) 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
CN107852490B (zh) 2015-07-27 2021-01-26 联发科技股份有限公司 一种视频编解码方法及系统
KR20180028513A (ko) 2015-08-04 2018-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
KR102531222B1 (ko) 2015-08-25 2023-05-10 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 루미넌스 존들에 기초한 역 톤 맵핑
US20180249172A1 (en) 2015-09-02 2018-08-30 Mediatek Inc. Method and apparatus of motion compensation for video coding based on bi prediction optical flow techniques
WO2017041271A1 (en) 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
US10375413B2 (en) 2015-09-28 2019-08-06 Qualcomm Incorporated Bi-directional optical flow for video coding
CN108965871B (zh) 2015-09-29 2023-11-10 华为技术有限公司 图像预测的方法及装置
EP3357245A4 (en) * 2015-11-05 2019-03-13 MediaTek Inc. METHOD AND DEVICE OF INTERPRESSATION USING AN AVERAGE MOTION VECTOR FOR VIDEO CODING
CN105306944B (zh) 2015-11-30 2018-07-06 哈尔滨工业大学 混合视频编码标准中色度分量预测方法
WO2017118411A1 (en) 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
CN105678808A (zh) 2016-01-08 2016-06-15 浙江宇视科技有限公司 运动目标跟踪方法及装置
US9955186B2 (en) 2016-01-11 2018-04-24 Qualcomm Incorporated Block size decision for video coding
US10798403B2 (en) 2016-01-29 2020-10-06 Sharp Kabushiki Kaisha Prediction image generation device, video decoding device, and video coding device
CN113612993B (zh) 2016-02-05 2023-06-09 寰发股份有限公司 视频数据的运动补偿方法及装置
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
US10390038B2 (en) 2016-02-17 2019-08-20 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for encoding and decoding video pictures using a denoised reference picture
EP3417617A4 (en) 2016-02-17 2019-02-27 Telefonaktiebolaget LM Ericsson (publ) METHOD AND DEVICES FOR CODING AND DECODING VIDEO IMAGES
WO2017143467A1 (en) 2016-02-22 2017-08-31 Mediatek Singapore Pte. Ltd. Localized luma mode prediction inheritance for chroma coding
WO2017156669A1 (en) * 2016-03-14 2017-09-21 Mediatek Singapore Pte. Ltd. Methods for motion vector storage in video coding
CN114466193A (zh) * 2016-03-16 2022-05-10 联发科技股份有限公司 视频编码的样式基础的运动向量推导之方法及装置
US10567759B2 (en) 2016-03-21 2020-02-18 Qualcomm Incorporated Using luma information for chroma prediction with separate luma-chroma framework in video coding
US11223852B2 (en) 2016-03-21 2022-01-11 Qualcomm Incorporated Coding video data using a two-level multi-type-tree framework
US10939105B2 (en) 2016-03-25 2021-03-02 Panasonic Intellectual Property Management Co., Ltd. Methods and apparatuses for encoding and decoding video using signal dependent adaptive quantization
WO2017171107A1 (ko) 2016-03-28 2017-10-05 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN109314785B (zh) 2016-04-08 2023-06-30 韩国电子通信研究院 用于导出运动预测信息的方法和装置
US10462459B2 (en) 2016-04-14 2019-10-29 Mediatek Inc. Non-local adaptive loop filter
WO2017188509A1 (ko) 2016-04-28 2017-11-02 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10939096B2 (en) 2016-05-05 2021-03-02 Interdigital Madison Patent Holdings, Sas Control-point based intra direction representation for intra coding
WO2017194756A1 (en) * 2016-05-12 2017-11-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for coding and decoding motion vectors
EP4060992A1 (en) 2016-05-13 2022-09-21 Vid Scale, Inc. Systems and methods for generalized multi-hypothesis prediction for video coding
WO2017195554A1 (ja) 2016-05-13 2017-11-16 シャープ株式会社 予測画像生成装置、動画像復号装置、および動画像符号化装置。
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
MX2018014190A (es) 2016-05-17 2019-08-05 Arris Entpr Llc Correlacion de plantillas para intra-prediccion de jvet.
US20170339405A1 (en) 2016-05-20 2017-11-23 Arris Enterprises Llc System and method for intra coding
CA3025490A1 (en) 2016-05-28 2017-12-07 Mediatek Inc. Method and apparatus of current picture referencing for video coding using affine motion compensation
US11503314B2 (en) 2016-07-08 2022-11-15 Interdigital Madison Patent Holdings, Sas Systems and methods for region-of-interest tone remapping
KR102191846B1 (ko) 2016-08-15 2020-12-17 노키아 테크놀로지스 오와이 비디오 인코딩 및 디코딩
US10368107B2 (en) 2016-08-15 2019-07-30 Qualcomm Incorporated Intra video coding using a decoupled tree structure
US10326986B2 (en) 2016-08-15 2019-06-18 Qualcomm Incorporated Intra video coding using a decoupled tree structure
CN109691107A (zh) 2016-09-12 2019-04-26 索尼公司 图像处理装置和图像处理方法
WO2018049594A1 (en) 2016-09-14 2018-03-22 Mediatek Inc. Methods of encoder decision for quad-tree plus binary tree structure
CA3037685C (en) 2016-09-20 2023-03-28 Bae Keun Lee Method and apparatus for processing video signal
US10631002B2 (en) 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
EP3301919A1 (en) * 2016-10-03 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
WO2018066241A1 (en) 2016-10-03 2018-04-12 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
KR20190053238A (ko) * 2016-10-06 2019-05-17 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
EP3523980A1 (en) 2016-10-10 2019-08-14 Sharp Kabushiki Kaisha Systems and methods for performing motion compensation for coding of video data
US10750190B2 (en) 2016-10-11 2020-08-18 Lg Electronics Inc. Video decoding method and device in video coding system
US10880546B2 (en) 2016-10-11 2020-12-29 Lg Electronics Inc. Method and apparatus for deriving intra prediction mode for chroma component
US20180109810A1 (en) 2016-10-17 2018-04-19 Mediatek Inc. Method and Apparatus for Reference Picture Generation and Management in 3D Video Compression
CN116886930A (zh) 2016-11-28 2023-10-13 韩国电子通信研究院 对图像编码/解码的方法和设备及存储比特流的记录介质
EP3547687A4 (en) * 2016-11-28 2020-07-15 Electronics and Telecommunications Research Institute IMAGE ENCODING / DECODING METHOD AND DEVICE AND RECORDING MEDIUM WITH STORED BIT CURRENT
US20200021837A1 (en) 2016-12-16 2020-01-16 Sharp Kabushiki Kaisha Video decoding apparatus and video coding apparatus
US10750203B2 (en) 2016-12-22 2020-08-18 Mediatek Inc. Method and apparatus of adaptive bi-prediction for video coding
EP3560202A4 (en) 2016-12-27 2020-07-29 MediaTek Inc. METHOD AND DEVICE FOR BILATERAL TEMPLATE MV REFINING FOR VIDEO CODING
US10681370B2 (en) 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
WO2018128380A1 (ko) 2017-01-03 2018-07-12 엘지전자(주) 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2018128379A1 (ko) 2017-01-03 2018-07-12 엘지전자(주) 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
US10931969B2 (en) 2017-01-04 2021-02-23 Qualcomm Incorporated Motion vector reconstructions for bi-directional optical flow (BIO)
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10701366B2 (en) 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10523964B2 (en) 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
US10701390B2 (en) 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
KR20180107761A (ko) 2017-03-22 2018-10-02 한국전자통신연구원 참조 블록을 사용하는 예측 방법 및 장치
US10701391B2 (en) * 2017-03-23 2020-06-30 Qualcomm Incorporated Motion vector difference (MVD) prediction
US10440396B2 (en) 2017-03-28 2019-10-08 Qualcomm Incorporated Filter information sharing among color components
US10542264B2 (en) 2017-04-04 2020-01-21 Arris Enterprises Llc Memory reduction implementation for weighted angular prediction
US10873760B2 (en) * 2017-04-07 2020-12-22 Futurewei Technologies, Inc. Motion vector (MV) constraints and transformation constraints in video coding
US20180310017A1 (en) * 2017-04-21 2018-10-25 Mediatek Inc. Sub-prediction unit temporal motion vector prediction (sub-pu tmvp) for video coding
US10805630B2 (en) 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
US20180332298A1 (en) 2017-05-10 2018-11-15 Futurewei Technologies, Inc. Bidirectional Prediction In Video Compression
CN116866587A (zh) 2017-05-17 2023-10-10 株式会社Kt 对视频解码和编码的方法以及存储压缩视频数据的装置
US10904565B2 (en) 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)
US11245921B2 (en) 2017-06-26 2022-02-08 Interdigital Vc Holdings, Inc. Multiple predictor candidates for motion compensation
WO2019004283A1 (ja) * 2017-06-28 2019-01-03 シャープ株式会社 動画像符号化装置及び動画像復号装置
US10477237B2 (en) 2017-06-28 2019-11-12 Futurewei Technologies, Inc. Decoder side motion vector refinement in video coding
US11172203B2 (en) 2017-08-08 2021-11-09 Mediatek Inc. Intra merge prediction
US10880573B2 (en) 2017-08-15 2020-12-29 Google Llc Dynamic motion vector referencing for video coding
US20200221077A1 (en) * 2017-09-05 2020-07-09 Lg Electronics Inc. Inter prediction mode-based image processing method and apparatus therefor
JP2021005741A (ja) 2017-09-14 2021-01-14 シャープ株式会社 画像符号化装置及び画像復号装置
US10785494B2 (en) 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
CN109963155B (zh) 2017-12-23 2023-06-06 华为技术有限公司 图像块的运动信息的预测方法、装置及编解码器
JP7125486B2 (ja) 2018-01-16 2022-08-24 ヴィド スケール インコーポレイテッド 局所照明補償に基づいた動き補償双予測
US10757417B2 (en) 2018-01-20 2020-08-25 Qualcomm Incorporated Affine motion compensation in video coding
US10687071B2 (en) 2018-02-05 2020-06-16 Tencent America LLC Method and apparatus for video coding
US11012715B2 (en) 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding
EP3741121A1 (en) 2018-02-14 2020-11-25 Huawei Technologies Co., Ltd. Adaptive interpolation filter
US20190306502A1 (en) 2018-04-02 2019-10-03 Qualcomm Incorporated System and method for improved adaptive loop filtering
US10708592B2 (en) 2018-04-02 2020-07-07 Qualcomm Incorporated Deblocking filter for video coding and processing
US10779002B2 (en) 2018-04-17 2020-09-15 Qualcomm Incorporated Limitation of the MVP derivation based on decoder-side motion vector derivation
US20190320181A1 (en) 2018-04-17 2019-10-17 Qualcomm Incorporated Generation of motion vector predictors from multiple neighboring blocks in video coding
US20190364295A1 (en) 2018-05-25 2019-11-28 Tencent America LLC Method and apparatus for video coding
US10986340B2 (en) 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
US11109025B2 (en) 2018-06-04 2021-08-31 Tencent America LLC Method and apparatus for sub-block based temporal motion vector prediction
KR20210016581A (ko) 2018-06-05 2021-02-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Ibc 및 atmvp 간의 상호 작용
GB2589222B (en) 2018-06-07 2023-01-25 Beijing Bytedance Network Tech Co Ltd Sub-block DMVR
US11303923B2 (en) 2018-06-15 2022-04-12 Intel Corporation Affine motion compensation for current picture referencing
TW202025776A (zh) 2018-06-19 2020-07-01 北京字節跳動網絡技術有限公司 不具運動向量預測截斷的選擇運動向量差精確度
CN110636298B (zh) 2018-06-21 2022-09-13 北京字节跳动网络技术有限公司 对于Merge仿射模式和非Merge仿射模式的统一约束
EP3788782A1 (en) 2018-06-21 2021-03-10 Beijing Bytedance Network Technology Co. Ltd. Sub-block mv inheritance between color components
TWI750486B (zh) 2018-06-29 2021-12-21 大陸商北京字節跳動網絡技術有限公司 運動資訊共用的限制
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制
US11606575B2 (en) 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding
US10491902B1 (en) 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
US10440378B1 (en) 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
US10362330B1 (en) 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
TWI752341B (zh) 2018-08-04 2022-01-11 大陸商北京字節跳動網絡技術有限公司 不同解碼器側運動矢量推導模式之間的交互
US11336914B2 (en) 2018-08-16 2022-05-17 Qualcomm Incorporated History-based candidate list with classification
TWI827681B (zh) 2018-09-19 2024-01-01 大陸商北京字節跳動網絡技術有限公司 具有自適應運動矢量分辨率的仿射模式的語法重用
US11212550B2 (en) 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
WO2020060376A1 (ko) 2018-09-22 2020-03-26 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
JP7307154B2 (ja) 2018-09-23 2023-07-11 北京字節跳動網絡技術有限公司 適応動きベクトル解像度による動きベクトルの変更
WO2020065517A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Simplified history based motion vector prediction
US11051034B2 (en) 2018-10-08 2021-06-29 Qualcomm Incorporated History-based motion vector predictor
US11284066B2 (en) 2018-10-10 2022-03-22 Tencent America LLC Method and apparatus for intra block copy in intra-inter blending mode and triangle prediction unit mode
CN112956197A (zh) 2018-10-22 2021-06-11 北京字节跳动网络技术有限公司 基于编解码信息的解码器侧运动矢量推导的限制
WO2020084464A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Decoder side motion vector derivation based on reference pictures
US11032541B2 (en) 2018-10-22 2021-06-08 Tencent America LLC Method and apparatus for video coding
CN116471403A (zh) 2018-10-23 2023-07-21 北京字节跳动网络技术有限公司 基于子块的运动信息列表的简化熵编解码
CN111147855A (zh) 2018-11-02 2020-05-12 北京字节跳动网络技术有限公司 几何分割预测模式与其他工具之间的协调
EP3861731A4 (en) 2018-11-05 2021-11-24 Beijing Bytedance Network Technology Co. Ltd. INTERPOLATION TO INTERPRDICTION WITH REFINEMENT
JP7324841B2 (ja) 2018-11-10 2023-08-10 北京字節跳動網絡技術有限公司 ビデオ・データ処理方法、装置、記憶媒体及び記憶方法
CN113170112A (zh) 2018-11-22 2021-07-23 北京字节跳动网络技术有限公司 用于具有几何分割的帧间预测的构建方法
US11032574B2 (en) 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
US11122260B2 (en) 2019-02-22 2021-09-14 Mediatek Inc. Method and apparatus of Merge list generation for Intra Block Copy mode
WO2020185429A1 (en) 2019-03-11 2020-09-17 Alibaba Group Holding Limited Method, device, and system for determining prediction weight for merge mode
AU2020237079B2 (en) 2019-03-12 2023-05-11 Tencent America LLC Method and apparatus for video encoding or decoding

Also Published As

Publication number Publication date
JP2022506767A (ja) 2022-01-17
CN112997495B (zh) 2024-02-20
US20220070489A1 (en) 2022-03-03
EP3861723A1 (en) 2021-08-11
EP3861723A4 (en) 2022-04-20
CN112997495A (zh) 2021-06-18
JP7324841B2 (ja) 2023-08-10
US20210152846A1 (en) 2021-05-20
US20240040144A1 (en) 2024-02-01
CN112970262A (zh) 2021-06-15
CN116886926A (zh) 2023-10-13
WO2020094149A1 (en) 2020-05-14
US11792421B2 (en) 2023-10-17
WO2020094151A1 (en) 2020-05-14
CN112997480B (zh) 2023-08-22
CN112997480A (zh) 2021-06-18
CN112970262B (zh) 2024-02-20
WO2020094150A1 (en) 2020-05-14

Similar Documents

Publication Publication Date Title
CN112913247B (zh) 使用局部照明补偿的视频处理
JP7324841B2 (ja) ビデオ・データ処理方法、装置、記憶媒体及び記憶方法
US11470341B2 (en) Interaction between different DMVD models
KR102613889B1 (ko) 적응적 움직임 벡터 해상도를 갖는 움직임 벡터 수정
CN112868239B (zh) 并置的局部照明补偿和帧内块复制编解码
US20210227211A1 (en) Temporal gradient calculations in bio
KR20210094530A (ko) 화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용
KR20210059708A (ko) 적응적 움직임 벡터 해상도를 가지는 어파인 모드에 대한 구문 재사용
US20210344909A1 (en) Motion candidate lists that use local illumination compensation
CN113302918A (zh) 视频编解码中的加权预测
JP2023145563A (ja) 異なる動きベクトル微調整における勾配計算
CN110740321B (zh) 基于更新的运动矢量的运动预测
KR20210121021A (ko) 어파인 모드 적응적 움직임 벡터 해상도 코딩 문맥
WO2020070729A1 (en) Size restriction based on motion information
WO2020049512A1 (en) Two-step inter prediction