KR20200128036A - 어드밴스드 시간 모션 벡터 예측에 대한 개선들 - Google Patents

어드밴스드 시간 모션 벡터 예측에 대한 개선들 Download PDF

Info

Publication number
KR20200128036A
KR20200128036A KR1020207026080A KR20207026080A KR20200128036A KR 20200128036 A KR20200128036 A KR 20200128036A KR 1020207026080 A KR1020207026080 A KR 1020207026080A KR 20207026080 A KR20207026080 A KR 20207026080A KR 20200128036 A KR20200128036 A KR 20200128036A
Authority
KR
South Korea
Prior art keywords
picture
block
current
motion vector
video data
Prior art date
Application number
KR1020207026080A
Other languages
English (en)
Other versions
KR102579526B1 (ko
Inventor
유 한
카이 장
리 장
웨이-정 치엔
마르타 카르체비츠
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20200128036A publication Critical patent/KR20200128036A/ko
Application granted granted Critical
Publication of KR102579526B1 publication Critical patent/KR102579526B1/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

디코딩하기 위한 방법들 및 디바이스들은, 어느 픽처가 병치된 픽처인지를 결정하고, 그리고 병치된 픽처에서의 연관된 블록과 현재 코딩 픽처에서의 현재 블록 사이의 초기 모션 벡터를 찾기 위해 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록에 대응하는 병치된 픽처에서의 비디오 데이터의 연관된 블록의 위치를 결정하도록 구성된 프로세서를 포함하고, 여기서, 비디오 데이터의 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함한다. 프로세서는, 병치된 픽처에서의 연관된 블록과 연관되는 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 초기 모션 벡터가 병치된 픽처를 포인팅할 경우, 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하도록 구성된다.

Description

어드밴스드 시간 모션 벡터 예측에 대한 개선들
본 개시는 비디오 코딩을 위한 디바이스들, 시스템들, 및 방법들에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인용 디지털 보조기들 (PDA들), 랩탑 또는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트 폰들", 비디오 텔레컨퍼런싱 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (AVC), ITU-T H.265, 고효율 비디오 코딩 (HEVC) 표준에 의해 정의된 표준들, 및 그러한 표준들의 확장들에서 설명된 기법들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 그러한 비디오 압축 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스들에 내재한 리던던시를 감소 또는 제거하기 위해 공간 (인트라-픽처) 예측 및/또는 시간 (인터-픽처) 예측을 수행한다. 블록 기반 비디오 코딩에 대해, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 일부) 는 비디오 블록들로 파티셔닝될 수도 있으며, 이 비디오 블록들은 또한 트리 블록들, 코딩 유닛들 (CU들) 및/또는 코딩 노드들로서 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일 픽처의 이웃 블록들에서의 레퍼런스 샘플들에 대한 공간 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일 픽처의 이웃 블록들에서의 레퍼런스 샘플들에 대한 공간 예측, 또는 다른 레퍼런스 픽처들에서의 레퍼런스 샘플들에 대한 시간 예측을 이용할 수도 있다. 공간 또는 시간 예측은 코딩될 블록, 즉, 현재 블록에 대한 예측 블록을 발생시킨다. 잔차 데이터는 코딩될 오리지널 블록과 예측 블록 간의 픽셀 차이들을 나타낸다. 인터-코딩된 블록은 예측 블록을 형성하는 레퍼런스 샘플들의 블록을 포인팅하는 모션 벡터, 및 코딩된 블록과 예측 블록 간의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가의 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 잔차 변환 계수들을 발생시킬 수도 있으며, 그 다음, 이 잔차 변환 계수들은 양자화될 수도 있다.
일반적으로, 본 개시는 어드밴스드 모션 벡터 예측에 대한 개선들에 관련된 기법들을 설명한다. 본 개시의 기법들은 장래의 비디오 코딩 표준들에 적용될 수도 있다.
일 예에 있어서, 그 기법들은 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스에 관한 것이다. 그 디바이스는 비디오 데이터를 저장하도록 구성된 메모리를 포함할 수도 있다. 그 디바이스는 또한 프로세서를 포함할 수도 있고, 프로세서는 어느 픽처가 병치된 픽처인지를 결정하고, 그리고 병치된 픽처에서의 연관된 블록과 현재 코딩 픽처에서의 현재 블록 사이의 초기 모션 벡터를 찾기 위해 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록에 대응하는 병치된 픽처에서의 비디오 데이터의 연관된 블록의 위치를 결정하도록 구성되며, 여기서, 비디오 데이터의 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함한다. 프로세서는, 병치된 픽처에서의 연관된 블록과 연관되는 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 초기 mv 가 병치된 픽처를 포인팅할 경우, 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하도록 구성될 수도 있다. 부가적으로, 프로세서는 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 현재 코딩 픽처에서의 비디오 데이터의 현재 블록의 모션 정보를 결정하고, 예측 블록을 획득하기 위해 결정된 모션 정보를 사용하고, 그리고 예측 블록과 잔차 블록의 조합에 기초하여 복원된 블록을 생성하도록 구성될 수도 있다.
다른 예에 있어서, 그 기법들은 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법에 관한 것이다. 그 방법은 어느 픽처가 병치된 픽처인지를 결정하는 단계, 및 병치된 픽처에서의 연관된 블록과 현재 코딩 픽처에서의 현재 블록 사이의 초기 모션 벡터를 찾기 위해 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록에 대응하는 병치된 픽처에서의 비디오 데이터의 연관된 블록의 위치를 결정하는 단계를 포함할 수도 있고, 여기서, 비디오 데이터의 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함한다. 그 방법은 병치된 픽처에서의 연관된 블록과 연관되는 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 초기 mv 가 병치된 픽처를 포인팅할 경우, 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하는 단계를 포함할 수도 있다. 그 방법은 또한, 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 현재 코딩 픽처에서의 비디오 데이터의 현재 블록의 모션 정보를 결정하는 단계, 예측 블록을 획득하기 위해 결정된 모션 정보를 사용하는 단계, 및 예측 블록과 잔차 블록의 조합에 기초하여 복원된 블록을 생성하는 단계를 포함할 수도 있다.
본 개시의 하나 이상의 양태들의 상세들은 하기의 설명 및 첨부 도면들에 기재된다. 본 개시에서 설명된 기법들의 다른 특징들, 목적들, 및 이점들은 그 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시에서 설명된 하나 이상의 기법들을 활용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 예시한 블록 다이어그램이다.
도 2a 및 도 2b 는, 각각, 예시적인 리스트 0 및 리스트 1 의 개념 다이어그램들이다.
도 2c 는 병합 모드에 대한 공간 이웃 MV 후보들의 제 1 단계를 예시한다.
도 3a 내지 도 3c 는 현재 JEM 레퍼런스 소프트웨어에서의 플로우차트들을 예시한다.
도 4a 및 도 4b 는 현재 JEM 에 대한 ATMVP 의 제안된 개선들을 예시한다.
도 5a 내지 도 5d 는 병치된 레퍼런스 픽처, 레퍼런스 픽처 및 현재 코딩 픽처의 상대적 위치들을 기술하기 위한 상이한 예들을 예시한 개념 다이어그램들이다.
도 6 은 본 개시에서의 하나 이상의 기법들을 설명하는 플로우차트이다.
도 7 은 본 개시에서 설명된 하나 이상의 기법들을 구현할 수도 있는 예시적인 비디오 인코더를 예시한 블록 다이어그램이다.
도 8 은 본 개시에서 설명된 하나 이상의 기법들을 구현할 수도 있는 예시적인 비디오 디코더를 예시한 블록 다이어그램이다.
비디오의 다중의 프레임들 또는 픽처들에 걸친 모션 보상이 종종 비디오 인코딩에서 사용된다. 이전 프레임 또는 픽처와 연관된 모션 벡터 및 레퍼런스 인덱스가 인코딩될 수도 있다. 모션 벡터 예측자 (MVP) 및 모션 벡터 차이 (MVD) 가 모션 벡터를 도출하는데 사용될 수도 있다.
MVP 는, 인코딩 및/또는 디코딩되는 현재 블록의 공간 및/또는 시간 이웃으로부터 도출되는 2개의 후보들로부터 선택될 수도 있다. ATMVP 모드는 MVP 를 선택하기 위한 알고리즘이다. 기존 ATMVP 모드에 있어서, 모션 벡터 및 레퍼런스 인덱스 (즉, 모션 정보) 가, 모션 벡터 차이를 인코딩해야 하지 않고도 상이한 후보들을 선택하는 것으로부터 도출될 수도 있다. 병합 모드는 모션 벡터 후보들의 표현을 도출하고 그리고 모션 벡터들의 코딩을 예측하는 프로세스이다. 픽처들이 2차원이므로, 픽처들 사이의 모션 벡터의 사용이 또한 2차원이다. 따라서, 모션 벡터는 수평 컴포넌트 및 수직 컴포넌트를 갖는다.
기존 시스템들에 있어서, 어드밴스드 시간 모션 벡터 예측 (ATMVP) 알고리즘들을 사용하여, 인터 예측은, 이전에 복원된 픽처들을 모션 보상을 위한 레퍼런스 픽처로서 사용할 수도 있다. 레퍼런스 픽처에서의 병치된 블록 또는 영역으로부터의 모션 정보는 저장되고, 그 다음, 인터 예측에서의 사용을 위해 이용가능하게 된다. 일부 사례들에 있어서, 레퍼런스 픽처에서의 시간 모션 벡터의 정보는 16x16 블록으로 감소되어, 레퍼런스 버퍼 (예컨대, 도 7 에서의 디코딩된 픽처 버퍼 "DPB" (1216) 및 도 8 에서의 디코딩된 픽처 버퍼 "DPB" (1312) 참조) 에서의 저장을 제한한다. 하지만, 각각의 레퍼런스 픽처의 모션 정보는 레퍼런스 버퍼에 저장되고, 이는 전력 소비 및 메모리의 사이즈를 증가시킨다.
비디오 코더 (즉, 비디오 인코더 또는 비디오 디코더) 는, 이전에 수행된 바와 같이 시간 모션 벡터의 정보가 레퍼런스 버퍼들로부터 저장될 것을 요구하지 않는 대안적인 솔루션들을 통해 ATMVP 알고리즘들에 대한 개선들을, 본 개시에서 설명된 바와 같이 구현할 수도 있다.
본 명세서에서 설명된 기법들에 따르면, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스가 제안되고, 그 디바이스는 비디오 데이터를 저장하도록 구성된 메모리를 포함할 수도 있다. 그 디바이스는 또한, 어느 픽처가 병치된 픽처인지를 결정하도록 구성된 프로세서를 포함할 수도 있다. 예를 들어, HEVC 표준에서와 같이 시그널링된 표현을 갖는 병치된 픽처가 수신될 수도 있다. 병치된 픽처는 레퍼런스 인덱스를 사용하여 결정될 수도 있다. 예를 들어, 레퍼런스 인덱스 = 0 은 ITU-T H.264 표준에서처럼 디폴트로서 사용될 수도 있다. 본 개시에 있어서, 병치된 픽처와 연관된 레퍼런스 인덱스는 반드시 제로이어야 하는 것은 아니며 비-제로 값일 수도 있다. 부가적으로, 프로세서는 추가로, 병치된 픽처에서의 연관된 블록과 현재 코딩 픽처에서의 현재 블록 사이의 초기 모션 벡터를 찾기 위해 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록에 대응하는 병치된 픽처에서의 비디오 데이터의 연관된 블록의 위치를 결정하도록 구성될 수도 있고, 여기서, 비디오 데이터의 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함한다 (예컨대, 도 5d 에서의 병치된 픽처에서의 모션 벡터들 참조). 따라서, 병치된 픽처에서의 연관된 블록의 위치가 결정된다.
본 개시 내에서, 현재 기법들에서 모션 정보를 포함하는 레퍼런스 픽처들에 의존할 필요없이, 병치된 픽처가 레퍼런스 픽처로서 사용될 수도 있도록 병치된 픽처를 포인팅하는 초기 모션 벡터를 포함하는 현재 코딩 픽처에 기초하여 적어도 하나의 제 1 도출된 모션 벡터를 포함하는 병치된 픽처는 "병치된 레퍼런스 픽처" 로서 지칭될 수도 있다.
더욱이, 프로세서는, 병치된 픽처에서의 연관된 블록과 연관되는 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하도록 구성될 수도 있다. 적어도 하나의 제 2 도출된 모션 벡터는 현재 코딩 픽처에서의 비디오 데이터의 현재 블록의 모션 정보를 결정하는데 사용될 수도 있다. 적어도 하나의 제 2 도출된 모션 벡터는 예측 블록을 결정하는 것을 도울 수도 있다. 잔차 블록에 부가하여 예측 블록은 현재 블록을 복원하는데 사용될 수도 있다.
그와 같이, (현재 기법들에서의 제안 이전에 수행된 바와 같이) 각각의 레퍼런스 픽처의 각각의 모션 벡터 정보를 저장함으로써 모션 벡터들을 도출하기 위한 전체 프로세스를 수행하는 것보다는, 현재 코딩 픽처로부터의 하나 이상의 모션 벡터들을 활용함으로써 및 병치된 레퍼런스 픽처의 적어도 하나의 제 1 도출된 모션 벡터는 적어도 하나의 제 2 모션 벡터들을 도출하는데 사용될 수도 있다. 결과적으로, 비디오 인코더 및 비디오 디코더는 비디오 데이터를 더 효율적으로 프로세싱할 수도 있고, 비디오 인코더 및/또는 비디오 디코더는 적은 전기를 소비할 수도 있는 압축 및 압축해제의 더 효율적인 수단을 제공할 수도 있고, 디코딩된 비디오 데이터를 디스플레이하는 디바이스에 더 빠른 코딩 결과를 제공할 수도 있다.
도 1 은 본 개시의 기법들을 활용할 수도 있는 예시적인 비디오 인코딩 및 디코딩 시스템 (10) 을 예시한 블록 다이어그램이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은, 목적지 디바이스 (14) 에 의해 더 나중 시간에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 비디오 데이터를, 컴퓨터 판독가능 매체 (16) 를 통해 목적지 디바이스 (14) 에 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크탑 컴퓨터들, 노트북 (즉, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋탑 박스들, 소위 "스마트" 폰들과 같은 전화기 핸드셋들, 태블릿 컴퓨터들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한 광범위한 디바이스들 중 임의의 디바이스를 포함할 수도 있다. 일부 경우들에 있어서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신을 위해 장비될 수도 있다. 따라서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스들일 수도 있다. 소스 디바이스 (12) 는 예시적인 비디오 인코딩 디바이스 (즉, 비디오 데이터를 인코딩하기 위한 디바이스) 이다. 목적지 디바이스 (14) 는 예시적인 비디오 디코딩 디바이스 (즉, 비디오 데이터를 디코딩하기 위한 디바이스) 이다.
도 1 의 예에 있어서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 데이터를 저장하도록 구성된 저장 매체들 (19), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (26), 인코딩된 비디오 데이터를 저장하도록 구성된 저장 매체들 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 다른 예들에 있어서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 다른 컴포넌트들 또는 배열들을 포함한다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하는 것보다는 외부 디스플레이 디바이스와 인터페이싱할 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 일 예일 뿐이다. 비디오 데이터를 프로세싱하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 비록 일반적으로 본 개시의 기법들이 비디오 인코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, 통상적으로 "CODEC" 로서 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 단지, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에 있어서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 따라서, 시스템 (10) 은 예컨대, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 전화를 위해, 소스 디바이스 (12) 와 목적지 디바이스 (14) 간의 일방 또는 양방 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 컨텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (18) 는 컴퓨터 그래픽스 기반 데이터를 소스 비디오로서, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 생성할 수도 있다. 소스 디바이스 (12) 는 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들 (예컨대, 저장 매체들 (19)) 을 포함할 수도 있다. 본 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있으며, 무선 및/또는 유선 어플리케이션들에 적용될 수도 있다. 각각의 경우에 있어서, 캡처되거나 사전-캡처되거나 또는 컴퓨터 생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 출력 인터페이스 (22) 는 인코딩된 비디오 정보를 컴퓨터 판독가능 매체 (16) 에 출력할 수도 있다.
출력 인터페이스 (22) 는 다양한 타입들의 컴포넌트들 또는 디바이스들을 포함할 수도 있다. 예를 들어, 출력 인터페이스 (22) 는 무선 송신기, 모뎀, 유선 네트워킹 컴포넌트 (예컨대, 이더넷 카드), 또는 다른 물리 컴포넌트를 포함할 수도 있다. 출력 인터페이스 (22) 가 무선 수신기를 포함하는 예들에 있어서, 출력 인터페이스 (22) 는 4G, 4G-LTE, LTE 어드밴스드, 5G 등과 같은 셀룰러 통신 표준에 따라 변조되는 비트스트림과 같은 데이터를 수신하도록 구성될 수도 있다. 출력 인터페이스 (22) 가 무선 수신기를 포함하는 일부 예들에 있어서, 출력 인터페이스 (22) 는 IEEE 802.11 사양, IEEE 802.15 사양 (예컨대, ZigBee™), Bluetooth™ 표준 등과 같은 다른 무선 표준들에 따라 변조되는 비트스트림과 같은 데이터를 수신하도록 구성될 수도 있다. 일부 예들에 있어서, 출력 인터페이스 (22) 의 회로부는 시스템 온 칩 (SoC) 의 부분들일 수도 있다. SoC 는 또한, 범용 마이크로프로세서, 그래픽스 프로세싱 유닛 등과 같은 다른 컴포넌트들을 포함할 수도 있다.
목적지 디바이스 (14) 는 디코딩될 인코딩된 비디오 데이터를 컴퓨터 판독가능 매체 (16) 를 통해 수신할 수도 있다. 컴퓨터 판독가능 매체 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동 가능한 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 일부 예들에 있어서, 컴퓨터 판독가능 매체 (16) 는, 소스 디바이스 (12) 로 하여금 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 로 실시간으로 송신할 수 있게 하는 통신 매체를 포함한다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 목적지 디바이스 (14) 는 인코딩된 비디오 데이터 및 디코딩된 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들을 포함할 수도 있다.
일부 예들에 있어서, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 국부적으로 액세스된 데이터 저장 매체들 중 임의의 데이터 저장 매체를 포함할 수도 있다. 추가의 예에 있어서, 저장 디바이스는, 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 저장 디바이스로부터의 저장된 비디오 데이터에 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그리고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신하는 것이 가능한 임의의 타입의 서버일 수도 있다. 예시적인 파일 서버들은 웹 서버 (예컨대, 웹 사이트용), FTP 서버, 네트워크 어태치형 저장 (NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인코딩된 비디오 데이터에, 인터넷 커넥션을 포함한 임의의 표준 데이터 커넥션을 통해 액세스할 수도 있다. 이는 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널 (예컨대, Wi-Fi 커넥션), 유선 커넥션 (예컨대, DSL, 케이블 모뎀 등), 또는 이들 양자의 조합을 포함할 수도 있다. 인코딩된 비디오 데이터의 저장 디바이스로부터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
그 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 유선 송신들, 위성 텔레비전 송신들, DASH (dynamic adaptive streaming over HTTP) 와 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩된 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 어플리케이션들 또는 상기 예들의 조합들과 같은 다양한 멀티미디어 어플리케이션들 중 임의의 멀티미디어 어플리케이션의 지원으로 비디오 코딩에 적용될 수도 있다. 일부 예들에 있어서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 전화와 같은 어플리케이션들을 지원하기 위해 일방 또는 양방 비디오 송신을 지원하도록 구성될 수도 있다.
컴퓨터 판독가능 매체 (16) 는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적인 매체들, 또는 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들과 같은 저장 매체들 (즉, 비-일시적인 저장 매체들) 을 포함할 수도 있다. 일부 예들에 있어서, 네트워크 서버 (도시 안됨) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 수신하고, 인코딩된 비디오 데이터를, 예컨대, 네트워크 송신을 통해 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생성 설비의 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 수신하고, 인코딩된 비디오 데이터를 포함하는 디스크를 생성할 수도 있다. 따라서, 컴퓨터 판독가능 매체 (16) 는, 다양한 예들에 있어서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하도록 이해될 수도 있다.
목적지 디바이스 (14) 의 입력 인터페이스 (26) 는 컴퓨터 판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터 판독가능 매체 (16) 의 정보는 비디오 인코더 (20) 의 비디오 인코더 (20) 에 의해 정의되고 또한 비디오 디코더 (30) 에 의해 이용되는 신택스 정보를 포함할 수도 있으며, 이 신택스 정보는 블록들 및 다른 코딩된 유닛들, 예컨대, 픽처들의 그룹들 (GOP들) 의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함한다. 입력 인터페이스 (26) 는 다양한 타입들의 컴포넌트들 또는 디바이스들을 포함할 수도 있다. 예를 들어, 입력 인터페이스 (26) 는 무선 수신기, 모뎀, 유선 네트워킹 컴포넌트 (예컨대, 이더넷 카드), 또는 다른 물리 컴포넌트를 포함할 수도 있다. 입력 인터페이스 (26) 가 무선 수신기를 포함하는 예들에 있어서, 입력 인터페이스 (26) 는 4G, 4G-LTE, LTE 어드밴스드, 5G 등과 같은 셀룰러 통신 표준에 따라 변조되는 비트스트림과 같은 데이터를 수신하도록 구성될 수도 있다. 입력 인터페이스 (26) 가 무선 수신기를 포함하는 일부 예들에 있어서, 입력 인터페이스 (26) 는 IEEE 802.11 사양, IEEE 802.15 사양 (예컨대, ZigBee™), Bluetooth™ 표준 등과 같은 다른 무선 표준들에 따라 변조되는 비트스트림과 같은 데이터를 수신하도록 구성될 수도 있다. 일부 예들에 있어서, 입력 인터페이스 (26) 의 회로부는 비디오 디코더 (30) 및/또는 목적지 디바이스 (14) 의 다른 컴포넌트들의 회로부에 통합될 수도 있다. 예를 들어, 비디오 디코더 (30) 및 입력 인터페이스 (26) 는 SoC 의 부분들일 수도 있다. SoC 는 또한, 범용 마이크로프로세서, 그래픽스 프로세싱 유닛 등과 같은 다른 컴포넌트들을 포함할 수도 있다.
저장 매체들 (28) 은 입력 인터페이스 (26) 에 의해 수신된 인코딩된 비디오 데이터 (예컨대, 비트스트림) 와 같은 인코딩된 비디오 데이터를 저장하도록 구성될 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적합한 인코더 회로부 중 임의의 회로부로서 구현될 수도 있다. 기법들이 부분적으로 소프트웨어로 구현될 경우, 디바이스는 적합한 비일시적인 컴퓨터 판독가능 매체에 소프트웨어에 대한 명령들을 저장하고, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하는 하드웨어에서 명령들을 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나는 개별 디바이스에 있어서 결합된 인코더/디코더 (CODEC) 의 부분으로서 통합될 수도 있다.
2016년에 있어서, MPEG 및 ITU-T VCEG 는 차세대의 비디오 코딩 표준을 위한 새로운 코딩 툴들을 탐구하기 위해 공동 탐구 비디오 팀 (JVET) 을 형성했다. 레퍼런스 소프트웨어는 공동 탐구 모델 (JEM) 로 지칭된다.
JEM 에 대한 현재 제안, JEM, 및 다른 비디오 코딩 사양들에 있어서, 비디오 데이터는 픽처들의 시리즈를 포함한다. 예를 들어, 픽처들의 시리즈에 있어서, 병치된 픽처, 하나 이상의 레퍼런스 픽처, 및 현재 코딩 픽처가 존재할 수도 있다. 픽처들은 또한 "프레임들" 로서 지칭될 수도 있다. 픽처는 하나 이상의 샘플 어레이들을 포함할 수도 있다. 픽처의 각각의 개별 샘플 어레이는 개별 컬러 컴포넌트에 대한 샘플들의 어레이를 포함할 수도 있다. JEM 에 있어서, 픽처는 SL, SCb, 및 SCr 로 표기된 3개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2차원 어레이 (즉, 블록) 이다. SCb 는 Cb 크로마 샘플들의 2차원 어레이이다. SCr 은 Cr 크로마 샘플들의 2차원 어레이이다. 다른 사례들에 있어서, 픽처는 모노크롬 (monochrome) 일 수도 있고, 오직 루마 샘플들의 어레이만을 포함할 수도 있다.
비디오 데이터를 인코딩하는 것의 부분으로서, 비디오 인코더 (20) 는 비디오 데이터의 픽처들을 인코딩할 수도 있다. 즉, 비디오 인코더 (20) 는 비디오 데이터의 픽처들의 인코딩된 표현들을 생성할 수도 있다. 픽처의 인코딩된 표현은 본 명세서에서 "코딩된 픽처" 또는 "인코딩된 픽처" 로서 지칭될 수도 있다.
픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 픽처의 블록들을 인코딩할 수도 있다. 비디오 인코더 (20) 는 비디오 블록의 인코딩된 표현을 비트스트림에 포함할 수도 있다. 예를 들어, 픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 픽처의 각각의 샘플 어레이를 코딩 트리 블록들 (CTB들) 로 파티셔닝하고 CTB들을 인코딩할 수도 있다. CTB 는 픽처의 샘플 어레이에서의 샘플들의 NxN 블록일 수도 있다.
비디오 인코더 (20) 는 인코딩되는 현재 블록의 예측 블록 (예컨대, 루마, Cb, 및 Cr 예측 블록) 에 대한 예측 블록 (예컨대, 루마, Cb, 및 Cr 예측 블록) 을 생성할 수도 있다. 비디오 인코더 (20) 는 인트라 예측 또는 인터 예측을 이용하여 예측 블록을 생성할 수도 있다. 비디오 인코더 (20) 가 인트라 예측을 이용하여 예측 블록을 생성하면, 비디오 인코더 (20) 는 인코딩되는 현재 블록을 포함하는 픽처의 디코딩된 샘플들에 기초하여 예측 블록을 생성할 수도 있다. 이전 표준들 및 JEM 에 있어서, 현재 블록의 예측 블록은 레퍼런스 픽처 (즉, 현재 픽처 이외의 픽처) 의 디코딩된 샘플들에 기초하여 인코딩된다. 하지만, JEM 에서 어드밴스드 시간 모션 벡터 예측 알고리즘을 개선하기 위한 JEM 에 대한 현재 제안에 있어서, 비디오 인코더 (20) 가 인터 예측을 이용하여 현재 픽처의 인코딩되는 현재 블록의 예측 블록을 생성하면, 비디오 인코더 (20) 는 병치된 레퍼런스 픽처 (즉, 현재 픽처 이외의, 반드시 레퍼런스 픽처일 필요는 없는 픽처) 의 디코딩된 샘플들에 기초하여 인코딩되는 현재 블록의 예측 블록을 생성할 수도 있다. 병치된 레퍼런스 픽처는 레퍼런스 픽처들 중 하나일 수도 있음을 유의해야 한다. 일부 실시형태들에 있어서, 병치된 레퍼런스 픽처는, 리스트 0 또는 리스트 1 에서 0 인 레퍼런스 인덱스를 가질 수도 있다 (하기에서 더 설명됨).
일부 예들에 있어서, 비디오 인코더 (20) 는 변환 블록으로의 변환들의 적용을 스킵한다. 그러한 예들에 있어서, 비디오 인코더 (20) 는, 잔차 샘플 값들이 변환 계수들과 동일한 방식으로 처리될 수 있게 처리할 수도 있다. 따라서, 비디오 인코더 (20) 가 변환들의 적용을 스킵하는 예들에 있어서, 변환 계수들 및 계수 블록들의 다음의 논의가 잔차 샘플들의 변환 블록들에 적용가능할 수도 있다.
계수 블록을 생성한 이후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들이 그 변환 계수들을 나타내는데 사용되는 데이터의 양을 가능하게는 감소시키도록 양자화되어 추가 압축을 제공하는 프로세스를 지칭한다. 일부 예들에 있어서, 비디오 인코더 (20) 는 양자화를 스킵한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 이후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들을 생성할 수도 있다. 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들 중 하나 이상을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들에 대해 컨텍스트-적응형 바이너리 산술 코딩 (CABAC) 을 수행할 수도 있다. 따라서, 인코딩된 블록 (예컨대, 인코딩된 현재 블록) 은 양자화된 변환 계수들을 표시하는 엔트로피 인코딩된 신택스 엘리먼트들을 포함할 수도 있다.
비디오 인코더 (20) 는, 인코딩된 비디오 데이터를 포함하는 비트스트림을 출력할 수도 있다. 즉, 비디오 인코더 (20) 는, 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 비트스트림은 비디오 데이터의 인코딩된 픽처들의 표현 및 관련 데이터를 형성하는 비트들의 시퀀스를 포함할 수도 있다. 일부 예들에 있어서, 코딩된 픽처의 표현은 블록들의 인코딩된 표현들을 포함할 수도 있다.
JEM 에 있어서 및 JEM 에 대한 현재 제안에 있어서, 각각의 블록에 대해, 모션 정보의 세트가 이용가능할 수도 있다. 모션 정보의 세트는 순방향 및 역방향 예측 방향들에 대한 모션 정보를 포함할 수도 있다. 여기서, 순방향 및 역방향 예측 방향들은 양방향 예측 모드의 2개의 예측 방향들이고, 용어들 "순방향" 및 "역방향" 은 반드시 기하학적 의미를 가질 필요는 없으며, 대신, 그 용어들은 현재 픽처의 레퍼런스 픽처 리스트 0 (RefPicList0) 및 레퍼런스 픽처 리스트 1 (RefPicList1) 에 대응한다. 하나의 레퍼런스 픽처 리스트가 픽처 또는 슬라이스에 이용가능할 경우, RefPicList0 이 이용가능하고 슬라이스의 각각의 블록의 모션 정보는 순방향이다.
각각의 예측 방향에 대해, 모션 정보는 레퍼런스 인덱스 및 모션 벡터를 포함할 수도 있다. 이전에 노트되었던 바와 같이, 예측 블록은, 병치된 픽처에서의 연관된 블록과 연관되는 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 결정될 수도 있다. 예측 블록은 순방향 예측 방향 또는 역방향 예측 방향과 연관될 수도 있다.
레퍼런스 인덱스는 현재 레퍼런스 픽처 리스트 (RefPicList0 또는 RefPicList1) 에서의 레퍼런스 픽처를 식별하는데 사용된다. 종래 기법들에 있어서, 모션 정보는, 레퍼런스 인덱스와 연관되었던 레퍼런스 픽처의 사용으로부터 도출될 수 있었다. ATMVP 에 대한 개선에 있어서, 버퍼 메모리 (예컨대, 도 7 에서의 DPB (1216) 및 도 8 의 DPB (1312)) 에서의 증가 때문에, 제 1 도출된 모션 벡터들에 대한 레퍼런스 픽처를 사용하지 않고 모션 정보를 도출하는 것이 바람직하다. 이는, 병치된 레퍼런스 픽처가 레퍼런스 픽처들 중 하나일 수도 있기 때문에 가능할 수도 있다. 그에 따라, 모든 레퍼런스 픽처들의 모션 정보가 저장될 필요는 없다.
픽처 순서 카운트 (POC) 는 픽처의 디스플레이 순서를 식별하기 위해 비디오 코딩 표준들에서 널리 사용된다. 하나의 코딩된 비디오 시퀀스 내의 2개의 픽처들이 동일한 POC 값을 가질 수도 있는 경우들이 존재하더라도, 이는 코딩된 비디오 시퀀스 내에서는 통상적으로 일어나지 않는다. 다중의 코딩된 비디오 시퀀스들이 비트스트림에 존재할 경우, POC 의 동일한 값을 갖는 픽처들은 디코딩 순서의 관점에서 서로 더 근접할 수도 있다. 픽처들의 POC 값들은 통상적으로 레퍼런스 픽처 리스트 구성을 위해 사용된다. JEM 에 대한 현재 제안에 있어서, 레퍼런스 픽처의 도출은 HEVC 및 모션 벡터 스케일링에서와 같이 설정될 수도 있다.
JEM 에 대한 현재 제안에 있어서 및 JEM 에 있어서, 다중의 인터 예측 모드들이 존재한다. 인터 예측은 병합/스킵 모드, FRUC 모드, 아핀 모드 및 AMVP 모드를 포함한다. AMVP 모드 또는 병합 모드 중 어느 하나에 있어서, 모션 벡터 (MV) 후보 리스트가 다중의 모션 벡터 예측자들에 대해 유지된다.
병합 모드에서의 레퍼런스 인덱스들 뿐 아니라 모션 벡터(들)가 MV 후보 리스트로부터 하나의 후보를 취함으로써 생성된다. MV 후보 리스트는 병합 모드에 대한 7개까지의 후보들 및 AMVP 모드에 대한 오직 2개의 후보들을 포함할 수도 있다. 병합 후보는 모션 정보의 세트, 예컨대, 레퍼런스 픽처 리스트들 (리스트 0 및 리스트 1) 및 레퍼런스 인덱스들 양자 모두에 대응하는 모션 벡터들을 포함할 수도 있다. 병합 후보가 병합 인덱스에 의해 식별되면, 레퍼런스 픽처들은 현재 블록들의 예측을 위해 사용될 뿐 아니라 연관된 모션 벡터들이 결정된다.
더 구체적으로, 병합 모드에 있어서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 현재 블록에 대한 매칭 병합 모션 벡터 (MV) 후보 리스트들을 생성한다. 현재 블록에 대한 병합 MV 후보 리스트는 하나 이상의 병합 후보들을 포함할 수도 있으며, 이는 또한 모션 벡터 예측자들 (MVP들) 로서 지칭될 수도 있다. JEM 에 대한 현재 제안에 있어서 및 JEM 에 있어서, 병합 MV 후보 리스트는 7개까지의 병합 후보들을 포함한다. 병합 MV 후보 리스트에서의 각각의 개별 병합 후보는 하나 이상의 모션 벡터(들) 및 하나 이상의 레퍼런스 인덱스(들)를 명시한다. 예를 들어, 병합 후보는 리스트 0 모션 벡터 및/또는 리스트 1 모션 벡터를 명시할 수도 있고, 리스트 0 레퍼런스 인덱스 및/또는 리스트 1 레퍼런스 인덱스를 명시할 수도 있다. 리스트 0 모션 벡터는, 리스트 0 에서 레퍼런스 픽처에서의 위치를 표시하는 모션 벡터이다. 리스트 1 모션 벡터는, 리스트 1 에서 레퍼런스 픽처에서의 위치를 표시하는 모션 벡터이다. 비디오 인코더 (20) 는, 현재 블록에 대해 선택된 병합 후보의 병합 MV 후보 리스트에서의 위치를 표시하는 병합 인덱스를 시그널링할 수도 있다. 비디오 디코더 (30) 는 선택된 병합 후보를 식별하기 위해 병합 인덱스를 사용할 수도 있다.
JEM 에 대한 현재 제안에 있어서, 고정된 순서 (공간 후보들을 참조하여 하기에서 더 설명됨) 는 현재 블록에 대한 모션 정보를 찾기 위해 병합 리스트, 즉, 리스트 0 또는 리스트 1 에서의 후보들에 의해 대체될 수도 있다. 일 실시형태에 있어서, 비디오 디코더 (30) 는, 그 다음, 병치된 레퍼런스 픽처로부터의 (제 1 도출된) 모션 벡터들을 사용하여, 모션 벡터들 (즉, 이들은 제 2 도출된 모션 벡터들일 수도 있음) 로서 선택된 병합 후보의 레퍼런스 인덱스들을 사용하여 제 2 도출된 모션 벡터를 도출할 수도 있다.
도 2a 및 도 2b 에서의 예시들은, 각각, 예시적인 리스트 0 및 리스트 1 의 개념 다이어그램들을 도시한다. 도 2a 에서의 예시적인 리스트0 은, 각각, 참조 라벨들 (202A, 204A, 206A, 및 208A) 을 갖는 4개의 픽처들 {P4, P3, P2, 및 P1} 을 예시한다. 유사하게, 도 2b 에서의 예시적인 리스트1 은, 각각, 참조 라벨들 (202A, 204A, 206A, 및 208A) 을 갖는 4개의 픽처들 {P4, P3, P2, 및 P1} 을 예시한다.
JEM 에 있어서, 병합 모드에서의 제 1 단계에서, 4개까지의 공간 MV 후보들이, 숫자들을 이용하여 도 2a 에 도시된 순서로 도출될 수 있으며, 고정된 순서는 다음과 같다: 즉, 좌 (0), 상 (1), 우상 (2), 및 좌하 (3).
픽처 1 (208A) 에서의 현재 블록 (CB) 은 주위의 공간 이웃들 {NB1, NB2, NB3, NB4, 및 NB5} 을 포함한다. 예를 들어, NB1, NB2, NB3, 및 NB4 는 고정된 순서: 즉, 좌 (0), 상 (1), 우상 (2), 및 좌하 (3) 일 수도 있다. 공간 이웃, 예컨대, NB4 는, 주위의 공간 이웃들이 이미 디코딩되었고 그 모션 정보는 존재한다면 이미 이용가능하므로, 모션 벡터 예측자 (MVP) 후보일 수도 있다. 이미 인코딩되거나 디코딩된 블록 (AB 로서 표현됨) 은 또한, 그 자신의 예측된 모션 벡터 (점선들을 갖는 화살표에 의해 예시됨) 를 가질 수도 있다.
도 2c 는 병합 모드에 대한 공간 이웃 MV 후보들의 제 1 단계를 예시한다. 후속 단계들은 ATMVP 후보를 체크하고 STMVP 후보를 체크할 수도 있다. 후보들이 6개 미만이면, 좌상 (4) 의 체크가 다음일 수도 있다. 그 다음, 시간 후보의 체크가 수행될 수도 있다. 시간 후보를 획득하기 위하여, 우하 포지션의 체크가 먼저 수행되고, 그것이 이용불가능하면, 중앙 블록의 체크가 수행될 수도 있다. 병합 후보 리스트 사이즈가 7 미만이면, 리스트 사이즈가 7 과 동일할 때까지 추가 후보들이 추가될 수도 있다.
본 개시에 있어서, 이전에 코딩된 록의 모션 정보가 초기 모션 벡터를 생성하는데 사용될 수도 있다. 이전에 코딩된 블록은 인코딩 또는 디코딩되는 현재 블록의 이웃 블록일 수도 있다. 모션 정보는 레퍼런스 인덱스, 모션 벡터 및 인터-방향 (inter-direction) 을 포함할 수도 있다.
초기 모션 벡터는, 이미 인코딩 또는 디코딩된 병치된 레퍼런스 픽처에서의 대응하는 블록을 다시 포인팅하는데 사용될 수도 있다.
본 명세서에서 설명된 기법들에 따라, 비디오 인코더 (20) 는, 비디오 데이터를 인코딩하기 위해 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하도록 이전에 코딩된 블록들의 모션 정보를 활용 사용할 수도 있다 [예컨대, 도 4a 및 도 4b 에서의 플로우차트 참조]. 병치된 레퍼런스 픽처에서의 대응하는 블록은 도출된 모션 벡터들의 제 1 세트를 포함할 수도 있으며, 이는 도출된 모션 벡터들의 제 2 세트를 찾는데 사용될 수도 있다.
예를 들어, 비디오 인코더 (20) 는, 비디오 데이터의 현재 픽처에서의 현재 블록에 대해, 이전에 코딩된 픽처에서의 코딩 블록을 결정할 수도 있다. 코딩 블록은 이전에 코딩된 픽처에서의 병치된 블록 및 이전에 코딩된 픽처 내의 포지션을 커버할 수도 있다. 하지만, 이전에 코딩된 픽처가 반드시 레퍼런스 블록은 아니다. 병치된 블록은 현재 블록과 동일한 형상을 가질 수도 있으며, 이전에 코딩된 픽처 내의 병치된 블록의 위치는 현재 픽처 내의 현재 블록의 위치와 동일할 수도 있다. 코딩 블록에 대한 하나 이상의 모션 벡터들에 기초하여, 비디오 인코더 (20) 는 현재 블록에 대한 하나 이상의 모션 벡터들을 결정할 수도 있다. 현재 블록에 대한 하나 이상의 모션 벡터들에 기초하여, 비디오 인코더 (20) 는, 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하기 위해 이전에 코딩된 블록들의 모션 정보를 사용할 수도 있다. 그 다음, 비디오 인코더 (20) 는 예측 블록 및 현재 블록을 사용하여 잔차 데이터를 생성할 수도 있다.
유사하게, 비디오 디코더 (30) 는, 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하기 위해 코딩된 이웃 블록들의 모션 정보를 사용할 수도 있다. 예를 들어, 비디오 디코더 (30) 는, 비디오 데이터의 현재 픽처에서의 현재 블록에 대해, 이전에 코딩된 픽처에서의 코딩 블록을 결정할 수도 있다. 코딩 블록은 이전에 코딩된 픽처에서의 병치된 블록 및 이전에 코딩된 픽처 내의 포지션을 커버할 수도 있다. 병치된 블록은 현재 블록과 동일한 형상을 가질 수도 있으며, 이전에 코딩된 픽처 내의 병치된 블록의 위치는 현재 픽처 내의 현재 블록의 위치와 동일할 수도 있다. 코딩 블록에 대한 하나 이상의 모션 벡터들에 기초하여, 비디오 디코더 (30) 는 현재 블록에 대한 하나 이상의 모션 벡터들을 결정할 수도 있다.
현재 블록에 대한 하나 이상의 모션 벡터들에 기초하여, 비디오 디코더 (30) 는, 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하기 위해 이전에 코딩된 블록들의 모션 정보를 사용할 수도 있다. 그 다음, 비디오 디코더 (30) 는 현재 블록을 복원하기 위해 잔차 데이터 및 예측 블록을 사용할 수도 있다.
병합 후보는 모션 정보의 전체 세트에 대응하는 한편, AMVP 후보는 특정 예측 방향에 대해 단지 하나의 모션 벡터를 포함한다. 병합 모드 및 AMVP 모드 양자 모두에 대한 후보들은 동일한 공간 및 시간 이웃 블록들로부터 유사하게 도출될 수도 있다.
비디오 코더 (즉, 비디오 인코더 또는 비디오 디코더) 내에서, 모션 벡터가 스케일링될 수도 있다. 모션 벡터를 스케일링할 경우, 모션 벡터의 값은 그 프리젠테이션 시간에서의 픽처들의 거리에 비례할 수도 있다. 모션 벡터는 2개의 픽처들, 즉, 병치된 레퍼런스 픽처 및 모션 벡터를 포함하는 픽처를 연관시킨다. 본 개시 내에서, 모션 벡터는 초기 모션 벡터이고, 병치된 레퍼런스 픽처는 제 1 도출된 모션 벡터들 (적어도 하나의 제 1 도출된 모션 벡터) 을 포함하고, 모션 벡터를 포함하는 픽처는 현재 코딩 픽처이다. 초기 모션 벡터가 다른 모션 벡터, 즉, 병치된 레퍼런스 픽처에서의 제 1 도출된 모션 벡터를 예측하는데 사용되는 경우, 포함 픽처와 레퍼런스 픽처의 거리는 병치된 레퍼런스 픽처와 포함 픽처 (즉, 현재 코딩 픽처) 의 픽처 순서 카운트 (POC) 값들에 기초하여 계산된다.
예측될 모션 벡터에 대해, 그의 연관된 포함 픽처 및 병치된 레퍼런스 픽처 양자 모두는 상이할 수도 있다. 따라서, (POC 에 기초하여) 새로운 거리가 계산된다. 초기 모션 벡터는 이들 2개의 POC 거리들에 기초하여 스케일링된다. 공간 이웃 후보에 대해, 2개의 모션 벡터들에 대한 포함 픽처들은 동일한 반면, 병치된 레퍼런스 픽처들은 상이하다. JEM 에 대한 제안에 있어서 및 JEM 에 있어서, 모션 벡터 스케일링이 공간 및 시간 이웃 후보들에 대해 TMVP 및 AMVP 양자 모두에 적용된다.
기존 JEM, 어드밴스드 시간 모션 벡터 예측 (ATMVP) 에 있어서, ATMVP 에서의 모션 정보 (모션 벡터들 및 레퍼런스 프레임들을 포함) 는 오직 레퍼런스 픽처들로부터만 거쳐 온다. 현재 블록의 ATMVP 를 도출하기 위해, 제 1 단계는 시간 모션 벡터들이 (도 7 에서의 DPB 버퍼 (1216) 또는 도 8 에서의 DPB (1312) 로부터) 페치될 위치를 결정하는 것이다. ATMVP 는, 고정된 순서: {좌, 상, 우상, 좌하, 및 좌상} 로, 5개의 이웃 블록들에서 제 1 이용가능 모션 벡터를 찾을 수도 있다. 5개의 이웃 블록들의 정의는 현재 블록의 공간 병합 후보들과 동일하다. 이전에 코딩된 이웃 블록들의 반복적인 스캐닝 프로세스를 회피하기 위해, 시간 모션 벡터를 페치할 위치를 결정하기 위해 이미 도출된 병합 후보 리스트에서 제 1 병합 후보의 모션 벡터를 찾는 것이 바람직하다. 현재 블록은 정방형 NxN 서브-블록으로 분할될 수도 있다 (예컨대, N 은 4 로 설정됨). 그 다음, 서브-블록들의 모션 벡터들이 래스터 스캔 순서에 따라 재귀적으로 도출될 수도 있다. 일 예로서, 현재 JEM 레퍼런스 소프트웨어에서의 플로우차트가 도 3a 내지 도 3c 에 예시된다.
도 3a 의 단계 1 에 있어서, 단계 1 에서, 시작 모션 벡터가 오직 레퍼런스 픽처로부터만 획득됨을 유의한다. 도 3b 의 단계 2 에 있어서, 초기 모션 벡터가 오직 레퍼런스 픽처로부터만 획득된다. 이들 제한들은, ATMVP 알고리즘들에서 모션 벡터의 정보가 레퍼런스 버퍼 (예컨대, 도 7 에서의 DPB 버퍼 (1216) 또는 도 8 에서의 DPB (1312)) 에 저장되는 레퍼런스 픽처들로부터 페치된다는 전술된 문제를 발생시킨다. 레퍼런스 버퍼에의 각각의 레퍼런스 저장의 모션 벡터 정보는 전력 소비 및 메모리의 사이즈를 증가시킨다.
현재 JEM 에 대한 ATMVP 의 제안된 개선 및 장래의 표준들이 도 4a, 도 4b 뿐 아니라 도 6 의 플로우차트들에 예시된다. 제안된 개선은 초기 모션 벡터가 모션 벡터들을 결정하기 위해 레퍼런스 픽처가 아닌 병치된 픽처를 포인팅할 수도 있다는 것이다.
현재 픽처에서의 현재 블록의 모션 벡터들 (MV) 은 오직 현재 코딩 픽처 및 병치된 레퍼런스 픽처에서의 대응하는 블록과 연관된 모션 벡터들 (즉, 모션 벡터들의 제 1 세트) 로부터 도출될 수도 있음이 고려된다. 따라서, 도출될 수도 있는 현재 픽처에서의 현재 블록의 모션 벡터들은 도출된 모션 벡터들의 제 2 세트로 고려될 수도 있다. 이는, 전술된 바와 같이 레퍼런스 버퍼를 증가시키는, 모션 벡터들이 레퍼런스 픽처들 상에서만 도출되게 하는 것에 대한 의존성을 극복한다.
일 예에 있어서, 인코더 또는 디코더는 ATMVP 모드에 있을 수도 있으며, 오직 현재 코딩 픽처의 및 병치된 픽처의 MV들만이 ATMVP 모드에서 모션 벡터들을 도출하는데 사용될 수도 있다. ATMVP 모드 내에, 오직 현재 코딩 픽처의 및 병치된 픽처의 MV들만이 병합 모드에서 모션 벡터들을 도출하는데 사용될 수도 있는 병합 모두가 존재할 수도 있다. 이전에는 레퍼런스 픽처들 내에서 현재 블록의 이웃 블록들의 모션 벡터들을 찾음으로써 모션 정보가 사용되었지만, 병치된 레퍼런스 픽처를 찾는 것은 메모리 효율을 개선한다고 사료된다.
도 4a 의 예 A 에 예시된 바와 같은 일 예에 있어서, 픽처들의 세트 (예컨대, 도 2a 및/또는 도 2b 에서와 같은 P4, P3, P2) 가 이전에 코딩되었던 적어도 하나의 이전의 록을 가질 수도 있는 판정 체크 (406A) 가 존재한다. 현재 픽처 (예컨대, 도 2a 및/또는 도 2b 에서의 P1) 는 코딩될 현재 블록 (CB-P1) 을 가질 수도 있고, 또한 이전에 코딩되었던 이웃 블록들 {NB1-NB5} 의 공간 후보를 갖는다. 즉, 초기 모션 벡터를 찾기 위한 판정 체크는 현재 코딩 픽처에서의 이전의 디코딩된 블록들의 모션 벡터인지의 체크에 기초한다.
현재 픽처 내의 이웃 블록들을 포함하여 이전에 코딩된 블록들의 모션 벡터들은 현재 블록과 연관된 대응하는 블록을 찾는데 사용될 수도 있다. 현재 픽처 내의 이웃 블록들을 포함하여 이전에 코딩된 블록들의 모션 벡터들은, 병치된 레퍼런스 픽처를 포인팅하는 초기 모션 벡터를 찾기 위해 고정된 순서로 체크될 수도 있다. 예를 들어, 고정된 순서는 이웃 블록들 {NB1-NB5} 을 체크하는 것일 수도 있다.
대응하는 블록이 인터 예측, 즉, 현재 픽처 (P1) 와 이전 픽처 (예컨대: P2-P4) 사이에서 시간적으로 인터 예측으로 코딩되었고 매칭이 발견되면, 이전 픽처들 중 하나는 병치된 픽처이고, 예 A: 406A 판정 체크가 중지된다 ("예"). 따라서, 현재 픽처에서의 현재 블록 주변의 이웃 블록들 중 하나는, 대응하는 블록을 포인팅하는 모션 벡터를 가지며, 초기 모션 벡터로서 표기될 수도 있다 (410).
예 A, 406A 에 있어서, 레퍼런스 픽처에서의 현재 블록의 이웃 블록들의 이용가능 모션 벡터들이 존재하는지를 먼저 체크함으로써 초기 모션 벡터의 탐색을 우선순위화하는 것이 바람직하다. 매칭이 존재하면, 레퍼런스 픽처는 또한 병치된 레퍼런스 픽처이고, 개선된 단계 1 및 단계 2 는 개선된 단계 3 으로 안내된다. 따라서, 초기 모션 벡터를 찾기 위한 판정 체크는 고정된 순서에 기초하며, 여기서, 고정된 순서는 비디오 데이터의 현재 픽처의 현재 블록 이전에 이전의 디코딩된 블록들을 체크하는 것이다. 대안적으로, 판정 체크는, 병치된 레퍼런스 픽처를 포인팅하는 초기 모션 벡터를 찾기 위한 가장 높은 우선순위가 아닌 것이 가능할 수도 있다.
도 4b 에 있어서, 개선된 단계 3 이 예시된다. 현재 블록에서의 각각의 NxN 블록 (예컨대, N = 4) 에 대해, 초기 모션 벡터는 병치된 픽처를 포인팅할 수도 있으며 (도 5d 참조), 현재 블록에 의해 포인팅된 대응하는 블록으로부터 병치된 픽처에서의 모션 벡터가 도출될 수도 있다. 병치된 픽처에서의 모션 벡터들은 각각의 방향에 대해 레퍼런스 ID = 0 으로 스케일링될 수도 있다. 현재 블록에 의해 사용된 레퍼런스 위치가, MV 가 도출된 블록에 의해 사용된 레퍼런스와 상이하면, 스케일링이 사용된다. 그에 따라, 초기 모션 벡터를 찾기 위한 판정 체크는 이전의 디코딩된 블록들의 MV들의 모션 벡터에 대한 스케일링 동작에 기초한다. 부가적으로, 초기 모션 벡터를 찾기 위한 판정 체크는 현재 코딩 픽처에서의 현재 블록의 이웃 블록들이 아닌 다른 모션 벡터들의 스케일 및 스케일링된 다른 모션 벡터들이 병치된 레퍼런스 픽처를 포인팅하는지의 체크를 포함한다.
일 예에 있어서, ID 가 0 과 동일한 레퍼런스를 사용하게 하도록 ATMVP 모드를 강제하여, MV 를 ID 가 0 인 레퍼런스로 스케일링해야 한다. 일 실시형태에 있어서, 예 A, 406A 에서의 초기 모션 벡터에 대한 탐색은 가장 높은 우선순위로서 구현될 수도 있으며, 즉, 다른 예들 B-E (406B-406E) 이전에 수행될 수도 있다. 따라서, 판정 체크는, 병치된 레퍼런스 픽처를 포인팅하는 초기 모션 벡터를 찾기 위한 가장 높은 우선순위로서 구현된다.
다른 예, 즉, 예 B 406B 에 있어서, 이전의 체크 (예컨대, 406A) 에서 매칭이 없으면 ("아니오"), 병치된 레퍼런스 픽처는 레퍼런스 픽처가 아니었고, 병치된 레퍼런스 픽처는 현재 픽처 및 레퍼런스 픽처에 관하여 시간적으로 상이한 포지션들에 있을 수도 있다.
3개의 상이한 예들은 개념도들 (도 5a - 도 5c) 에 예시된다. 도 5a - 도 5c 에서의 예들에 있어서, 현재 픽처 (510) 의 현재 블록 (512) 이 현재 블록 (512) 과 연관된 상이한 픽처에서의 연관된 블록과 매칭하는 것을 야기시키는 초기 모션 벡터가 발견되지 않으면, 레퍼런스 픽처 (518) 의 이웃 공간 후보의 모션 벡터 (예컨대, 528) 는 병치된 레퍼런스 픽처 (526) 로 스케일링될 수도 있다. 일 실시형태에 있어서, 모션 벡터 (528) 가 병치된 레퍼런스 픽처 (526) 로 스케일링될 수도 있는 사례들에서, 예 406B 에서의 예시들은 두번째로 높은 우선순위로서 구현될 수도 있으며, 즉, 다른 예들 (406C-406E) 이전에 수행될 수도 있다.
현재 픽처와 병치된 레퍼런스 픽처의 거리는 현재 픽처 및 병치된 레퍼런스 픽처의 픽처 순서 카운트 (POC) 값들에 기초하여 계산된다. 스케일링된 모션 벡터는, 예컨대, 제산, 승산, 감산, 및/또는 가산에 기초한 선형 연산에 기초할 수도 있다. 스케일링된 모션 벡터는 보간된 모션 벡터로서 지칭될 수도 있다. 일부 경우들에 있어서, 스케일링된 모션 벡터는 또한, 외삽된 모션 벡터로서 지칭될 수도 있다. 따라서, 스케일링 동작은 현재 코딩 픽처에서의 이전의 디코딩된 블록들의 모션 벡터의 보간 또는 외삽을 포함할 수도 있다.
예를 들어, 도 5a 에 있어서, 현재 픽처 (510) 에서의 현재 블록 (512) 의 이웃 공간 후보들의 모션 벡터들 (예컨대, 이웃 모션 벡터 (MV) (544)) 은 병치된 레퍼런스 픽처 (526) 로 스케일링될 수도 있다. 스케일링은 보간으로서 지칭될 수도 있으며, 생성된 스케일링된 벡터는, 병치된 레퍼런스 픽처 (526) 및 레퍼런스 픽처 (518) 의 POC 값에 기초하는 보간 모션 벡터 (536) 로서 지칭될 수도 있다. 병치된 픽처 (526) 에서의 비디오 데이터의 연관된 블록 (528) 의 위치가, 현재 코딩 픽처 (510) 에서의 이전에 디코딩된 블록들 (예컨대, 이웃 공간 후보) 을 사용하는 것에 기초하여, 현재 코딩 픽처 (510) 에서의 비디오 데이터의 현재 블록 (512) 에 대응하면, 보간 모션 벡터 (536) 가 초기 모션 벡터일 수도 있다. 도 5a 에 있어서, 보간 모션 벡터 (536) 는 이웃 모션 벡터 (544) 보다 더 짧은 시간적 거리를 나타내며, 이는 병치된 레퍼런스 픽처 (526) 가 레퍼런스 픽처 (518) 보다 현재 픽처 (510) 에 더 가깝기 때문이다.
도 5b 및 도 5c 에 예시된 다른 실시형태들에 있어서, 병치된 레퍼런스 픽처 (526) 는 레퍼런스 픽처 (518) 와 현재 픽처 (510) 사이에 위치되지 않으며, 모션 벡터 (예컨대, 이웃 MV (544)) 는 병치된 레퍼런스 픽처 (526) 로 스케일링될 수도 있다. 스케일링은 외삽으로서 지칭될 수도 있으며, 생성된 스케일링된 벡터는, 병치된 레퍼런스 픽처 (526) 및 레퍼런스 픽처 (518) 의 POC 값에 기초하는 외삽 벡터 (예컨대, 외삽된 모션 벡터 (537)) 로서 지칭될 수도 있다. 병치된 픽처 (526) 에서의 비디오 데이터의 연관된 블록 (528) 의 위치가, 현재 코딩 픽처 (510) 에서의 이전에 디코딩된 블록들 (예컨대, 이웃 공간 후보) 을 사용하는 것에 기초하여, 현재 코딩 픽처 (510) 에서의 비디오 데이터의 현재 블록 (512) 에 대응하면, 외삽된 모션 벡터 (537) 가 초기 모션 벡터일 수도 있다. 도 5b 및 도 5c 에 예시된 예들은 도 5a 에서의 예와 동일한 우선순위로 구현될 수도 있거나, 또는 대안적인 실시형태에 있어서, 도 5a 에서의 예보다 낮은 우선순위로 구현될 수도 있다.
도 5b 에 있어서, 외삽 모션 벡터 (537) 는 이웃 모션 벡터 (544) 보다 더 긴 시간적 거리를 나타내며, 이는 병치된 레퍼런스 픽처 (526) 가 레퍼런스 픽처 (518) 보다 현재 픽처 (510) 로부터 더 떨어져 있기 때문이다.
도 5c 에 있어서, 외삽 모션 벡터 (537) 는, 레퍼런스 픽처 (518) 에 대한 이웃 모션 벡터 (544) 의 시간적 거리와는 반대 방향에 있는 시간적 거리를 나타낸다. 상기 논의된 바와 같이, 병치된 레퍼런스 픽처 (526) 는 디코더 픽처 버퍼에 레퍼런스 인덱스를 저장할 것을 반드시 요구하지는 않는다. 그와 같이, 병치된 레퍼런스 픽처의 사용은 초기 모션 벡터를 찾기 위해 레퍼런스 픽처 (528) 를 사용하는 것보다 더 바람직하다.
스케일링된 모션 벡터 (예컨대, 보간 모션 벡터 (536) 또는 외삽 모션 벡터 (537)) 가 병치된 레퍼런스 픽처 (526) 를 포인팅할 경우, 개선된 단계 1 및 단계 2 는 개선된 단계 3 으로 안내된다. 그 다음, 스케일링된 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터가 된다.
예 C: 406C 에 있어서, 판정 체크는 (i) 이웃 블록들의 모션 벡터들을 스케일링하도록 수행될 수도 있고; (ii) 스케일링된 이웃 모션 벡터들이면, 초기 모션을 찾기 위해 리스트 {리스트 0 또는 리스트 1} 에서의 병치된 픽처로의 포인트인지를 찾도록 고정된 순서 (예컨대, NB1-NB5) 로 체크될 수도 있다.
매칭이 존재하면, 스케일링된 모션 벡터는 리스트에서의 병치된 레퍼런스 픽처를 포인팅하고, 개선된 단계 1 및 단계 2 는 개선된 단계 3 으로 안내된다. 그 다음, 스케일링된 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터가 되며, 여기서, 병치된 픽처는 리스트 {리스트 0 또는 리스트 1} 에 위치된다.
매칭이 존재하면, 스케일링된 모션 벡터는 리스트에서의 병치된 레퍼런스 픽처를 포인팅하고, 개선된 단계 1 및 단계 2 는 개선된 단계 3 으로 안내된다. 그 다음, 스케일링된 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터가 된다.
예 C, 406C 에 있어서, 예 406A 및 예 406B 에 관하여 설명된 바와 같은 이전의 판정 체크가 현재 픽처 (510) 에서의 현재 블록과 예컨대, 레퍼런스 픽처에서의 연관된 모션 벡터를 갖는 다른 블록 간의 매칭을 야기하지 않았으면 (예 406A) (여기서, 연관된 모션 벡터는 병치된 레퍼런스 픽처에서 스케일링됨 (예 406B)), 추가의 판정 체크 (406D) 가 이전의 예들 중 임의의 예보다 더 낮은 우선순위로 수행될 수도 있다. 따라서, 판정 체크는, 병치된 레퍼런스 픽처를 포인팅하는 초기 모션 벡터를 찾기 위한 가장 높은 우선순위일 필요는 없을 수도 있다.
예 D 에 있어서: 판정 체크 (406D) 는 (i) 먼저 (현재 픽처에서의 현재 블록의 이웃 블록들이 아닌) 다른 MV들을 스케일링하고 (ii) 다른 스케일링된 MV들이 초기 MV 를 찾기 위해 병치된 픽처를 포인팅하는지를 체크할 수도 있다. 스케일링된 다른 모션 벡터들 중 하나가 병치된 픽처를 포인팅하면, 스케일링된 다른 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터일 수도 있다.
매칭이 존재하면, 스케일링된 다른 모션 벡터는 병치된 레퍼런스 픽처를 포인팅하고, 개선된 단계 1 및 단계 2 는 개선된 단계 3 으로 안내된다. 그 다음, 스케일링된 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터가 된다. 예 E: 판정 체크 (406E) 에 있어서, 모든 이웃 블록의 모션 벡터들이 실패하였으면, 디폴트 모션 벡터 (즉, 모션 벡터 (0,0)) 가 초기 MV 를 찾기 위해 병치된 픽처를 포인팅하도록 체크될 수도 있다. 매칭이 존재하면, 디폴트 모션 벡터는 병치된 레퍼런스 픽처를 포인팅하고, 개선된 단계 1 및 단계 2 는 개선된 단계 3 으로 안내된다. 그 다음, 디폴트 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터가 된다.
ATMVP 모드에서 적용 가능한 예 A - 예 E 에 부가하여, 모든 블록은 이웃 블록일 수 있지만, 이웃 블록은 반드시 병합 후보일 필요는 없을 수도 있으며, 즉, 현재 픽처의 이웃 블록이 반드시 병합 후보일 필요는 없을 수도 있다. 따라서, 이웃 블록인 이전에 코딩된 블록이 초기 모션 벡터를 찾는데 사용될 수도 있다. 유사하게, 현재 픽처의 이웃 블록이고 또한 병합 후보인 이전에 코딩된 블록이 초기 모션 벡터를 찾는데 사용될 수도 있다.
따라서, 초기 모션 벡터를 생성하기 위해 병합 후보 리스트에서의 병합 후보들을 사용하는 것이 또한 가능할 수도 있다. 일 예에 있어서, 1 초과의 공간 후보가 이용가능하면, 체크 순서는 초기 모션 벡터를 생성하기 위해 공간 후보들에 의해 사용되는 레퍼런스 픽처들에 의존할 수도 있다. 다른 예에 있어서, 1 초과의 병합 후보가 이용가능하면, 체크 순서는 병합 후보 리스트에서의 후보들의 순서에 의존할 수도 있다. 또 다른 예에 있어서, 1 초과의 병합 후보가 이용가능하면, 이전에 디코딩된 픽처에서의 시간 후보가 현재 코딩 픽처에서의 공간 후보 전에 체크된다. 코딩 효율을 위해, 다른 예에 있어서, 1 초과의 병합 후보가 이용가능하면, 현재 코딩 픽처에서의 공간 후보가 이전에 디코딩된 픽처에서의 시간 전에 체크된다.
초기 모션 벡터가 이웃 블록들의 모션 벡터의 함수에 의해 생성될 수도 있는 상기 예들에 있어서, 이웃 블록들의 모션 벡터를 명백히 사용하는 것 이외에 사용되는 다른 변형들이 존재할 수도 있다. 예를 들어, 이웃 블록들의 모션 벡터의 메디안 값이 초기 모션 벡터로서 사용될 수도 있다. 다른 변형에 있어서, 이웃 블록들의 모션 벡터들의 평균 값이 초기 모션 벡터일 수도 있다.
본 개시에서의 기법들로, ATMVP 모드 내의 모드인 병합 모드에 있어서, 모션 벡터는 리스트에 추가될 수도 있으며 다른 모션 벡터 (예컨대, 초기 모션 벡터) 를 예측하는데 사용될 수도 있다. 병합 후보들에 의해 사용된 레퍼런스들의 POC들이 상이하면, 모션 벡터들은 병치된 레퍼런스 픽처 (526) 로 스케일링될 수도 있다.
예를 들어, 406AMV (예 406A 와 유사함) 에 대해, 병치된 레퍼런스 픽처를 포인팅하는 공간 병합 후보의 모션 벡터는 가장 높은 우선순위를 갖는 초기 모션 벡터로서 구현될 수도 있다. 편의상, "MV" 는, ATMVP 모드가 병합 모드에 있을 경우 예 406A - 예 406E 의 적용 가능성을 명백히 설명하기 위해, 예 406A - 예 406E 에서의 참조 라벨들에 부가된다.
예 406AMV 에서의 초기 모션 벡터가 발견될 수 없으면, (예 406B 와 유사한) 다른 예, 406BMV 는, 병치된 레퍼런스 픽처 (526) 로 스케일링 (예컨대, 보간 또는 외삽) 될 수 있는 공간 병합 후보의 모션 벡터를 포함할 수도 있다. (보간되든지 또는 외삽되든지) 스케일링된 모션 벡터는 초기 모션 벡터로서 구현될 수도 있으며, 그 체크는 예 406AMV 보다 낮은 우선순위를 가질 수도 있다.
예 406AMV 또는 예 406BMV 에서의 체크들이 초기 벡터가 발견되는 것을 야기하지 않으면, 다른 예에 있어서, 공간 병합 후보의 모션 벡터가 외삽을 이용하여 병치된 레퍼런스 픽처로 스케일링될 수도 있는 (예 406C 와 유사한) 406CMV 가, 도 5d 에 예시된 바와 같이 초기 모션 벡터로서 취급된다. 예 406CMV 는 예 406AMV 및 예 406BMV 중 어느 하나보다 낮은 우선순위 체크로서 구현될 수도 있다.
예 406AMV, 406BMV, 또는 406CMV 에서의 다양한 구현들에 대해 매칭이 발견되지 않는 것이 가능하다. 그러한 경우, 즉, (예 406D 와 유사한) 예 406DMV 에 있어서, 판정 체크 (406D) 는 (i) 먼저 (현재 픽처에서의 현재 블록의 이웃 블록들이 아닌) 다른 MV들을 스케일링하고 (ii) 다른 스케일링된 MV들이 초기 MV 를 찾기 위해 병치된 픽처를 포인팅하는지를 체크할 수도 있다. 스케일링된 다른 모션 벡터들 중 하나가 병치된 픽처를 포인팅하면, 스케일링된 다른 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터일 수도 있다. 예 406DMV 는 예 406AMV, 예 406BMV, 또는 예 406CMV 중 어느 하나보다 낮은 우선순위 체크로서 구현될 수도 있다.
예 406AMV, 406BMV, 406CMV, 또는 406DMV 에서의 다양한 구현들에 대해 매칭이 발견되지 않는 것이 가능하다. 그러한 경우, 즉, (예 406E 와 유사한) 예 406EMV 에 있어서, 판정 체크 (406E) 는, 모든 이웃 블록의 모션 벡터들이 실패하였으면, 디폴트 모션 벡터 (즉, 모션 벡터 (0,0)) 가 초기 MV 를 찾기 위해 병치된 픽처를 포인팅하도록 체크될 수도 있다.
매칭이 존재하면, 디폴트 모션 벡터는 병치된 레퍼런스 픽처를 포인팅하고, 개선된 단계 1 및 단계 2 는 개선된 단계 3 으로 안내된다. 그 다음, 디폴트 모션 벡터는 (도 5d 에 예시된 바와 같이) 초기 모션 벡터가 된다. 따라서, 초기 모션 벡터를 찾기 위한 판정 체크는 병치된 레퍼런스 픽처를 포인팅하기 위해 디폴트 모션 벡터를 사용하는 것을 포함할 수도 있다.
예 406AMV, 예 406BMV, 예 406CMV, 예 406DMV, 및 예 406EMV 에 대한 변형들이 존재함을 유의해야 한다. 하나의 변형에 있어서, 1 초과의 병합 후보들이 이용가능하면, 체크 순서는 병합 후보 리스트에서의 후보들의 순서에 의존할 수도 있다. 다른 변형에 있어서, 1 초과의 병합 후보들이 이용가능하면, 체크 순서는 후보들의 타입들에 의존할 수도 있다. 시간 후보들이 먼저 체크될 수도 있고, 그 다음, 공간 후보들이 체크될 수도 있거나; 또는, 대안적으로, 공간 후보들이 먼저 체크될 수도 있고, 그 다음, 시간 후보들이 체크될 수도 있다. 다른 변형에 있어서, 병합 후보들의 MV들의 메디안 값이 초기 모션 벡터로서 사용될 수도 있으며, 즉, 초기 모션 벡터는 적어도 2개의 이전의 코딩된 블록들의 모션 벡터들의 평균 값일 수도 있다. 일반적으로, 초기 모션 벡터는 적어도 2개의 모션 벡터들의 비교에 기초할 수도 있다. 다른 변형에 있어서, 초기 모션 벡터는 적어도 3개의 이전의 코딩된 블록들의 모션 벡터들의 메디안 값일 수도 있다. 다른 변형에 있어서, 병합 후보들의 MV들의 평균 값이 초기 MV 로서 사용될 수도 있다. 이전 예들 또는 변형들 중 일부에 있어서, 병합 후보들에 의해 사용된 레퍼런스들의 POC들이 상이하면, MV들은 병치된 레퍼런스 픽처로 스케일링될 수도 있다.
도 5d 에 예시된 바와 같이, 초기 모션 벡터는 병치된 레퍼런스 픽처 (526) 에서의 블록 (또는 서브-블록) 의 포지션을 포인팅할 수도 있다. 병치된 레퍼런스 픽처 (526) 에서의 모션 벡터들 (606A-606D) 은 현재 픽처 (526) 에서의 현재 블록의 포지션과 연관된 서브 블록들에 대해 도출될 수도 있다. 도시된 4개의 모션 벡터들 (606A-606D) 이 있고 이들 4개의 모션 벡터들 (606A-606D) 이 제 1 도출된 모션 벡터들이지만, 오직 하나의 제 1 도출된 모션 벡터 (606x) 만이 존재할 수도 있으며, 여기서, X = A, B, C 또는 D 이다. 그와 같이, 병치된 레퍼런스 픽처 (526) 에서의 연관된 블록은 제 1 도출된 모션 벡터들을 갖는 서브-블록들을 포함한다. 초기 모션 벡터는 판정 체크에 기초하여 결정될 수도 있다. 일부 실시형태들에 있어서, 초기 모션 벡터는 예 406A, 406B, 406C, 406D, 또는 예 406E 에 의해 결정될 수도 있다. 대안적인 실시형태에 있어서, 초기 모션 벡터는 예 406AMV, 406BMV, 406CMV, 406DMV, 또는 예 406EMV 에 의해 결정될 수도 있다.
제 1 도출된 모션 벡터들은 스케일링되거나 또는 사용될 수도 있다. 예를 들어, 제 1 도출된 모션 벡터들 (606A-606D) 중 하나 이상은 다른 픽처에서의 다른 블록을 포인팅할 수도 있다. 다른 블록은 다른 모션 벡터 (즉, 제 2 도출된 모션 벡터) 를 포함할 수도 있다. 병치된 레퍼런스 픽처와 다른 픽처 사이의 시간적 거리는 서로 인접하지 않을 수도 있다. 병치된 레퍼런스 픽처와 다른 픽처의 거리는 병치된 레퍼런스 픽처 및 다른 픽처의 픽처 순서 카운트 (POC) 값들에 기초하여 계산될 수도 있다. 그와 같이, 제 1 도출된 모션 벡터들은 스케일링될 수도 있다. 병치된 레퍼런스 픽처 및 다른 픽처가 서로 인접하는 사례들에 있어서, 제 1 도출된 모션 벡터는 제 2 도출된 모션 벡터를 생성하기 위해 사용 (예컨대, 카피 또는 참조) 될 수도 있다. 적어도 하나의 제 1 도출된 모션 벡터 (606A, 606B, 606C, 또는 606D) 가 스케일링되는 경우에 있어서, 스케일링된 제 1 도출된 모션 벡터들은 다른 픽처에서 적어도 하나의 제 2 도출된 모션 벡터를 생성하기 위해 현재 픽처의 현재 블록에 적용될 수도 있다. 다른 픽처는 현재 코딩 픽처일 수도 있다. 더욱이, 적어도 하나의 제 2 도출된 모션 벡터 (도시 안됨) 는 인터-방향에 기초하여 다른 픽처 (예컨대, 현재 코딩 픽처일 수도 있음) 를 포인팅할 수도 있다. 인터-방향은 일 블록으로부터 다른 블록으로의 모션 벡터를 리스트 0 또는 리스트 1 에 포함할 수도 있다 (상기 논의된 바와 같음). 따라서, 적어도 하나의 제 2 도출된 모션 벡터는 리스트 0 또는 리스트 1 에서의 다른 블록을 포인팅할 수도 있으며, 리스트 0 또는 리스트 1 내에서, 현재 코딩 픽처는 이들 2개의 리스트들 중 하나에 포함될 수도 있다. 다른 블록은 현재 코딩 픽처에서의 현재 블록일 수도 있다.
부가적으로, 병치된 레퍼런스 픽처는 레퍼런스 인덱스를 갖는 레퍼런스 픽처일 수도 있으며, 레퍼런스 인덱스는 다수의 값들, 예컨대, 0, 1, 2, 3 등을 가질 수도 있다. 편의상, 레퍼런스 인덱스는 0 의 디폴트 값일 수도 있다. 병치된 레퍼런스 픽처에서의 연관된 블록의 적어도 하나의 제 1 도출된 모션 벡터는 병치된 레퍼런스 픽처에 관한 현재 픽처에서의 현재 블록의 POC 에 따라 스케일링될 수도 있음을 유의해야 한다.
병치된 레퍼런스 픽처 (526) 는 HEVC 에서 정의된 것과 동일할 수도 있거나, 또는 상이한 픽처가 시퀀스 레벨, 픽처 레벨, 슬라이스 레벨, 또는 블록 레벨에서 인코더로부터 디코더로 시그널링될 수도 있다. 예를 들어, 병치된 레퍼런스 픽처는 시퀀스 파라미터 세트 (SPS), 픽처 파라미터 세트 (PPS), 슬라이스 헤더 (SH), 코딩 트리 유닛 (CTU) 또는 코딩 유닛 (CU) 에서 시그널링될 수도 있다.
도 6 은 본 개시에서 설명된 기법들의 다양한 양태들을 수행함에 있어서 도 1 및 도 8 의 비디오 디코더 (30) 의 예시적인 동작을 예시한 플로우차트이다. 도 6 의 예에 도시된 바와 같이, 비디오 디코더 (30) 는 본 개시의 기법들에 따라 비디오 데이터를 디코딩하도록 구성될 수도 있다.
비디오 디코더 (30) 는 비디오 데이터를 저장하기 위한 메모리 (예컨대, 도 8 에서의 DPB (1316)), 및 어느 픽처가 병치된 픽처인지를 결정 (250) 하도록 구성된 프로세서를 포함하도록 구성될 수도 있다. 부가적으로, 프로세서는, 병치된 픽처에서의 연관된 블록과 현재 코딩 픽처에서의 현재 블록 사이의 초기 모션 벡터를 찾기 위해 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록에 대응하는 병치된 픽처에서의 비디오 데이터의 연관된 블록의 위치를 결정하도록 구성될 수도 있고, 여기서, 비디오 데이터의 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함한다 (252). 프로세서는 또한, 판정 체크에 기초하여 초기 모션 벡터를 결정하도록 구성될 수도 있다 (254). 프로세서는 또한, 병치된 픽처에서의 연관된 블록과 연관되는 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하도록 구성될 수도 있다. 프로세서는 또한, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록의 모션 정보를 결정하고 (256), 예측 블록을 획득하기 위해 결정된 모션 정보를 사용하고, 그 다음, 예측 블록과 잔차 블록의 조합에 기초하여 복원된 블록을 생성하도록 구성될 수도 있다 (258).
도 7 은 본 개시의 기법들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 를 예시한 블록 다이어그램이다. 도 8 은 설명의 목적들로 제공되며, 본 개시에서 넓게 예시화되고 설명된 바와 같은 기법들을 한정하는 것으로 고려되지 않아야 한다. 본 개시의 기법들은 다양한 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 7 의 예에 있어서, 비디오 인코더 (20) 는 예측 프로세싱 유닛 (1200), 비디오 데이터 메모리 (1201), 잔차 생성 유닛 (1202), 변환 프로세싱 유닛 (1204), 양자화 유닛 (1206), 역양자화 유닛 (1208), 역변환 프로세싱 유닛 (1210), 복원 유닛 (1212), 필터 유닛 (1214), 디코딩된 픽처 버퍼 (1216), 및 엔트로피 인코딩 유닛 (1218) 을 포함한다. 예측 프로세싱 유닛 (1200) 은 인터-예측 프로세싱 유닛 (1220) 을 포함한다.
비디오 데이터 메모리 (1201) 는, 비디오 인코더 (20) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장하도록 구성될 수도 있다. 비디오 데이터 메모리 (1201) 에 저장된 비디오 데이터는, 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (1216) 는, 예컨대, 인트라 또는 인터 코딩 모드들에서 비디오 인코더 (20) 에 의해 비디오 데이터를 인코딩함에 있어서 사용하기 위한 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (1201) 및 디코딩된 픽처 버퍼 (1216) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (1201) 및 디코딩된 픽처 버퍼 (1216) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에 있어서, 비디오 데이터 메모리 (1201) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 온-칩형이거나 또는 그들 컴포넌트들에 대하여 오프-칩형일 수도 있다. 비디오 데이터 메모리 (1201) 는 도 1 의 저장 매체들 (19) 과 동일하거나 그 부분일 수도 있다.
인터-예측 프로세싱 유닛 (1220) 은 현재 블록에 대한 예측 데이터를 생성할 수도 있다. 현재 블록에 대한 예측 데이터를 생성하는 것의 부분으로서, 인터-예측 프로세싱 유닛 (1220) 은 현재 블록에 대해 인터 예측을 수행할 수도 있다. 현재 블록에 대한 예측 데이터는, 상기 설명된 바와 같은 현재 블록의 예측 블록들 및 현재 블록에 대한 모션 정보를 포함할 수도 있다. 인터-예측 프로세싱 유닛 (1220) 은, 본 개시의 다른 곳에서 설명된 바와 같이, 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하기 위해 코딩된 이웃 블록들의 모션 정보를 사용하기 위한 기법들을 적용할 수도 있다.
잔차 생성 유닛 (1202) 은, 잔차 블록들에서의 각각의 샘플이 현재 블록의 코딩 블록에서의 샘플과 현재 블록의 대응하는 선택된 예측 블록에서의 대응하는 샘플 간의 차이와 동일한 값을 갖도록 현재 블록의 잔차 블록들을 생성할 수도 있다.
변환 프로세싱 유닛 (1204) 은 현재 블록의 잔차 블록들을 현재 블록의 변환 블록들로 파티셔닝하는 것을 수행할 수도 있다. 양자화 유닛 (1206) 은 계수 블록에 있어서의 변환 계수들을 양자화할 수도 있다.
역양자화 유닛 (1208) 및 역변환 프로세싱 유닛 (1210) 은, 각각, 계수 블록에 역양자화 및 역변환들을 적용하여, 그 계수 블록으로부터 잔차 블록을 복원할 수도 있다. 복원 유닛 (1212) 은 복원된 잔차 블록을, 예측 프로세싱 유닛 (1200) 에 의해 생성된 하나 이상의 예측 블록들로부터의 대응하는 샘플들에 가산하여, 현재 블록과 연관된 복원된 변환 블록을 생성할 수도 있다. 이러한 방식으로 각각의 현재 블록에 대한 변환 블록들을 복원함으로써, 비디오 인코더 (20) 는 현재 블록의 코딩 블록들을 복원할 수도 있다.
필터 유닛 (1214) 은 하나 이상의 디블록킹 (deblocking) 동작들을 수행하여, 현재 블록과 연관된 코딩 블록들에서의 블록킹 아티팩트들을 감소시킬 수도 있다. 디코딩된 픽처 버퍼 (1216) 는, 필터 유닛 (1214) 이 복원된 코딩 블록들에 대해 하나 이상의 디블록킹 동작들을 수행한 이후 복원된 코딩 블록들을 저장할 수도 있다. 본 개시에서 설명된 기법들로, 인터-예측 프로세싱 유닛 (1220) 은, 다른 픽처들의 현재 블록들에 대해 인터 예측을 수행하기 위해 복원된 코딩 블록들을 포함하는 레퍼런스 픽처 대신, 다른 픽처들의 현재 블록들에 대해 인터 예측을 수행하기 위해 복원된 코딩 블록들을 포함하는 병치된 레퍼런스 픽처를 사용할 수도 있다. 이는, DPB (1216) 가 코딩된 각각의 블록에 대한 각각의 레퍼런스 인덱스를 저장해야 하는 것은 아니기 때문에, 메모리 효율적인 시스템을 허용한다.
엔트로피 인코딩 유닛 (1218) 은 비디오 인코더 (20) 의 다른 기능 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (1218) 은 양자화 유닛 (1206) 으로부터 계수 블록들을 수신할 수도 있고, 예측 프로세싱 유닛 (1200) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (1218) 은 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행하여 엔트로피 인코딩된 데이터를 생성할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (1218) 은 CABAC 동작, 컨텍스트 적응형 가변 길이 코딩 (CAVLC) 동작, V2V (variable-to-variable) 길이 코딩 동작, 신택스 기반 컨텍스트 적응형 바이너리 산술 코딩 (SBAC) 동작, 확률 인터벌 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 인코딩 동작, 또는 다른 타입의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩 유닛 (1218) 에 의해 생성된 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 그 비트스트림은, 현재 블록에 대한 변환 계수들의 값들을 나타내는 데이터를 포함할 수도 있다.
비디오 인코더 (20) 의 다양한 컴포넌트들은 본 명세서에서 설명된 기법들을 실행할 수도 있고, 비디오 데이터를 인코딩하기 위해 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하기 위해 코딩된 이웃 블록들의 모션 정보를 활용할 수도 있다. 그 다음, 비디오 인코더 (20) 는 예측 블록 및 현재 블록을 사용하여 잔차 데이터를 생성할 수도 있다.
도 8 은 본 개시의 기법들을 구현하도록 구성된 예시적인 비디오 디코더 (30) 를 예시한 블록 다이어그램이다. 도 8 은 설명의 목적들로 제공되며, 본 개시에서 넓게 예시화되고 설명된 바와 같은 기법들에 대해 한정하는 것은 아니다. 설명의 목적들로, 본 개시는 JEM 코딩의 맥락에서, 및 JEM 코딩을 개선하기 위한 제안의 맥락에서 비디오 디코더 (30) 를 기술한다. 하지만, 본 개시의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 8 의 예에 있어서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (1300), 비디오 데이터 메모리 (1301), 예측 프로세싱 유닛 (1302), 역양자화 유닛 (1304), 역변환 프로세싱 유닛 (1306), 복원 유닛 (1308), 필터 유닛 (1310), 및 디코딩된 픽처 버퍼 (1312) 를 포함한다. 예측 프로세싱 유닛 (1302) 은 모션 보상 유닛 (1314) 및 인트라-예측 프로세싱 유닛 (1316) 을 포함한다. 다른 예들에 있어서, 비디오 디코더 (30) 는 더 많거나, 더 적거나, 또는 상이한 기능 컴포넌트들을 포함할 수도 있다.
현재 블록이 인터 예측을 이용하여 인코딩되면, 모션 보상 유닛 (1314) 은 현재 블록에 대한 모션 정보를 결정할 수도 있다. 모션 보상 유닛 (1314) 은, 현재 블록의 모션 정보에 기초하여, 병치된 레퍼런스 픽처에서의 연관된 블록과 현재 코딩 픽처 (즉, 디코딩 디바이스에 의해 디코딩 프로세스를 참조할 때 디코딩 픽처) 에서의 현재 블록 사이의 초기 모션 벡터를 찾기 위해 현재 픽처에서의 하나 이상의 이전에 디코딩된 블록들을 결정할 수도 있으며, 여기서, 비디오 데이터의 연관된 블록은 적어도 하나의 도출된 모션 벡터를 포함한다.
모션 보상 유닛 (1314) 은 초기 모션 벡터를 생성하기 위해 코딩된 이웃 블록들의 모션 정보를 사용하기 위한 기법들을 적용하고, 병치된 레퍼런스 픽처에서의 연관된 블록과 연관되는 적어도 제 1 도출된 모션 벡터에 기초하여 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정할 수도 있다.
더욱이, 모션 보상 유닛 (1314) 은 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 현재 코딩 픽처에서의 비디오 데이터의 현재 블록의 모션 정보를 결정하고, 예측 블록 (또는 컬러 당 예측 블록들, 즉, 루마, CB 및 Cr 블록들) 을 획득하기 위해 결정된 모션 정보를 사용할 수도 있다.
복원 유닛 (1308) 은 현재 블록에 대한 변환 블록들 (예컨대, 루마, Cb, 및 Cr 변환 블록들) 및 현재 블록의 예측 블록들 (예컨대, 루마, Cb, 및 Cr 블록들) 을 사용하며, 현재 블록에 대한 코딩 블록들 (예컨대, 루마, Cb, 및 Cr 코딩 블록들) 을 복원하기 위한 차이 값 (예컨대, 잔차 블록) 을 생성할 수도 있다. 필터 유닛 (1310) 은 디블록킹 동작을 수행하여, 현재 블록의 코딩 블록들과 연관된 블록킹 아티팩트들을 감소시킬 수도 있다. 비디오 디코더 (30) 는 현재 블록의 코딩 블록들을 디코딩된 픽처 버퍼 (1312) 에 저장할 수도 있다.
병합 모드에 있어서, 비디오 디코더 (30) 는 현재 블록에 대한 이전에 코딩된 공간 이웃들의 하나 이상의 모션 벡터들을 현재 블록에 대한 통합된 병합 후보 리스트로 사용할 수도 있다. 그와 같이, 현재 블록에 대한 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하기 위해 코딩된 이웃 블록들의 모션 정보를 사용함에 있어서, 비디오 디코더 (30) 는, 현재 블록에 대한 통합된 병합 후보 리스트에서의 제 1 모션 벡터에 기초하여 현재 블록에 대한 예측 블록을 생성하기 위해 병치된 레퍼런스 픽처에서의 대응하는 블록을 포인팅하는데 사용될 수도 있는 초기 모션 벡터를 생성하기 위해 코딩된 이웃 블록들의 모션 정보를 사용할 수도 있다.
본 개시에서의 기법들은 또한, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하는 수단을 포함하는 장치에 적용가능할 수도 있음을 유의해야 하며, 그 장치는, 어느 픽처가 병치된 픽처인지를 결정하는 수단, 및 병치된 픽처에서의 연관된 블록과 현재 코딩 픽처에서의 현재 블록 사이의 초기 모션 벡터를 찾기 위해 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록에 대응하는 병치된 픽처에서의 비디오 데이터의 연관된 블록의 위치를 결정하는 것으로서, 비디오 데이터의 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함하는, 상기 연관된 블록의 위치를 결정하고, 병치된 픽처에서의 연관된 블록과 연관되는 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 초기 mv 가 병치된 픽처를 포인팅할 경우, 현재 코딩 픽처에서의 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하는 수단을 포함한다. 그 장치는 또한, 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 현재 코딩 픽처에서의 비디오 데이터의 현재 블록의 모션 정보를 결정하는 수단, 예측 블록을 획득하기 위해 결정된 모션 정보를 사용하는 수단, 및 예측 블록과 잔차 블록의 조합에 기초하여 복원된 블록을 생성하는 수단을 포함할 수도 있다.
본 개시에서 설명된 기법들은, 다른 표준을 포함한 다른 비디오 코딩 프로세스들 또는 현재 개발 중이거나 아직 개발되지 않은 전매특허의 비디오 코딩 프로세스들에 대해 유용할 수도 있다.
본 개시에서 설명된 바와 같은 비디오 코더는 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 유사하게, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 마찬가지로, 비디오 코딩은, 적용가능할 때, 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다. 본 개시에 있어서, 어구 "기초하여" 는 오직 기초하여, 적어도 부분적으로 기초하여, 또는 일부 방식으로 기초하여를 나타낼 수도 있다. 본 개시는 용어 "비디오 유닛" 또는 "비디오 블록" 또는 "블록" 을 사용하여, 하나 이상의 샘플 블록들 및 하나 이상의 샘플 블록들의 샘플들을 코딩하는데 사용된 신택스 구조들을 지칭할 수도 있다.
예에 의존하여, 본 명세서에서 설명된 기법들의 임의의 특정 작동들 또는 이벤트들은 상이한 시퀀스로 수행될 수 있고, 전체적으로 부가되거나 병합되거나 또는 제거될 수도 있음 (예컨대, 설명된 모든 작동들 또는 이벤트들이 그 기법들의 실시를 위해 필수적인 것은 아님) 이 인식되어야 한다. 더욱이, 특정 예들에 있어서, 작동들 또는 이벤트들은 순차적인 것보다는, 예컨대, 다중-스레딩된 프로세싱, 인터럽트 프로세싱, 또는 다중의 프로세서들을 통해 동시에 수행될 수도 있다.
하나 이상의 예들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 전송되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예컨대, 통신 프로토콜에 따라 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다. 컴퓨터 프로그램 제품이 컴퓨터 판독가능 매체를 포함할 수도 있다.
한정이 아닌 예로서, 그러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 커넥션이 컴퓨터 판독가능 매체로 적절히 명명된다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 라인 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 하지만, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 커넥션들, 캐리어파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않지만 대신 비일시적인 유형의 저장 매체들로 지향됨이 이해되어야 한다. 본 명세서에서 사용된 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크(disk)들은 통상적으로 데이터를 자기적으로 재생하지만 디스크(disc)들은 레이저들을 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 별도의 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는 본 명세서에서 설명된 기법들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 구조를 지칭할 수도 있다. 부가적으로, 일부 양태들에 있어서, 본 명세서에서 설명된 기능은 인코딩 및 디코딩을 위해 구성되거나 또는 결합된 코덱에서 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 세트 (예컨대, 칩 세트) 를 포함하여, 광범위하게 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 적합한 소프트웨어 및/또는 펌웨어와 함께 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하여 코덱 하드웨어 유닛으로 결합되거나 또는 상호운용식 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
본 개시의 다양한 예들이 설명되었다. 설명된 시스템들, 동작들, 또는 기능들의 임의의 조합이 고려된다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (40)

  1. 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스로서,
    비디오 데이터를 저장하도록 구성된 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는,
    어느 픽처가 병치된 픽처인지를 결정하고;
    상기 병치된 픽처에서의 연관된 블록과 상기 현재 코딩 픽처에서의 상기 현재 블록 사이의 초기 모션 벡터를 찾기 위해 상기 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 상기 현재 코딩 픽처에서의 비디오 데이터의 상기 현재 블록에 대응하는 상기 병치된 픽처에서의 상기 비디오 데이터의 상기 연관된 블록의 위치를 결정하는 것으로서, 상기 비디오 데이터의 상기 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함하는, 상기 병치된 픽처에서의 상기 비디오 데이터의 상기 연관된 블록의 위치를 결정하고;
    상기 병치된 픽처에서의 상기 연관된 블록과 연관되는 상기 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 초기 mv 가 상기 병치된 픽처를 포인팅할 경우, 상기 현재 코딩 픽처에서의 상기 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하고;
    상기 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 상기 현재 코딩 픽처에서의 비디오 데이터의 상기 현재 블록의 모션 정보를 결정하고;
    예측 블록을 획득하기 위해 결정된 상기 모션 정보를 사용하고; 그리고
    상기 예측 블록과 잔차 블록의 조합에 기초하여 복원된 블록을 생성하도록
    구성되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  2. 제 1 항에 있어서,
    상기 초기 모션 벡터는 판정 체크에 기초하여 결정되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  3. 제 1 항에 있어서,
    상기 병치된 픽처에서의 상기 연관된 블록은 상기 적어도 하나의 제 1 도출된 모션 벡터를 갖는 서브-블록들을 포함하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 제 1 도출된 모션 벡터는 스케일링되거나 또는 사용되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  5. 제 4 항에 있어서,
    적어도 스케일링된 제 1 도출된 모션 벡터는 적어도 하나의 제 2 도출된 모션 벡터를 생성하기 위해 현재 픽처의 상기 현재 블록에 적용되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  6. 제 5 항에 있어서,
    적어도 제 2 도출된 모션 벡터는 인터-방향에 기초하여 픽처를 포인팅하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  7. 제 1 항에 있어서,
    병치된 레퍼런스 픽처는 레퍼런스 인덱스를 갖는 레퍼런스 픽처인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  8. 제 7 항에 있어서,
    상기 레퍼런스 인덱스는 0 인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  9. 제 2 항에 있어서,
    상기 연관된 블록의 적어도 제 1 도출된 모션 벡터는 병치된 레퍼런스 픽처에 있고, 상기 병치된 레퍼런스 픽처에 관한 상기 현재 블록의 픽처 순서 카운트에 따라 스케일링되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  10. 제 2 항에 있어서,
    이전에 코딩된 블록은 현재 픽처의 이웃 블록이고 병합 후보인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  11. 제 2 항에 있어서,
    1 초과의 병합 후보가 이용가능하면, 체크 순서는 병합 후보 리스트에서의 후보들의 순서에 의존하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  12. 제 11 항에 있어서,
    1 초과의 병합 후보가 이용가능하면, 이전에 디코딩된 픽처에서의 시간 후보가 상기 현재 코딩 픽처에서의 공간 후보 전에 체크되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  13. 제 11 항에 있어서,
    1 초과의 병합 후보가 이용가능하면, 상기 현재 코딩 픽처에서의 공간 후보는 이전에 디코딩된 픽처에서의 시간 전에 체크되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  14. 제 2 항에 있어서,
    현재 픽처의 이웃 블록은 병합 후보가 아닌, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  15. 제 2 항에 있어서,
    상기 초기 모션 벡터를 찾기 위한 상기 판정 체크는 고정된 순서에 기초하고, 상기 고정된 순서는 상기 비디오 데이터의 현재 픽처의 상기 현재 블록 이전에 이전의 디코딩된 블록들을 체크하는 것인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  16. 제 15 항에 있어서,
    상기 판정 체크는 병치된 레퍼런스 픽처를 포인팅하는 상기 초기 모션 벡터를 찾기 위한 가장 높은 우선순위로서 구현되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  17. 제 2 항에 있어서,
    상기 초기 모션 벡터를 찾기 위한 상기 판정 체크는 이전의 디코딩된 블록들의 모션 벡터의 모션 벡터에 대한 스케일링 동작에 기초하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  18. 제 17 항에 있어서,
    상기 스케일링 동작은 상기 현재 코딩 픽처에서의 상기 이전의 디코딩된 블록들의 모션 벡터의 보간 또는 외삽을 포함하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  19. 제 18 항에 있어서,
    상기 판정 체크에서의 상기 스케일링 동작은 병치된 레퍼런스 픽처를 포인팅하는 초기 모션 벡터를 찾기 위한 가장 높은 우선순위가 아닌, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  20. 제 2 항에 있어서,
    상기 초기 모션 벡터를 찾기 위한 상기 판정 체크는 상기 현재 코딩 픽처에서의 이전의 디코딩된 블록들의 모션 벡터인지의 체크에 기초하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  21. 제 20 항에 있어서,
    제 21 항의 상기 판정 체크는 병치된 레퍼런스 픽처를 포인팅하는 초기 모션 벡터를 찾기 위한 가장 높은 우선순위가 아닌, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  22. 제 2 항에 있어서,
    상기 초기 모션 벡터를 찾기 위한 상기 판정 체크는 상기 현재 코딩 픽처에서의 상기 현재 블록의 이웃 블록들이 아닌 다른 모션 벡터들의 스케일 및 스케일링된 상기 다른 모션 벡터들이 병치된 레퍼런스 픽처를 포인팅하는지의 체크를 포함하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  23. 제 22 항에 있어서,
    제 24 항의 상기 판정 체크는 병치된 레퍼런스 픽처를 포인팅하는 초기 모션 벡터를 찾기 위한 가장 높은 우선순위가 아닌, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  24. 제 2 항에 있어서,
    상기 초기 모션 벡터를 찾기 위한 상기 판정 체크는 병치된 레퍼런스 픽처를 포인팅하기 위해 디폴트 모션 벡터를 사용하는 것을 포함하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  25. 제 2 항에 있어서,
    이전의 코딩된 블록은 이웃 블록이고, 병합 모드에서의 병합 후보가 아닌, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  26. 제 2 항에 있어서,
    이전의 코딩된 블록은 이웃 블록이고, 병합 모드에서의 병합 후보인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  27. 제 1 항에 있어서,
    상기 초기 모션 벡터는 적어도 2개의 이전의 코딩된 블록들의 모션 벡터들의 평균 값인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  28. 제 1 항에 있어서,
    상기 초기 모션 벡터는 적어도 3개의 이전의 코딩된 블록들의 모션 벡터들의 메디안 값인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  29. 제 1 항에 있어서,
    상기 초기 모션 벡터는 적어도 2개의 모션 벡터들의 비교에 기초하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 디바이스.
  30. 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법으로서,
    어느 픽처가 병치된 픽처인지를 결정하는 단계;
    상기 병치된 픽처에서의 연관된 블록과 상기 현재 코딩 픽처에서의 상기 현재 블록 사이의 초기 모션 벡터를 찾기 위해 상기 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 상기 현재 코딩 픽처에서의 비디오 데이터의 상기 현재 블록에 대응하는 상기 병치된 픽처에서의 상기 비디오 데이터의 상기 연관된 블록의 위치를 결정하는 단계로서, 상기 비디오 데이터의 상기 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함하는, 상기 병치된 픽처에서의 상기 비디오 데이터의 상기 연관된 블록의 위치를 결정하는 단계;
    상기 병치된 픽처에서의 상기 연관된 블록과 연관되는 상기 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 초기 mv 가 상기 병치된 픽처를 포인팅할 경우, 상기 현재 코딩 픽처에서의 상기 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하는 단계;
    상기 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 상기 현재 코딩 픽처에서의 비디오 데이터의 상기 현재 블록의 모션 정보를 결정하는 단계;
    예측 블록을 획득하기 위해 결정된 상기 모션 정보를 사용하는 단계; 및
    상기 예측 블록과 잔차 블록의 조합에 기초하여 복원된 블록을 생성하는 단계를 포함하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  31. 제 30 항에 있어서,
    상기 초기 모션 벡터는 판정 체크에 기초하여 결정되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  32. 제 31 항에 있어서,
    병치된 레퍼런스 픽처에서의 상기 연관된 블록은 상기 적어도 하나의 제 1 도출된 모션 벡터를 갖는 서브-블록들을 포함하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  33. 제 32 항에 있어서,
    상기 적어도 하나의 제 1 도출된 모션 벡터는 스케일링되거나 또는 사용되는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  34. 제 33 항에 있어서,
    적어도 하나의 제 2 도출된 모션 벡터를 생성하기 위해 적어도 하나의 스케일링된 제 1 도출된 모션 벡터를 현재 픽처의 상기 현재 블록에 적용하는 단계인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  35. 제 34 항에 있어서,
    상기 적어도 하나의 제 2 도출된 모션 벡터는 인터-방향에 기초하여 픽처를 포인팅하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  36. 제 30 항에 있어서,
    병치된 레퍼런스 픽처는 레퍼런스 인덱스를 갖는 레퍼런스 픽처인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  37. 제 30 항에 있어서,
    레퍼런스 인덱스는 0 인, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  38. 제 30 항에 있어서,
    상기 초기 모션 벡터를 찾기 위한 판정 체크는 상기 현재 코딩 픽처에서의 이전의 디코딩된 블록들의 모션 벡터인지의 체크에 기초하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 방법.
  39. 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 장치로서,
    어느 픽처가 병치된 픽처인지를 결정하는 수단;
    상기 병치된 픽처에서의 연관된 블록과 상기 현재 코딩 픽처에서의 상기 현재 블록 사이의 초기 모션 벡터를 찾기 위해 상기 현재 코딩 픽처에서의 이전에 디코딩된 블록들을 사용하는 것에 기초하여, 상기 현재 코딩 픽처에서의 비디오 데이터의 상기 현재 블록에 대응하는 상기 병치된 픽처에서의 상기 비디오 데이터의 상기 연관된 블록의 위치를 결정하는 수단으로서, 상기 비디오 데이터의 상기 연관된 블록은 적어도 하나의 제 1 도출된 모션 벡터를 포함하는, 상기 병치된 픽처에서의 상기 비디오 데이터의 상기 연관된 블록의 위치를 결정하는 수단;
    상기 병치된 픽처에서의 상기 연관된 블록과 연관되는 상기 적어도 하나의 제 1 도출된 모션 벡터에 기초하여, 초기 mv 가 상기 병치된 픽처를 포인팅할 경우, 상기 현재 코딩 픽처에서의 상기 현재 블록과 연관되는 적어도 하나의 제 2 도출된 모션 벡터를 결정하는 수단;
    상기 적어도 하나의 제 2 도출된 모션 벡터에 기초하여 상기 현재 코딩 픽처에서의 비디오 데이터의 상기 현재 블록의 모션 정보를 결정하는 수단;
    예측 블록을 획득하기 위해 결정된 상기 모션 정보를 사용하는 수단; 및
    상기 예측 블록과 잔차 블록의 조합에 기초하여 복원된 블록을 생성하는 수단을 포함하는, 현재 코딩 픽처에서의 비디오 데이터의 현재 블록을 디코딩하기 위한 장치.
  40. 명령들을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 경우, 하나 이상의 프로세서들로 하여금 제 30 항 내지 제 38 항 중 어느 한 항에 기재된 방법의 임의의 조합을 수행하게 하는, 컴퓨터 판독가능 저장 매체.
KR1020207026080A 2018-03-19 2018-03-19 어드밴스드 시간 모션 벡터 예측에 대한 개선들 KR102579526B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/079458 WO2019178721A1 (en) 2018-03-19 2018-03-19 Improvements to advanced temporal motion vector prediction

Publications (2)

Publication Number Publication Date
KR20200128036A true KR20200128036A (ko) 2020-11-11
KR102579526B1 KR102579526B1 (ko) 2023-09-15

Family

ID=67988279

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207026080A KR102579526B1 (ko) 2018-03-19 2018-03-19 어드밴스드 시간 모션 벡터 예측에 대한 개선들

Country Status (8)

Country Link
US (1) US20210099724A1 (ko)
EP (1) EP3769528A4 (ko)
KR (1) KR102579526B1 (ko)
CN (1) CN111869214A (ko)
BR (1) BR112020018716A2 (ko)
SG (1) SG11202007843YA (ko)
TW (1) TW201941612A (ko)
WO (1) WO2019178721A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113196771B (zh) 2018-12-21 2023-12-22 北京字节跳动网络技术有限公司 基于运动矢量精度的运动矢量范围
WO2024027802A1 (en) * 2022-08-05 2024-02-08 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170131448A (ko) * 2015-03-27 2017-11-29 퀄컴 인코포레이티드 비디오 코딩에서의 서브-블록들에 대한 모션 정보 유도

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4114859B2 (ja) * 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
JP2012191298A (ja) * 2011-03-09 2012-10-04 Fujitsu Ltd 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
AU2015200360B2 (en) * 2011-09-09 2017-01-12 Kt Corporation Method for deriving a temporal predictive motion vector, and apparatus using the method
CN107347160B (zh) * 2011-11-18 2020-04-28 谷歌技术控股有限责任公司 针对高效率视频代码化用信号发送并置图片的显式方式
US9826244B2 (en) * 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
WO2015139205A1 (en) * 2014-03-18 2015-09-24 Mediatek Singapore Pte. Ltd. An improved method for collocated picture in video coding
WO2015143603A1 (en) * 2014-03-24 2015-10-01 Mediatek Singapore Pte. Ltd. An improved method for temporal motion vector prediction in video coding
WO2016165069A1 (en) * 2015-04-14 2016-10-20 Mediatek Singapore Pte. Ltd. Advanced temporal motion vector prediction in video coding
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10477238B2 (en) * 2016-09-07 2019-11-12 Qualcomm Incorporated Sub-PU based bi-directional motion compensation in video coding
US10523934B2 (en) * 2017-05-31 2019-12-31 Mediatek Inc. Split based motion vector operation reduction
EP4351139A3 (en) * 2017-06-09 2024-05-15 Electronics and Telecommunications Research Institute Video encoding/decoding method and device, and recording medium storing bit stream
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US11184636B2 (en) * 2017-06-28 2021-11-23 Sharp Kabushiki Kaisha Video encoding device and video decoding device
GB2563943B (en) * 2017-06-30 2021-02-24 Canon Kk Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses
EP3791586A1 (en) * 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
US20200014931A1 (en) * 2018-07-06 2020-01-09 Mediatek Inc. Methods and Apparatuses of Generating an Average Candidate for Inter Picture Prediction in Video Coding Systems
US11057617B2 (en) * 2018-08-03 2021-07-06 Tencent America LLC Method and apparatus for video coding
WO2020084512A1 (en) * 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Affine motion information derivation from neighboring block

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170131448A (ko) * 2015-03-27 2017-11-29 퀄컴 인코포레이티드 비디오 코딩에서의 서브-블록들에 대한 모션 정보 유도

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jianle Chen ET AL, Algorithm Description of Joint Exploration Test Model 7 (JEM 7), JVET of ITU-T and ISO/IEC, JVET-G1001 v1(2017.08.19.)* *
Sungwon Lee ET AL, EE2.6: Modification of Merge candidate derivation: ATMVP simplification and Merge pruning, JVET of ITU-T and ISO/IEC, JVET-C0035 v1(2016.5.16.)* *

Also Published As

Publication number Publication date
US20210099724A1 (en) 2021-04-01
BR112020018716A2 (pt) 2020-12-29
CN111869214A (zh) 2020-10-30
EP3769528A1 (en) 2021-01-27
KR102579526B1 (ko) 2023-09-15
SG11202007843YA (en) 2020-10-29
EP3769528A4 (en) 2021-11-10
WO2019178721A1 (en) 2019-09-26
TW201941612A (zh) 2019-10-16

Similar Documents

Publication Publication Date Title
US10652571B2 (en) Advanced motion vector prediction speedups for video coding
US11082687B2 (en) Motion vector prediction for affine motion models in video coding
US11363288B2 (en) Motion vector generation for affine motion model for video coding
US11172229B2 (en) Affine motion compensation with low bandwidth
US11297340B2 (en) Low-complexity design for FRUC
US10856003B2 (en) Coding affine prediction motion information for video coding
US11425387B2 (en) Simplified local illumination compensation
CN107534766B (zh) 于视频译码中针对子块推导运动信息方法、装置
US11082708B2 (en) Multiple-model local illumination compensation
US20190208211A1 (en) Generated affine motion vectors
US10542280B2 (en) Encoding optimization with illumination compensation and integer motion vector restriction
WO2020056798A1 (zh) 一种视频编解码的方法与装置
US20130070854A1 (en) Motion vector determination for video coding
US20210099724A1 (en) Improvements to advanced temporal motion vector prediction

Legal Events

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