KR102437696B1 - 비디오 코딩을 위한 모션 벡터 예측 - Google Patents

비디오 코딩을 위한 모션 벡터 예측 Download PDF

Info

Publication number
KR102437696B1
KR102437696B1 KR1020217039525A KR20217039525A KR102437696B1 KR 102437696 B1 KR102437696 B1 KR 102437696B1 KR 1020217039525 A KR1020217039525 A KR 1020217039525A KR 20217039525 A KR20217039525 A KR 20217039525A KR 102437696 B1 KR102437696 B1 KR 102437696B1
Authority
KR
South Korea
Prior art keywords
mvp
neighboring blocks
spatial neighboring
block
obtaining
Prior art date
Application number
KR1020217039525A
Other languages
English (en)
Other versions
KR20210153139A (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 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드
Priority to KR1020227029347A priority Critical patent/KR20220122802A/ko
Publication of KR20210153139A publication Critical patent/KR20210153139A/ko
Application granted granted Critical
Publication of KR102437696B1 publication Critical patent/KR102437696B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/172Methods 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 picture, frame or field
    • 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/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

비디오 신호를 디코딩하는 방법, 장치, 및 비-일시적 컴퓨터-판독가능 저장 매체가 제공된다. 방법은, 비디오 신호로부터 비디오 블록을 획득하는 단계, 비디오 블록에 기반하여 공간적 이웃 블록들을 획득하는 단계, 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된 모션 벡터 예측자(MVP)를 획득하는 단계, 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득하는 단계, 디코더에서, 공간적 이웃 블록들로부터 유도되는 스케일링된 MVP들을 선택할 가능성을 감소시킴으로써, 비디오 블록, 다수의 좌측 공간적 이웃 블록들, 다수의 상부측 공간적 이웃 블록들에 기반하여, MVP 후보 리스트를 유도하는 단계, MVP 후보 리스트에 기반하여 베스트 MVP를 수신하는 단계, 및 베스트 MVP에 기반하여 비디오 블록의 예측 신호를 획득하는 단계를 포함한다.

Description

비디오 코딩을 위한 모션 벡터 예측
본 출원은, 2019년 6월 13일자로 출원된 가출원 제62/861,315호에 기반하고 이를 우선권으로 주장하며, 이 가출원의 전체 내용은 그 전체가 인용에 의해 본원에 포함된다.
본 개시내용은 비디오 코딩 및 압축에 관한 것이다. 더 구체적으로, 본 개시내용은 비디오 코딩에서의 모션 벡터 예측을 위한 방법들 및 장치에 관한 것이다.
비디오 데이터를 압축하기 위해 다양한 비디오 코딩 기법들이 사용될 수 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준들에 따라 수행된다. 예를 들어, 비디오 코딩 표준들은 VVC(versatile video coding), JEM(joint exploration test model), 고효율 비디오 코딩(H.265/HEVC), 고급 비디오 코딩(H.264/AVC), MPEG(moving picture experts group) 코딩 등을 포함한다. 비디오 코딩은 일반적으로, 비디오 이미지들 또는 시퀀스들에 존재하는 리던던시(redundancy)를 이용하는 예측 방법들(예를 들어, 인터-예측,인트라-예측 등)을 활용한다. 비디오 코딩 기법들의 중요한 목표는 비디오 품질에 대한 저하들을 피하거나 최소화하면서 더 낮은 비트 레이트를 사용하는 형태로 비디오 데이터를 압축하는 것이다.
본 개시내용의 예들은 비디오 코딩에서의 모션 벡터 예측을 위한 방법들 및 장치를 제공한다.
본 개시내용의 제1 양상에 따라, 비디오 신호를 디코딩하는 방법이 제공된다. 방법은, 디코더에서, 비디오 신호로부터 비디오 블록을 획득하는 단계를 포함할 수 있다. 방법은, 디코더에서, 비디오 블록에 기반하여 공간적 이웃 블록(spatial neighboring block)들을 획득하는 단계를 더 포함할 수 있다. 공간적 이웃 블록들은 다수의 좌측(left) 공간적 이웃 블록들 및 다수의 상부측(above) 공간적 이웃 블록들을 포함할 수 있다. 방법은, 디코더에서, 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된(non-scaled) 모션 벡터 예측자(MVP: motion vector predictor)를 획득하는 단계를 포함할 수 있다. 방법은 또한, 디코더에서, 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득하는 단계를 포함할 수 있다. 방법은, 디코더에서 그리고 공간적 이웃 블록들로부터 유도되는 스케일링된 MVP들을 선택할 가능성을 감소시킴으로써, 비디오 블록, 다수의 좌측 공간적 이웃 블록들, 다수의 상부측 공간적 이웃 블록들에 기반하여, MVP 후보 리스트(candidate list)를 유도하는 단계를 포함할 수 있다. MVP 후보 리스트는 최대 하나의 좌측 비스케일링된 MVP 및 최대 하나의 상부측 비스케일링된 MVP를 포함할 수 있다. 방법은 부가적으로, 디코더에서, MVP 후보 리스트에 기반하여, 베스트(best) MVP를 수신하는 단계를 포함할 수 있다. 인코더는 MVP 후보 리스트로부터 베스트 MVP를 선택한다. 방법은, 디코더에서, 베스트 MVP에 기반하여 비디오 블록의 예측 신호를 획득하는 단계를 포함할 수 있다.
본 개시내용의 제2 양상에 따라, 비디오 신호를 디코딩하기 위한 컴퓨팅 디바이스가 제공된다. 컴퓨팅 디바이스는 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행가능한 명령들을 저장하는 비-일시적 컴퓨터-판독가능 메모리를 포함할 수 있다. 하나 이상의 프로세서들은 비디오 신호로부터 비디오 블록을 획득하도록 구성될 수 있다. 하나 이상의 프로세서들은 추가로, 비디오 블록에 기반하여 공간적 이웃 블록들을 획득하도록 구성될 수 있다. 공간적 이웃 블록들은 다수의 좌측 공간적 이웃 블록들 및 다수의 상부측 공간적 이웃 블록들을 포함할 수 있다. 하나 이상의 프로세서들은 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된 모션 벡터 예측자(MVP)를 획득하도록 구성될 수 있다. 하나 이상의 프로세서들은 또한, 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득하도록 구성될 수 있다. 하나 이상의 프로세서들은, 공간적 이웃 블록들로부터 유도되는 스케일링된 MVP들을 선택할 가능성을 감소시킴으로써, 비디오 블록, 다수의 좌측 공간적 이웃 블록들, 다수의 상부측 공간적 이웃 블록들에 기반하여, MVP 후보 리스트를 유도하도록 구성될 수 있다. MVP 후보 리스트는 최대 하나의 좌측 비스케일링된 MVP 및 최대 하나의 상부측 비스케일링된 MVP를 포함할 수 있다. 하나 이상의 프로세서들은 부가적으로, MVP 후보 리스트에 기반하여 베스트 MVP를 수신하도록 구성될 수 있다. 인코더는 MVP 후보 리스트로부터 베스트 MVP를 선택한다. 하나 이상의 프로세서들은 베스트 MVP에 기반하여 비디오 블록의 예측 신호를 획득하도록 구성될 수 있다.
본 개시내용의 제3 양상에 따라, 명령들이 저장되어 있는 비-일시적 컴퓨터-판독가능 저장 매체가 제공된다. 명령들이 장치의 하나 이상의 프로세서들에 의해 실행되는 경우, 명령들은, 장치로 하여금, 디코더에서, 비디오 신호로부터 비디오 블록을 획득하는 것을 수행하게 할 수 있다. 명령들은, 장치로 하여금, 디코더에서, 비디오 블록에 기반하여 공간적 이웃 블록들을 획득하는 것을 수행하게 할 수 있다. 공간적 이웃 블록들은 다수의 좌측 공간적 이웃 블록들 및 다수의 상부측 공간적 이웃 블록들을 포함할 수 있다. 명령들은 추가로, 장치로 하여금, 디코더에서, 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된 모션 벡터 예측자(MVP)를 획득하는 것을 수행하게 할 수 있다. 명령들은, 장치로 하여금, 디코더에서, 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득하는 것을 수행하게 할 수 있다. 명령들은 부가적으로, 장치로 하여금, 디코더에서 그리고 공간적 이웃 블록들로부터 유도되는 스케일링된 MVP들을 선택할 가능성을 감소시킴으로써, 비디오 블록, 다수의 좌측 공간적 이웃 블록들, 다수의 상부측 공간적 이웃 블록들에 기반하여, MVP 후보 리스트를 유도하는 것을 수행하게 할 수 있다. MVP 후보 리스트는 최대 하나의 좌측 비스케일링된 MVP 및 최대 하나의 상부측 비스케일링된 MVP를 포함할 수 있다. 명령들은 또한, 장치로 하여금, 디코더에서, MVP 후보 리스트에 기반하여 베스트 MVP를 수신하는 것을 수행하게 할 수 있다. 인코더는 MVP 후보 리스트로부터 베스트 MVP를 선택한다. 명령들은 또한, 장치로 하여금, 디코더에서, 이력-기반 MVP들을 획득한 후 공간적 이웃 블록들로부터 유도되는 스케일링된 MVP들을 획득하게 할 수 있다.
본 명세서에 통합되고 그 일부를 구성하는 첨부 도면들은, 본 개시내용에 부합하는 예들을 예시하며, 그리고 설명과 함께, 본 개시내용의 원리들을 설명하는 역할을 한다.
도 1은 본 개시내용의 예에 따른 인코더의 블록도이다.
도 2는 본 개시내용의 예에 따른 디코더의 블록도이다.
도 3은 본 개시내용의 예에 따른, 공간적 MVP 후보들 및 시간적 MVP 후보들에 대한 후보 포지션들을 예시하는 다이어그램이다.
도 4는 본 개시내용의 예에 따른, 공간적 모션 벡터 후보들에 대한 모션 벡터 스케일링을 예시하는 다이어그램이다.
도 5는 본 개시내용의 예에 따른, 시간적 병합 후보들에 대한 모션 벡터 스케일링을 예시하는 다이어그램이다.
도 6은 본 개시내용의 예에 따른, 비디오 신호를 디코딩하는 방법이다.
도 7은 본 개시내용의 예에 따른, MVP 후보 리스트를 유도하는 방법이다.
도 8은 본 개시내용의 예에 따른, 사용자 인터페이스와 커플링된 컴퓨팅 환경을 예시하는 다이어그램이다.
이제 예시적인 구현들을 상세히 참조할 것이며, 이들의 예들은 첨부된 도면들에 예시되어 있다. 다음의 설명은, 달리 표현되지 않는 한, 상이한 도면들에서의 동일한 번호들이 동일한 또는 유사한 엘리먼트들을 표현하고 있는 첨부된 도면들을 참조한다. 실시예들의 다음의 설명에서 제시된 구현들이 본 개시내용과 부합하는 모든 구현들을 표현하는 것은 아니다. 대신, 이들은 단지, 첨부된 청구항들에 열거된 바와 같은, 본 개시내용과 관련된 양상들과 부합하는 장치들 및 방법들의 예들일 뿐이다.
본 개시내용에서 사용되는 용어는 단지 특정 실시예들을 설명하는 것을 목적으로 하며, 본 개시내용을 제한하도록 의도되지 않는다. 본 개시내용 및 첨부된 청구항들에서 사용되는 바와 같이, 단수 형태들은, 문맥상 명확하게 달리 표시되지 않는 한, 복수 형태들을 또한 포함하도록 의도된다. 본원에서 사용되는 "및/또는"이라는 용어는 연관되는 열거된 항목들 중 하나 이상의 항목들의 임의의 또는 모든 가능한 조합들을 의미하고 이를 포함하도록 의도된다는 것이 또한 이해될 것이다.
"제1", "제2", "제3" 등의 용어들이 본원에서 다양한 정보를 설명하기 위해 사용될 수 있지만, 정보는 이들 용어들에 의해 제한되지 않아야 한다는 것이 이해될 것이다. 이러한 용어들은 하나의 카테고리의 정보를 다른 카테고리의 정보와 구별하기 위해서만 사용된다. 예를 들어, 본 개시내용의 범위를 벗어나지 않는다면, 제1 정보가 제2 정보로 지칭될 수 있고; 그리고 유사하게, 제2 정보가 또한 제1 정보로 지칭될 수 있다. 본원에서 사용되는 바와 같이, "만약"이라는 용어는 문맥에 따라 "~하는 경우" 또는 "~할 때" 또는 "판단에 대한 응답으로"를 의미하는 것으로 이해될 수 있다.
비디오 코딩 시스템
개념적으로, 위에서 언급된 비디오 코딩 표준들은 유사하다. 예를 들어, 이들은 모두 블록-기반 프로세싱을 사용하고, 비디오 압축을 달성하기 위해 유사한 비디오 코딩 블록도를 공유한다.
도 1은 VVC을 위한 블록-기반 비디오 인코더의 일반적인 다이어그램을 도시한다. 구체적으로, 도 1은 전형적인 인코더(100)를 도시한다. 인코더(100)는 비디오 입력(110), 모션 보상부(112), 모션 추정부(114), 인트라/인터 모드 판단부(116), 블록 예측자(140), 가산기(128), 변환부(130), 양자화부(132), 예측 관련 정보(142), 인트라 예측부(118), 픽처 버퍼(120), 역양자화부(134), 역변환부(136), 가산기(126), 메모리(124), 루프내 필터(in-loop filter)(122), 엔트로피 코딩부(138), 및 비트스트림(144)을 갖는다.
인코더(100)에서, 비디오 프레임은 프로세싱을 위해 복수의 비디오 블록들로 파티셔닝된다(partitioned). 각각의 주어진 비디오 블록에 대해, 예측은, 인터 예측 접근법(inter prediction approach) 또는 인트라 예측 접근법(intra prediction approach)에 기반하여 형성된다.
현재 비디오 블록(비디오 입력(110)의 일부임)과 그의 예측자(블록 예측자(140)의 일부임) 간의 차이를 나타내는 예측 잔차(prediction residual)가 가산기(128)로부터 변환부(130)로 송신된다. 그런 다음, 변환 계수들이 엔트로피 감소를 위해 변환부(130)로부터 양자화부(132)로 송신된다. 그런 다음, 양자화된 계수들이 엔트로피 코딩부(138)에 공급되어, 압축된 비디오 비트스트림이 생성된다. 도 1에 도시된 바와 같이, 인트라/인터 모드 판단부(116)로부터의 예측 관련 정보(142), 이를테면 비디오 블록 파티션 정보, 모션 벡터(MV)들, 참조 픽처 인덱스(reference picture index), 및 인트라 예측 모드가 또한 엔트로피 코딩부(138)를 통해 공급되고, 압축된 비트스트림(144)에 저장된다. 압축된 비트스트림(144)은 비디오 비트스트림을 포함한다.
인코더(100)에서, 예측의 목적을 위해 픽셀들을 재구성하기 위해 디코더-관련 회로부들이 또한 필요하다. 먼저, 예측 잔차가 역양자화부(134) 및 역변환부(136)을 통해 재구성된다. 이러한 재구성된 예측 잔차는, 현재 비디오 블록에 대한 필터링되지 않은 재구성된 픽셀들을 생성하기 위해 블록 예측자(140)와 결합된다.
공간적 예측(또는 "인트라 예측")은, 현재 비디오 블록을 예측하기 위해, 현재 비디오 블록과 동일한 비디오 프레임에서 이미 코딩된 이웃 블록들의 샘플들(참조 샘플들로 지칭됨)로부터의 픽셀들을 사용한다.
시간적 예측(또한 "인터 예측"으로 지칭됨)은, 현재 비디오 블록을 예측하기 위해, 이미 코딩된 비디오 픽처들로부터의 재구성된 픽셀들을 사용한다. 시간적 예측은 비디오 신호에 내재된 시간적 리던던시를 감소시킨다. 주어진 CU(coding unit) 또는 코딩 블록에 대한 시간적 예측 신호는, 일반적으로 하나 이상의 MV들에 의해 시그널링되며, 이는 현재 CU와 그의 시간적 참조 간의 모션의 양(amount) 및 방향을 지시한다. 추가로, 다수의 참조 픽처들이 지원된다면, 하나의 참조 픽처 인덱스가 부가적으로 송신되며, 이는 참조 픽처 저장소 내의 어느 참조 픽처로부터 시간적 예측 신호가 나오는지를 식별하는 데 사용된다.
모션 추정부(114)는 픽처 버퍼(120)로부터의 신호 및 비디오 입력(110)을 취하고, 모션 추정 신호를 모션 보상부(112)에 출력한다. 모션 보상부(112)는 픽처 버퍼(120)로부터의 신호, 비디오 입력(110) 그리고 모션 추정부(114)로부터의 모션 추정 신호를 취하고, 모션 보상 신호를 인트라/인터 모드 판단부(116)에 출력한다.
공간적 및/또는 시간적 예측이 수행된 후, 인코더(100)의 인트라/인터 모드 판단부(116)는, 예를 들어, 레이트-왜곡 최적화 방법에 기반하여 베스트 예측 모드를 선정한다. 그런 다음, 블록 예측자(140)는 현재 비디오 블록으로부터 감산되고, 결과적인 예측 잔차는 변환부(130) 및 양자화부(132)를 사용하여 상관해제된다(de-correlated). 결과적인 양자화된 잔차 계수들은 역양자화부(134)에 의해 역양자화되고 역변환부(136)에 의해 역변환되어 재구성된 잔차를 형성하며, 이는, 이후, CU의 재구성된 신호를 형성하기 위해 예측 블록에 다시 부가된다. 추가의 루프내 필터링(122), 이를테면, 디블로킹 필터(deblocking filter), 적응적 샘플 오프셋(SAO: sample adaptive offset), 및/또는 적응적 루프내 필터(ALF: adaptive in-loop filter)가, 재구성된 CU가 픽처 버퍼(120)의 참조 픽처 저장소에 넣어지기 전에 재구성된 CU에 적용되어 미래의 비디오 블록들을 코딩하는 데 사용될 수 있다. 출력 비디오 비트스트림(144)을 형성하기 위해, 코딩 모드(인터 또는 인트라), 예측 모드 정보, 모션 정보 및 양자화된 잔차 계수들 모두가 엔트로피 코딩 유닛(138)에 송신되어 비트스트림을 형성하도록 추가로 압축되고 패킹된다.
인코더에서, 비디오 프레임은 프로세싱을 위해 블록들로 파티셔닝된다. 각각의 주어진 비디오 블록에 대해, 예측은, 인터 예측 또는 인트라 예측에 기반하여 형성된다. 인터 예측에서, 예측자들은, 이전에 재구성된 프레임들로부터의 픽셀들에 기반하여, 모션 추정 및 모션 보상을 통해 형성될 수 있다. 인트라 예측에서, 예측자들은 현재 프레임의 재구성된 픽셀들에 기반하여 형성될 수 있다. 모드 판단을 통해, 현재 블록을 예측하기 위한 베스트 예측자가 선정될 수 있다.
예측 잔차(즉, 현재 블록과 그의 예측자 간의 차이)가 변환 모듈에 송신된다. 그런 다음, 변환 계수들가 엔트로피 감소를 위해 양자화 모듈에 송신된다. 양자화된 계수들은 엔트로피 코딩 모듈에 공급되어, 압축된 비디오 비트스트림이 생성된다. 도 1에 도시된 바와 같이, 인터 및/또는 인트라 예측 모듈들로부터의 예측 관련 정보, 이를테면, 블록 파티션 정보, 모션 벡터들, 참조 픽처 인덱스 및 인트라 예측 모드 등이 또한 엔트로피 코딩 모듈을 거쳐가서 비트스트림에 저장된다.
인코더에서, 예측 목적들을 위해 픽셀들을 재구성하기 위해 디코더 관련 모듈들이 또한 필요하다. 먼저, 역양자화 및 역변환을 통해 예측 잔차가 재구성된다. 그러한 재구성된 예측 잔차는 현재 블록에 대한 필터링되지 않은 재구성된 픽셀들을 생성하기 위해 블록 예측자와 결합된다.
코딩 효율 및 시각적 품질을 향상시키기 위해, 통상 루프내 필터가 사용된다. 예를 들어, 디블로킹 필터는 AVC, HEVC뿐만 아니라 현재 VVC에서 이용가능하다. HEVC에서, 코딩 효율을 추가로 향상시키기 위해 SAO(sample adaptive offset)로 불리는 부가적인 루프내 필터가 정의된다. 최신 VVC에서, ALF(adaptive loop filter)로 불리는 또 다른 루프내 필터가 활발히 연구되고 있으며, 이는 최종 표준에 포함될 가능성이 높다.
도 2는 VVC를 위한 비디오 디코더의 일반적인 블록도를 도시한다. 구체적으로, 도 2는 전형적인 디코더(200) 블록도를 도시한다. 디코더(200)는, 비트스트림(210), 엔트로피 디코딩부(212), 역양자화부(214), 역변환부(216), 가산기(218), 인트라/인터 모드 선택부(220), 인트라 예측부(222), 메모리(230), 루프내 필터(228), 모션 보상부(224), 픽처 버퍼(226), 예측 관련 정보(234), 및 비디오 출력(232)을 갖는다.
디코더(200)는 도 1의 인코더(100)에 상주하는 재구성-관련 섹션과 유사하다. 디코더(200)에서, 인입 비디오 비트스트림(210)은 먼저 엔트로피 디코딩부(212)를 통해 디코딩되어, 양자화된 계수 레벨들 및 예측-관련 정보를 유도한다. 그런 다음, 양자화된 계수 레벨들은 재구성된 예측 잔차를 획득하기 위해 역양자화부(214) 및 역변환부(216)를 통해 프로세싱된다. 인트라/인터 모드 선택기(220)에서 구현되는 블록 예측자 메커니즘은, 디코딩된 예측 정보에 기반하여, 인트라 예측부(222) 또는 모션 보상부(224)를 수행하도록 구성된다. 한 세트의 필터링되지 않은 재구성된 픽셀들은, 합산기(218)를 사용하여, 역변환부(216)로부터의 재구성된 예측 잔차와 블록 예측자 메커니즘에 의해 생성된 예측 출력을 합산함으로써 획득된다.
재구성된 블록은 추가로, 참조 픽처 저장부로서 기능하는 픽처 버퍼(226)에 저장되기 전에 루프내 필터(228)를 거칠 수 있다. 픽처 버퍼(226) 내의 재구성된 비디오는 디스플레이 디바이스를 구동시키기 위해 송신될 뿐만 아니라, 미래의 비디오 블록들을 예측하는 데 사용될 수 있다. 루프내 필터(228)가 턴 온되는 상황들에서, 최종 재구성된 비디오 출력(232)을 유도하기 위해 이러한 재구성된 픽셀들에 대해 필터링 동작이 수행된다.
도 2는 이러한 표준들에 대한 통상적인 디코더 블록도를 도시한다. 이것이 인코더에 상주하는 재구성 관련 섹션과 거의 동일하다는 것을 알 수 있다.
디코더에서, 양자화된 계수 레벨들 및 예측 관련 정보를 유도하기 위해, 비트스트림이 먼저 엔트로피 디코딩 모듈을 통해 디코딩된다. 그런 다음, 양자화된 계수 레벨들은, 재구성된 예측 잔차를 획득하기 위해 역양자화 및 역변환 모듈들을 통해 프로세싱된다. 블록 예측자는 디코딩되는 예측 정보에 기반하여 인트라 예측 또는 모션 보상 프로세스를 통해 형성된다. 필터링되지 않은 재구성된 픽셀들은 재구성된 예측 잔차와 블록 예측자를 합산함으로써 획득된다. 루프내 필터가 턴 온되는 경우, 출력을 위한 최종 재구성된 비디오를 유도하기 위해 이러한 픽셀들에 대해 필터링 동작들이 수행된다.
다목적 비디오 코딩( VVC )
제10차 JVET 회의(2018년 4월 10일-20일, 미국 샌디에이고)에서, JVET는 VVC(Versatile Video Coding) 및 VTM1(VVC Test Model 1) 인코딩 방법의 첫 번째 초안을 정의했다. VVC의 초기 새로운 코딩 특징으로서 바이너리 및 터너리 분할 코딩 블록 구조를 사용하여 네스팅식 멀티-타입 트리(nested multi-type tree)를 갖는 쿼드트리를 포함하는 것이 결정되었다. 그 이후, 인코딩 방법 및 초안 VVC 디코딩 프로세스를 구현하기 위한 참조 소프트웨어 VTM이 JVET 회의 동안 개발되었다.
픽처 파티셔닝 구조는 입력 비디오를 CTU(coding tree unit)들로 불리는 블록들로 분할한다. CTU는 네스팅식 멀티-타입 트리 구조를 갖는 쿼드트리를 사용하여 CU(coding unit)들로 분할되며, 리프(leaf) 코딩 유닛(CU)은 동일한 예측 모드(예를 들어, 인트라 또는 인터)를 공유하는 구역을 정의한다. 이 문헌에서, '유닛'이라는 용어는 모든 컴포넌트들을 커버하는 이미지의 구역을 정의하고; '블록'이란 용어는, 특정 컴포넌트(예를 들어, 루마(luma))를 커버하는 구역을 정의하는 데 사용되 그리고 4:2:0과 같은 크로마(chroma) 샘플링 포맷을 고려할 때 공간적 위치가 상이할 수 있다.
VVC에서의 모션 벡터 예측
모션 벡터 예측은, 이웃 CU들의 모션 벡터의 공간적 및 시간적 상관을 이용하며, 이는 모션 파라미터들의 명시적 전송을 위해 사용된다. 이는, 먼저 좌측, 상부측, 및 시간적으로 이웃하는 블록 포지션들(아래에서 설명되는 도 3에 도시됨) 및 이력-기반 MV들의 이용가능성을 체크함으로써, 모션 벡터 예측자(MVP) 후보 리스트를 구성한다. 그런 다음, 이는 리던던트 후보들을 제거하고, 후보 리스트가 일정한 길이가 되도록 제로 벡터를 부가한다. 그런 다음, 인코더는, 후보 리스트로부터 베스트 예측자를 선택하고 그리고 선정된 후보를 지시하는 대응하는 인덱스를 전송할 수 있다. 그런 다음, 베스트 모션 벡터 후보의 인덱스가 비트스트림으로 인코딩된다. 다음의 섹션들에서는, MVP 후보들의 유도 프로세스에 대한 세부 사항들이 제공된다.
도 3은 공간적 MVP 후보들 A0, A1, B0, B1, 및 B2, 및 시간적 MVP 후보들 T0 및 T1에 대한 후보 포지션들을 도시한다.
모션 벡터 예측자 후보들의 유도
VVC에서, 다음의 후보들을 순서대로 포함시킴으로써, MVP 후보 리스트가 구성된다:
(1) 좌측 공간적 이웃 CU들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
(2) 좌측으로부터 비스케일링된 MVP가 이용가능하지 않다면, 좌측 공간적 이웃 CU들로부터 최대 하나의 스케일링된 MVP를 유도한다(A0→A1).
(3) 상부측 공간적 이웃 CU들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
(4) 이웃 블록 A0 및 A1 둘 모두가 인트라 모드들에서 이용가능하지 않거나 코딩되지 않는다면, 상부측 공간적 이웃 CU들로부터 최대 하나의 스케일링된 MVP를 유도한다(B0→B1→B2).
(5) 조건적 프루닝(Conditional Pruning).
(6) 시간적 병치된 CU들로부터 최대 하나의 MVP를 유도한다(T0→T1).
(7) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
(8) 최대 2개의 제로 MV들을 유도한다.
항목 5 "조건적 프루닝"은, 공간적 블록들로부터 유도되는 2개의 MVP 후보들이 있을 때 수행된다. 2개의 MVP 후보들은 서로 비교되고, 이들이 동일한 경우, 하나는 MVP 후보 리스트로부터 제거된다. 인터 MVP 리스트의 크기는 2로 고정된다. 인터 예측이지만 비-병합 모드로 코딩된 각각의 CU에 대해, 어느 MVP 후보가 사용되는지를 지시하기 위해 플래그(flag)가 코딩된다.
모션 벡터 예측에서, 3개의 타입들의 MVP 후보들: 공간적 MVP 후보, 시간적 MVP 후보, 및 이력-기반 MVP 후보가 고려된다. 공간적 MVP 후보 유도에 대해, 도 3에 도시된 바와 같이, 5개의 상이한 포지션들에 위치된 각각의 블록의 모션 벡터들에 기반하여, 최대 2개의 MVP 후보들이 유도된다. 시간적 MVP 후보 유도에 대해, 2개의 상이한 병치된 포지션들에 기반하여 도출되는 2개의 후보들로부터 최대 하나의 MVP 후보가 선택된다. MVP 후보들의 수가 2개보다 적으면, 부가적 제로 모션 벡터 후보들이 리스트에 부가되어 이를 2개로 만든다.
공간적 모션 벡터 예측자 후보들
공간적 모션 벡터 예측자 후보들의 유도에서, 최대 5개의 잠재적 후보들 중에서 최대 2개의 후보들이 선택될 수 있으며, 이들은 도 3에 도시된 바와 같이 위치된 블록들로부터 유도된다. 그러한 블록 포지션들은 병합 모드에 대한 MVP 후보들을 유도하기 위해 사용되는 포지션들과 동일하다. A0, A1을 포함하는, 현재 블록의 좌측에 위치된 그러한 블록들에 대해, 이들의 MV 체크 순서는 A0, A1 및 스케일링된 A0, 스케일링된 A1으로 정의된다. 여기서, 스케일링된 A0, 스케일링된 A1은 블록 A0, A1의 스케일링된 MV를 각각 지칭한다. B0, B1, B2를 포함하는, 현재 블록 상부측에 위치된 그러한 블록들에 대해, 이들의 MV 체크 순서는 B0, B1, B2, 스케일링된 B0, 스케일링된 B1, 스케일링된 B2로 정의된다. 각각의 측에 대해, 모션 벡터 후보를 유도하는 체크될 4개의 경우들이 있으며, 2개의 경우들에서는 공간적 MV 스케일링이 요구되지 않고, 다른 2개의 경우들에서는 공간적 MV 스케일링이 요구된다. 4개의 상이한 경우들은 다음과 같이 요약된다.
공간적 MV 스케일링이 요구되지 않는 경우들:
(1) 동일한 참조 픽처 리스트 및 동일한 참조 픽처 인덱스(동일한 POC)를 갖는 MV.
(2) 상이한 참조 픽처 리스트를 갖지만 동일한 참조 픽처(동일한 POC)를 갖는 MV.
공간적 MV 스케일링이 요구되는 경우들:
(3) 동일한 참조 픽처 리스트를 갖지만 상이한 참조 픽처(상이한 POC)를 갖는 MV.
(4) 상이한 참조 픽처 리스트를 갖고 상이한 참조 픽처(상이한 POC)를 갖는 MV.
비-공간적-MV-스케일링 경우들(위에서의 경우 1 및 경우 2)이 먼저 체크되고, 뒤이어 공간적 MV 스케일링이 요구되는 경우들(위에서의 경우 3 및 경우 4)이 체크된다. 더 구체적으로, MV에 대해, 체크 순서는 다음의 단계들에 따른다:
블록 A0, A1으로부터, 다음의 경우들을 순차적 순서로 체크함으로써 최대 하나의 MV 후보가 유도된다: A0 경우 1→A0 경우 2→A1 경우 1→A1 경우 2→A0 경우 3→A0 경우 4→A1 경우 3→A1 경우 4.
블록 B0, B1, B2로부터, 다음의 경우들을 순차적 순서로 체크함으로써 최대 하나의 MV 후보가 유도된다: B0 경우 1→B0 경우 2→B1 경우 1→B1 경우 2→B2 경우 1→B2 경우 2.
단계 1로부터 MV 후보가 유도되지 않으면, 블록 B0, B1, B2로부터, 다음의 경우들을 순차적 순서로 체크함으로써 최대 하나의 MV 후보가 유도된다: B0 경우 3→B0 경우 4→B1 경우 3→B1 경우 4→B2 경우 3→B2 경우 4.
MVP 후보들의 수가 2개보다 적으면, 부가적 제로 모션 벡터 후보들이 리스트에 부가되어 이를 2개로 만든다.
참조 픽처 리스트에 관계없이, 이웃 블록의 참조 픽처의 POC가 현재 블록의 POC와 상이한 경우 공간적 MV 스케일링이 필요하다. 위의 단계들에서 알 수 있는 바와 같이, 현재 블록의 좌측 면에 있는 블록들의 MV들이 이용가능하지 않다면(예를 들어, 블록들이 이용가능하지 않거나 또는 그러한 모든 블록들이 인트라 코딩되면), 현재 블록의 상부측 면에 있는 그러한 블록들의 모션 벡터에 대해 MV 스케일링이 허용된다. 그렇지 않은 경우, 상부측 블록들의 모션 벡터에 대해 공간적 MV 스케일링이 허용되지 않는다. 결과적으로, 전체 MV 예측 후보 유도 프로세스에서 최대 하나의 공간적 MV 스케일링만이 필요하다.
공간적 MV 스케일링 프로세스에서, 이웃 블록의 모션 벡터는, (아래에서 설명되는) 도 4에 도시된 바와 같이, 시간적 MV 스케일링에 대한 것과 유사한 방식으로 스케일링된다.
도 4는 공간적 모션 벡터 후보들에 대한 모션 벡터 스케일링의 예시를 도시한다. 예시는, 410 neigh_ref, 420 curr_ref, 430 curr_pic, 440 neigh_PU, 450 curr_PU, 460 tb, 및 470 td를 포함한다. 410 neigh_ref는 모션 벡터 스케일링에 사용되는 이웃 참조이다. 420 curr_ref는 모션 벡터 스케일링에 사용되는 현재 참조이다. 430 curr_pic는 모션 벡터 스케일링에 사용되는 현재 픽처이다. 440 neighbor_PU는 모션 벡터 스케일링에 사용되는 이웃 예측 유닛이다. 450 curr_PU는 모션 벡터 스케일링에 사용되는 현재 예측 유닛이다. 460 tb는 현재 픽처의 참조 픽처와 현재 픽처 간의 POC 차이이다. 470 td는 이웃 참조 픽처와 현재 픽처 간의 POC 차이이다.
공간적 모션 벡터 예측자 후보들
시간적 MVP 후보의 유도에서, 스케일링된 모션 벡터는 참조 픽처 리스트에서 이전에 코딩된 픽처의 병치된 블록들의 MV들로부터 유도된다. 시간적 MVP 후보를 유도하기 위한 병치된 블록들을 포함하는 픽처는 다음의 설명에서 "병치된 픽처(collocated picture)"로 지칭된다. 시간적 모션 후보를 유도하기 위해, 슬라이스 헤더의 명시적 플래그(collocated_from_l0_flag)가 먼저, 병치된 픽처가 리스트 0로부터 선택되는지 또는 리스트 1로부터 선택되는지 여부를 지시하기 위해 디코더에 송신된다. 시간적 모션 벡터 예측자 후보를 유도하기 위한 병치된 픽처로서 해당 리스트에서 어느 픽처가 선택되는지를 지시하기 위해, 병치된 참조 인덱스(collocated_ref_idx)가 추가로 송신된다. 표 1에 도시된 바와 같이, 시간적 MVP 후보의 L0 및 L1 MV들은 미리정의된 순서에 따라 독립적으로 유도된다.
표 1에서, CollocatedPictureList는, 병치된 픽처가 어느 예측 리스트에서 위치되는지를 지시하기 위해 시그널링되는 신택스이다. (아래에서 설명되는) 도 5에서 점선으로 예시된 바와 같이, 시간적 MVP 후보에 대한 스케일링된 모션 벡터가 획득된다. 이는 POC 거리들(tb 및 td)을 사용하여 병치된 블록의 선택된 모션 벡터에서 스케일링되며, 여기서 tb는 현재 픽처의 참조 픽처와 현재 픽처 간의 POC 차이인 것으로 정의되고, 그리고 td는 병치된 픽처의 참조 픽처와 병치된 픽처 간의 POC 차이인 것으로 정의된다. 시간적 병합 후보의 참조 픽처 인덱스는 제로와 동일하게 설정된다. 스케일링 프로세스의 실질적인 실현은 HEVC 사양에서 설명된다. B-슬라이스에 대해, 2개의 모션 벡터들(즉, 하나는 참조 픽처 리스트 0에 대한 것이고 다른 하나는 참조 픽처 리스트 1에 대한 것임)이 획득되고, 양방향-예측 병합 후보(bi-predictive merge candidate)를 만들기 위해 결합된다.
표 1. HEVC에서 TMVP에 대한 병치된 블록으로부터 시간적 MVP 후보를 유도하기 위한 알고리즘
Figure 112021139712695-pct00001
도 5는 시간적 병합 후보들에 대한 모션 벡터 스케일링의 예시를 도시한다. 예시는, 510 neigh_ref, 520 curr_ref, 530 curr_pic, 540 col_pic, 550 curr_PU, 560 col_PU, 570 tb, 및 580 td를 포함한다. 510 neigh_ref는 모션 벡터 스케일링에 사용되는 이웃 참조이다. 520 curr_ref는 모션 벡터 스케일링에 사용되는 현재 참조이다. 530 curr_pic는 모션 벡터 스케일링에 사용되는 현재 픽처이다. 540 col_pic는 모션 벡터 스케일링에 사용되는 병치된 픽처이다. 550 curr_PU는 모션 벡터 스케일링에 사용되는 현재 예측 유닛이다. 560 col_PU는 모션 벡터 스케일링에 사용되는 병치된 예측 유닛이다. 570 tb는 현재 픽처의 참조 픽처와 현재 픽처 간의 POC 차이이다. 580 td는 병치된 픽처의 참조 픽처와 병치된 픽처 간의 POC 차이이다.
병치된 픽처에서, 시간적 후보를 유도하기 위한 병치된 블록은, 도 3에 도시된 바와 같이, T0과 T1 사이에서 선택된다. 포지션 T0에서의 블록이 이용가능하지 않거나, 인트라 코딩되거나 또는 현재 CTU 외부에 있다면, 포지션 T1이 사용된다. 그렇지 않으면, 포지션 T0은 시간적 병합 후보의 유도에서 사용된다.
이력-기반 병합 후보 유도
HMVP(historical-based MVPs)는 공간적 MVP 및 TMVP 후에 병합 리스트에 부가된다. 이 방법에서, 테이블에 저장된 이전에 코딩된 블록의 모션 정보는 현재 블록에 대한 MVP로서 사용될 수 있다. 그러한 MVP는 HMVP로 불린다. 다수의 HMVP 후보들을 포함하는 테이블은 인코딩/디코딩 프로세스 동안 유지된다. 테이블은, 새로운 CTU 행이 발견되는 경우, 리셋된다(비워진다). CU가 비-서브블록 인터-예측 모드에서 코딩될 때마다, CU의 연관된 모션 정보는 새로운 HMVP 후보로서 테이블의 마지막 엔트리에 부가된다.
모션 벡터 예측을 위한 공간적 모션 벡터 스케일링
MVP의 현재 설계에서, 최대 하나의 스케일링된 공간적 MV 후보가 유도될 수 있다. MV 스케일링 프로세스는 그의 복잡성의 관점에서 중요하지 않기 때문에, MVP를 유도하는데 있어서 공간적 MV 스케일링을 사용할 가능성을 추가로 감소시키기 위해 새로운 방식이 설계되었다.
모션 벡터 예측 개선
본 개시내용에서, 복잡도 또는 코딩 효율의 관점에서 모션 벡터 예측을 개선하기 위해 몇몇 방법들이 제안된다. 제안된 방법들은 독립적으로 또는 공동으로 적용될 수 있다는 것이 주목된다.
도 6은, 본 개시내용에 따른, 비디오 신호를 디코딩하는 방법을 도시한다. 방법은, 예를 들어, 디코더에 적용될 수 있다.
단계(610)에서, 디코더는 비디오 신호로부터 비디오 블록을 획득할 수 있다.
단계(612)에서, 디코더는 비디오 블록에 기반하여 공간적 이웃 블록들을 획득할 수 있다. 예를 들어, 공간적 이웃 블록들은 다수의 좌측 공간적 이웃 블록들 및 다수의 상부측 공간적 이웃 블록들을 포함할 수 있다.
단계(614)에서, 디코더는, 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된 모션 벡터 예측자(MVP)를 획득할 수 있다.
단계(616)에서, 디코더는 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득할 수 있다
단계(618)에서, 디코더는, 공간적 이웃 블록들로부터 유도되는 스케일링된 MVP들을 선택할 가능성을 감소시킴으로써, 비디오 블록, 다수의 좌측 공간적 이웃 블록들, 다수의 상부측 공간적 이웃 블록들에 기반하여, MVP 후보 리스트를 유도할 수 있다. 예를 들어, MVP 후보 리스트는 최대 하나의 좌측 비스케일링된 MVP 및 최대 하나의 상부측 비스케일링된 MVP를 포함할 수 있다.
단계(620)에서, 디코더는 MVP 후보 리스트에 기반하여 베스트 MVP를 수신할 수 있으며, 인코더는 MVP 후보 리스트로부터 베스트 MVP를 선택한다. 일 예에서, 베스트 MVP는 비용 값에 기반하여 인코더에 의해 선택될 수 있다. 예를 들어, 일부 인코더 설계들에 대해, 인코더는 모션 추정에 의해 유도된 MV와 선택된 MVP 사이의 MV 차이를 유도하기 위해 각각의 MVP 후보를 사용할 수 있다. 각각의 MVP 후보에 대해, 비용 값은, 예를 들어, 선택된 MVP의 MVP 인덱스 및 MV 차이들의 비트들을 사용하여 계산된다. 베스트 비용 값(예를 들어, 최소 비용)을 갖는 것이 최종 MVP로서 선택되고, 그의 MVP 인덱스가 비트스트림으로 코딩된다.
단계(622)에서, 디코더는 베스트 MVP에 기반하여 비디오 블록의 예측 신호를 획득할 수 있다.
제1 양상에 따라, 스케일링된 MVP들을 선택/유도할 가능성을 감소시키기 위해, MVP 후보 리스트를 구성하는 경우, 스케일링된 공간적 MVP를 나중의 포지션에 두는 것이 제안된다. 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들과 동일하거나 상이할 수 있다.
일 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들과 동일하게 유지된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
5) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
6) 좌측 이웃 블록들로부터의 비스케일링된 MVP가 이용가능하지 않다면, 좌측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(A0→A1).
7) 이웃 블록들 A0 및 A1 중 어느 것도 이용가능하지 않거나 이들이 인트라 모드들에서 코딩된다면, 상부측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(B0→B1→B2).
8) 최대 2개의 제로 MV들을 유도한다.
다른 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들이 제거된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
5) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
6) 좌측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(A0→A1).
7) 상부측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(B0→B1→B2).
8) 최대 2개의 제로 MV들을 유도한다.
제3 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들로부터 수정된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
5) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
6) 좌측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(A0→A1).
7) 이웃 블록들 A0 및 A1 중 어느 것도 이용가능하지 않거나 이들이 인트라 모드들에서 코딩된다면, 상부측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(B0→B1→B2).
8) 최대 2개의 제로 MV들을 유도한다.
제4 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들로부터 수정된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
5) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
6) 좌측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(A0).
7) 좌측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(A1).
8) 상부측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(B0).
9) 상부측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(B1).
10) 상부측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(B2).
11) 최대 2개의 제로 MV들을 유도한다.
제2 양상에 따라, 스케일링된 MVP들을 선택/유도할 가능성을 감소시키기 위해, MVP 후보 리스트를 구성하는 경우, 시간적 MVP 및 스케일링된 공간적 MVP들 둘 다를 나중의 포지션에 두는 것이 제안된다. 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들과 동일하거나 상이할 수 있다.
일 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들과 동일하게 유지된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
5) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
6) 좌측 이웃 블록들로부터의 비스케일링된 MVP가 이용가능하지 않다면, 좌측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(A0→A1).
7) 이웃 블록들 A0 및 A1 중 어느 것도 이용가능하지 않거나 이들이 인트라 모드들에서 코딩된다면, 상부측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(B0→B1→B2).
8) 최대 2개의 제로 MV들을 유도한다.
다른 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들이 제거된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
5) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
6) 좌측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(A0→A1).
7) 상부측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(B0→B1→B2).
8) 최대 2개의 제로 MV들을 유도한다.
제3 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들로부터 수정된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
5) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
6) 좌측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(A0→A1).
7) 이웃 블록들 A0 및 A1 중 어느 것도 이용가능하지 않거나 이들이 인트라 모드들에서 코딩된다면, 상부측 공간적 이웃 블록들로부터 최대 하나의 스케일링된 MVP를 유도한다(B0→B1→B2).
8) 최대 2개의 제로 MV들을 유도한다.
제4 예에서, 공간적 이웃 블록들로부터 스케일링된 MVP를 유도하기 위한 조건들은 현재 VVC에서의 조건들로부터 수정된다. MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
5) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
6) 좌측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(A0).
7) 좌측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(A1).
8) 상부측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(B0).
9) 상부측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(B1).
10) 상부측 공간적 이웃 블록으로부터 최대 하나의 스케일링된 MVP를 유도한다(B2).
11) 최대 2개의 제로 MV들을 유도한다.
제3 양상에 따라, 스케일링된 MVP들을 선택/유도할 가능성을 감소시키기 위해, MVP 후보 리스트로부터, 스케일링된 공간적 MVP 후보들을 배제하는 것이 제안된다.
도 7은 본 개시내용에 따른, MVP 후보 리스트를 유도하는 방법을 도시한다. 방법은, 예를 들어, 디코더에 적용될 수 있다.
단계(710)에서, 디코더는, 공간적 이웃 블록들로부터 유도되는 2개의 MVP 동일 후보들이 존재하는 경우, MVP 후보 리스트로부터 2개의 MVP 동일 후보들 중 하나를 프루닝할 수 있다.
단계(712)에서, 디코더는 시간적 병치된 블록들로부터 최대 하나의 MVP를 획득할 수 있다. 시간적 병치된 블록들은 병치된 블록 T0 및 병치된 블록 T1을 포함한다.
단계(714)에서, 디코더는 FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 획득할 수 있다. FIFO 테이블은 이전에 코딩된 블록들을 포함한다.
단계(716)에서, 디코더는 0인 최대 2개의 MV들을 획득할 수 있다.
일 예에서, MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
5) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
6) 최대 2개의 제로 MV들을 유도한다.
다른 예에서, MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
5) 시간적 병치된 블록들로부터 최대 하나의 MVP를 유도한다(T0→T1).
6) 최대 2개의 제로 MV들을 유도한다.
제4 양상에 따라, 스케일링된 MVP들을 선택/유도할 가능성을 감소시키기 위해, MVP 후보 리스트로부터, 스케일링된 공간적 MVP 후보들 및 TMVP 둘 다를 배제하는 것이 제안된다.
일 예에서, MVP 후보 리스트는 하나 이상의 프로세서들을 사용하여 다음의 동작들을 수행함으로써 구성된다.
1) 좌측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(A0→A1).
2) 상부측 공간적 이웃 블록들로부터 최대 하나의 비스케일링된 MVP를 유도한다(B0→B1→B2).
3) 조건적 프루닝.
4) FIFO 테이블로부터 최대 2개의 이력-기반 MVP들을 유도한다.
5) 최대 2개의 제로 MV들을 유도한다.
위에서 예시된 모든 그러한 양상들 및/또는 예들에서, 유도 프로세스는, MVP 후보 리스트가 채워진(full) 경우, 중지된다는 것을 주목할 가치가 있다.
도 8은 사용자 인터페이스(860)와 커플링된 컴퓨팅 환경(810)을 도시한다. 컴퓨팅 환경(810)은 데이터 프로세싱 서버의 일부일 수 있다. 컴퓨팅 환경(810)은 프로세서(820), 메모리(840) 및 I/O 인터페이스(850)를 포함한다.
프로세서(820)는 전형적으로, 디스플레이, 데이터 획득, 데이터 통신들 및 이미지 프로세싱과 연관된 동작들과 같은, 컴퓨팅 환경(810)의 전체 동작들을 제어한다. 프로세서(820)는 위에서 설명된 방법들의 단계들 전부 또는 일부를 수행하기 위한 명령들을 실행하기 위한 하나 이상의 프로세서들을 포함할 수 있다. 더욱이, 프로세서(820)는 프로세서(820)와 다른 컴포넌트들 사이의 상호작용을 가능하게 하는 하나 이상의 모듈들을 포함할 수 있다. 프로세서는 중앙 프로세싱 유닛(CPU), 마이크로프로세서, 단일 칩 머신, GPU 등일 수 있다.
메모리(840)는 컴퓨팅 환경(810)의 동작을 지원하기 위해 다양한 타입들의 데이터를 저장하도록 구성된다. 메모리(840)는 미리결정된 소프트웨어(842)를 포함할 수 있다. 그러한 데이터의 예들은, 컴퓨팅 환경(810), 비디오 데이터 세트(video dataset)들, 이미지 데이터 등에서 동작되는 임의의 애플리케이션들 또는 방법들에 대한 명령들을 포함한다. 메모리(840)는, 임의의 타입의 휘발성 또는 비휘발성 메모리 디바이스들, 또는 이들의 조합, 이를테면, SRAM(static random access memory), EEPROM(electrically erasable programmable read-only memory), EPROM(erasable programmable read-only memory), PROM(programmable read-only memory), ROM(read-only memory), 자기 메모리, 플래시 메모리, 자기 또는 광학 디스크를 사용함으로써 구현될 수 있다.
I/O 인터페이스(850)는 주변 인터페이스 모듈들과 프로세서(820) 사이의 인터페이스, 이를테면 키보드, 클릭 휠, 버튼들 등을 제공한다. 버튼들은, 이로 제한되는 것은 아니지만, 홈 버튼, 스캔 시작 버튼, 및 스캔 중지 버튼을 포함할 수 있다. I/O 인터페이스(850)는 인코더 및 디코더와 커플링될 수 있다.
일부 실시예들에서, 위에서 설명된 방법들을 수행하기 위해, 컴퓨팅 환경(810)에서 프로세서(820)에 의해 실행가능한, 이를테면 메모리(840)에 포함된 복수의 프로그램들을 포함하는 비-일시적 컴퓨터-판독가능 저장 매체가 또한 제공된다. 예를 들어, 비-일시적 컴퓨터-판독가능 저장 매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 디바이스 등일 수 있다.
비-일시적 컴퓨터-판독가능 저장 매체는, 하나 이상의 프로세서들을 갖는 컴퓨팅 디바이스에 의한 실행을 위한 복수의 프로그램들을 내부에 저장하고 있고, 여기서, 하나 이상의 프로세서들에 의해 실행되는 경우, 복수의 프로그램들은, 컴퓨팅 디바이스로 하여금, 모션 예측을 위한 앞서 설명된 방법을 수행하게 한다.
일부 실시예들에서, 컴퓨팅 환경(810)은, 상기 방법들을 수행하도록, 하나 이상의 ASIC(application-specific integrated circuit)들, DSP(digital signal processor)들, DSPD(digital signal processing device)들, PLD(programmable logic device)들, FPGA(field-programmable gate array)들, GPU(graphical processing unit)들, 제어기들, 마이크로-제어기들, 마이크로프로세서들, 또는 다른 전자 컴포넌트들로 구현될 수 있다.
본 개시내용의 설명은 예시의 목적들로 제시되었으며, 본 개시내용을 총망라하거나 이에 제한되도록 의도되지 않는다. 전술한 설명들 및 연관된 도면들에 제시된 교시들의 이익을 갖는 많은 수정들, 변형들 및 대안적인 구현들이 당업자들에게 명백할 것이다.
본 개시내용의 원리들을 설명하고 그리고 당업자들이 다양한 구현들에 대한 본 개시내용을 이해하고 고려되는 특정 용도에 적합한 다양한 수정들로 기본 원리들 및 다양한 구현들을 가장 잘 활용할 수 있도록, 예들이 선정되고 설명되었다. 따라서, 본 개시내용의 범위가 개시된 구현들의 특정 예들로 제한되지 않아야 하고, 수정들 및 다른 구현들이 본 개시내용의 범위 내에 포함되도록 의도된다는 것이 이해되어야 한다.

Claims (36)

  1. 비디오 디코딩 방법으로서,
    비디오 신호로부터 코딩 블록을 획득하는 단계;
    상기 코딩 블록에 기반하여 복수의 공간적 이웃 블록(spatial neighboring block)들을 획득하는 단계 ―상기 복수의 공간적 이웃 블록들은 다수의 좌측(left) 공간적 이웃 블록들 및 다수의 상부측(above) 공간적 이웃 블록들을 포함함―;
    상기 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된(non-scaled) 모션 벡터 예측자(MVP: motion vector predictor)를 획득하는 단계;
    상기 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득하는 단계;
    FIFO(First In First Out) 테이블로부터 최대 2개의 이력-기반 MVP들을 획득하는 단계;
    MVP 후보 리스트(candidate list)로부터 스케일링된 공간적 MVP 후보를 제외함으로써, 상기 코딩 블록, 상기 다수의 좌측 공간적 이웃 블록들, 및 상기 다수의 상부측 공간적 이웃 블록들에 기반하여, 상기 MVP 후보 리스트를 유도하는 단계 ―상기 MVP 후보 리스트는 상기 최대 하나의 좌측 비스케일링된 MVP, 상기 최대 하나의 상부측 비스케일링된 MVP, 및 상기 최대 2개의 이력-기반 MVP들을 포함함―;
    상기 MVP 후보 리스트 내의 MVP를 지시하는 인덱스를 수신하는 단계; 및
    상기 인덱스에 의해 지시된 MVP에 기반하여 상기 코딩 블록의 예측 신호를 획득하는 단계
    를 포함하는, 비디오 디코딩 방법.
  2. 제1항에 있어서,
    상기 MVP 후보 리스트를 유도하는 단계는,
    상기 복수의 공간적 이웃 블록들로부터 유도되는 2개의 동일한 MVP 후보들이 존재하는 경우, 상기 MVP 후보 리스트로부터 상기 2개의 동일한 MVP 후보들 중 하나를 프루닝하는 단계;
    시간적 병치된 블록들로부터 최대 하나의 MVP를 획득하는 단계 ―상기 시간적 병치된 블록들은 하부 우측에 병치된 블록 T0 및 중앙에 병치된 블록 T1을 포함함―; 및
    0인 최대 2개의 MV들을 획득하는 단계
    를 포함하는, 비디오 디코딩 방법.
  3. 제1항에 있어서,
    상기 복수의 공간적 이웃 블록들은 하부 좌측 블록, 좌측 블록, 상부 우측 블록, 상부측 블록, 및 상부 좌측 블록을 포함하는, 비디오 디코딩 방법.
  4. 제2항에 있어서,
    시간적 모션 벡터 예측에 사용되는 병치된 픽처가 제1 참조 픽처 리스트로부터 유도되는지 제2 참조 픽처 리스트로부터 유도되는지를 지시하는 명시적 플래그(explicit flag)를 획득하는 단계를 더 포함하는 비디오 디코딩 방법.
  5. 제4항에 있어서,
    시간적 모션 벡터 예측에 사용되는 병치된 픽처의 참조 인덱스를 기술하는 병치된 참조 인덱스를 획득하는 단계를 더 포함하는 비디오 디코딩 방법.
  6. 제2항에 있어서,
    상기 시간적 병치된 블록들로부터 최대 하나의 MVP를 획득하는 단계는,
    상기 시간적 병치된 블록들로부터 유도된 MVP에 대해 모션 벡터 스케일링을 수행하는 단계를 포함하는, 비디오 디코딩 방법.
  7. 제6항에 있어서,
    상기 모션 벡터 스케일링은 현재 픽처와 상기 현재 픽처의 참조 픽처 간의 POC(picture order count) 차이, 및 병치된 픽처 및 상기 병치된 픽처의 참조 픽처 간의 POC 차이에 기반하여 수행되는, 비디오 디코딩 방법.
  8. 컴퓨팅 디바이스로서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행가능한 명령들을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체
    를 포함하며,
    상기 하나 이상의 프로세서는,
    비디오 신호로부터 코딩 블록을 획득하고;
    상기 코딩 블록에 기반하여 복수의 공간적 이웃 블록들을 획득하고 ―상기 복수의 공간적 이웃 블록들은 다수의 좌측 공간적 이웃 블록들 및 다수의 상부측 공간적 이웃 블록들을 포함함―;
    상기 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된 모션 벡터 예측자(MVP)를 획득하고;
    상기 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득하고;
    FIFO(First In First Out) 테이블로부터 최대 2개의 이력-기반 MVP들을 획득하고;
    MVP 후보 리스트(candidate list)로부터 스케일링된 공간적 MVP 후보를 제외함으로써, 상기 코딩 블록, 상기 다수의 좌측 공간적 이웃 블록들, 및 상기 다수의 상부측 공간적 이웃 블록들에 기반하여, 상기 MVP 후보 리스트를 유도하고 ―상기 MVP 후보 리스트는 상기 최대 하나의 좌측 비스케일링된 MVP, 상기 최대 하나의 상부측 비스케일링된 MVP, 및 상기 최대 2개의 이력-기반 MVP들을 포함함―;
    상기 MVP 후보 리스트 내의 MVP를 지시하는 인덱스를 수신하고; 그리고
    상기 인덱스에 의해 지시된 MVP에 기반하여 상기 코딩 블록의 예측 신호를 획득하도록
    구성되는, 컴퓨터 디바이스.
  9. 제8항에 있어서,
    상기 하나 이상의 프로세서는,
    상기 복수의 공간적 이웃 블록들로부터 유도되는 2개의 동일한 MVP 후보들이 존재하는 경우, 상기 MVP 후보 리스트로부터 상기 2개의 동일한 MVP 후보들 중 하나를 프루닝하고,
    시간적 병치된 블록들로부터 최대 하나의 MVP를 획득하고 ―상기 시간적 병치된 블록들은 하부 우측에 병치된 블록 T0 및 중앙에 병치된 블록 T1을 포함함―, 그리고
    0인 최대 2개의 MV들을 획득하는 것에 의해
    상기 MVP 후보 리스트를 유도하도록 구성되는,
    컴퓨터 디바이스.
  10. 제8항에 있어서,
    상기 복수의 공간적 이웃 블록들은 하부 좌측 블록, 좌측 블록, 상부 우측 블록, 상부측 블록, 및 상부 좌측 블록을 포함하는, 컴퓨터 디바이스.
  11. 제9항에 있어서,
    상기 하나 이상의 프로세서는 추가로, 시간적 모션 벡터 예측에 사용되는 병치된 픽처가 제1 참조 픽처 리스트로부터 유도되는지 제2 참조 픽처 리스트로부터 유도되는지를 지시하는 명시적 플래그(explicit flag)를 획득하도록 구성되는, 컴퓨터 디바이스.
  12. 제11항에 있어서,
    상기 하나 이상의 프로세서는 추가로, 시간적 모션 벡터 예측에 사용되는 병치된 픽처의 참조 인덱스를 기술하는 병치된 참조 인덱스를 획득하도록 구성되는, 컴퓨터 디바이스.
  13. 제9항에 있어서,
    상기 하나 이상의 프로세서는, 상기 시간적 병치된 블록들로부터 유도된 MVP에 대해 모션 벡터 스케일링을 수행하는 것에 의해, 상기 시간적 병치된 블록들로부터 최대 하나의 MVP를 획득하도록 구성되는, 컴퓨터 디바이스.
  14. 제13항에 있어서,
    상기 모션 벡터 스케일링은 현재 픽처와 상기 현재 픽처의 참조 픽처 간의 POC(picture order count) 차이, 및 병치된 픽처 및 상기 병치된 픽처의 참조 픽처 간의 POC 차이에 기반하여 수행되는, 컴퓨터 디바이스.
  15. 하나 이상의 프로세서를 갖는 컴퓨팅 디바이스에 의한 실행을 위한 비트스트림을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체로서,
    상기 비트스트림은, 상기 하나 이상의 프로세서에 의해 실행되는 경우, 상기 컴퓨팅 디바이스로 하여금,
    비디오 신호로부터 코딩 블록을 획득하는 동작;
    상기 코딩 블록에 기반하여 복수의 공간적 이웃 블록들을 획득하는 동작 ―상기 복수의 공간적 이웃 블록들은 다수의 좌측 공간적 이웃 블록들 및 다수의 상부측 공간적 이웃 블록들을 포함함―;
    상기 다수의 좌측 공간적 이웃 블록들에 기반하여 최대 하나의 좌측 비스케일링된 모션 벡터 예측자(MVP)를 획득하는 동작;
    상기 다수의 상부측 공간적 이웃 블록들에 기반하여 최대 하나의 상부측 비스케일링된 MVP를 획득하는 동작;
    FIFO(First In First Out) 테이블로부터 최대 2개의 이력-기반 MVP들을 획득하는 동작;
    MVP 후보 리스트(candidate list)로부터 스케일링된 공간적 MVP 후보를 제외함으로써, 상기 코딩 블록, 상기 다수의 좌측 공간적 이웃 블록들, 및 상기 다수의 상부측 공간적 이웃 블록들에 기반하여, 상기 MVP 후보 리스트를 유도하는 동작 ―상기 MVP 후보 리스트는 상기 최대 하나의 좌측 비스케일링된 MVP, 상기 최대 하나의 상부측 비스케일링된 MVP, 및 상기 최대 2개의 이력-기반 MVP들을 포함함―;
    상기 MVP 후보 리스트 내의 MVP를 지시하는 인덱스를 수신하는 동작; 및
    상기 인덱스에 의해 지시된 MVP에 기반하여 상기 코딩 블록의 예측 신호를 획득하는 동작
    을 포함하는 동작들을 수행하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 비트스트림은 추가로, 상기 컴퓨팅 디바이스로 하여금,
    상기 복수의 공간적 이웃 블록들로부터 유도되는 2개의 동일한 MVP 후보들이 존재하는 경우, 상기 MVP 후보 리스트로부터 상기 2개의 동일한 MVP 후보들 중 하나를 프루닝하는 동작,
    시간적 병치된 블록들로부터 최대 하나의 MVP를 획득하는 동작 ―상기 시간적 병치된 블록들은 하부 우측에 병치된 블록 T0 및 중앙에 병치된 블록 T1을 포함함―, 그리고
    0인 최대 2개의 MV들을 획득하는 동작
    을 포함하는 동작들을 수행하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  17. 제15항에 있어서,
    상기 복수의 공간적 이웃 블록들은 하부 좌측 블록, 좌측 블록, 상부 우측 블록, 상부측 블록, 및 상부 좌측 블록을 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  18. 제16항에 있어서,
    상기 동작들은,
    시간적 모션 벡터 예측에 사용되는 병치된 픽처가 제1 참조 픽처 리스트로부터 유도되는지 제2 참조 픽처 리스트로부터 유도되는지를 지시하는 명시적 플래그(explicit flag)를 획득하는 동작을 더 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  19. 제18항에 있어서,
    상기 동작들은,
    시간적 모션 벡터 예측에 사용되는 병치된 픽처의 참조 인덱스를 기술하는 병치된 참조 인덱스를 획득하는 동작을 더 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  20. 하나 이상의 프로세서에 의해 실행된 때, 상기 하나 이상의 프로세서로 하여금 제1항 내지 제7항 중 어느 한 항에 기재된 비디오 디코딩 방법을 수행하게 하는 복수의 명령어를 포함하는, 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020217039525A 2019-06-13 2020-06-13 비디오 코딩을 위한 모션 벡터 예측 KR102437696B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227029347A KR20220122802A (ko) 2019-06-13 2020-06-13 비디오 코딩을 위한 모션 벡터 예측

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962861315P 2019-06-13 2019-06-13
US62/861,315 2019-06-13
PCT/US2020/037649 WO2020252422A1 (en) 2019-06-13 2020-06-13 Motion vector prediction for video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227029347A Division KR20220122802A (ko) 2019-06-13 2020-06-13 비디오 코딩을 위한 모션 벡터 예측

Publications (2)

Publication Number Publication Date
KR20210153139A KR20210153139A (ko) 2021-12-16
KR102437696B1 true KR102437696B1 (ko) 2022-08-26

Family

ID=73782260

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227029347A KR20220122802A (ko) 2019-06-13 2020-06-13 비디오 코딩을 위한 모션 벡터 예측
KR1020217039525A KR102437696B1 (ko) 2019-06-13 2020-06-13 비디오 코딩을 위한 모션 벡터 예측

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227029347A KR20220122802A (ko) 2019-06-13 2020-06-13 비디오 코딩을 위한 모션 벡터 예측

Country Status (7)

Country Link
US (2) US11917189B2 (ko)
EP (1) EP3963891A4 (ko)
JP (3) JP7198949B2 (ko)
KR (2) KR20220122802A (ko)
CN (2) CN115065828B (ko)
MX (1) MX2021014880A (ko)
WO (1) WO2020252422A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115065828B (zh) * 2019-06-13 2024-05-03 北京达佳互联信息技术有限公司 用于视频编解码的运动矢量预测

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8755437B2 (en) * 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
EP3627839B1 (en) * 2011-03-21 2021-10-20 LG Electronics Inc. Method for selecting motion vector predictor
ES2715613T3 (es) * 2011-06-28 2019-06-05 Lg Electronics Inc Método para fijar una lista de vectores de movimiento
KR20130030181A (ko) * 2011-09-16 2013-03-26 한국전자통신연구원 움직임 벡터 예측기를 이용한 움직임 벡터 부호화/복호화 방법 및 장치
CN107635137B (zh) * 2011-11-08 2020-10-16 株式会社Kt 利用解码装置对视频信号进行解码的方法
EP3796651A1 (en) * 2012-05-09 2021-03-24 Sun Patent Trust Method of performing motion vector prediction, encoding and decoding methods, and apparatuses thereof
CN108055551A (zh) * 2012-07-02 2018-05-18 三星电子株式会社 用于预测对视频进行编码或解码的运动矢量的方法和设备
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
WO2016165069A1 (en) * 2015-04-14 2016-10-20 Mediatek Singapore Pte. Ltd. Advanced temporal motion vector prediction in video coding
WO2017039117A1 (ko) * 2015-08-30 2017-03-09 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
CN108293131B (zh) * 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
US20190028731A1 (en) * 2016-01-07 2019-01-24 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10298951B2 (en) * 2017-04-06 2019-05-21 Mediatek Inc. Method and apparatus of motion vector prediction
WO2018233662A1 (en) * 2017-06-23 2018-12-27 Mediatek Inc. METHOD AND APPARATUS FOR MOTION VECTOR DERIVATIONS IN IMMERSIVE VIDEO CODING
US11356657B2 (en) * 2018-01-26 2022-06-07 Hfi Innovation Inc. Method and apparatus of affine inter prediction for video coding system
EP3794819A4 (en) * 2018-05-23 2022-12-07 HFI Innovation Inc. METHOD AND APPARATUS FOR VIDEO CODING WITH BI-DIRECTIONAL CU WEIGHTS
US11368702B2 (en) * 2018-06-04 2022-06-21 Lg Electronics, Inc. Method and device for processing video signal by using affine motion prediction
CN115065828B (zh) * 2019-06-13 2024-05-03 北京达佳互联信息技术有限公司 用于视频编解码的运动矢量预测

Also Published As

Publication number Publication date
EP3963891A1 (en) 2022-03-09
EP3963891A4 (en) 2022-08-03
JP2023030061A (ja) 2023-03-07
KR20210153139A (ko) 2021-12-16
CN113994700A (zh) 2022-01-28
US20220094970A1 (en) 2022-03-24
CN115065828A (zh) 2022-09-16
KR20220122802A (ko) 2022-09-02
CN115065828B (zh) 2024-05-03
WO2020252422A1 (en) 2020-12-17
JP7198949B2 (ja) 2023-01-04
JP2024038295A (ja) 2024-03-19
MX2021014880A (es) 2022-01-18
US20240163469A1 (en) 2024-05-16
US11917189B2 (en) 2024-02-27
JP2022527673A (ja) 2022-06-02

Similar Documents

Publication Publication Date Title
KR102344430B1 (ko) 다중 참조 예측을 위한 움직임 벡터 개선
JP7218449B2 (ja) ビデオ符号化復号化における長期参照画像のための制約付き動きベクトル導出
US20140044181A1 (en) Method and a system for video signal encoding and decoding with motion estimation
US20240163469A1 (en) Motion vector prediction for video coding
US20200336747A1 (en) Inter prediction mode-based image processing method and device therefor
WO2020243709A1 (en) Methods and apparatus for signaling symmetrical motion vector difference mode
KR102489605B1 (ko) 조합된 인터 및 인트라 예측을 위한 시스템 및 방법
JP2024512647A (ja) 明示的な動きシグナリングを用いた幾何学的分割
KR102387873B1 (ko) 구축된 아핀 병합 후보들을 도출하기 위한 방법
CN113542748B (zh) 视频编解码方法、设备和非暂时性计算机可读存储介质
JP2024519848A (ja) 動きベクトル精緻化を伴う幾何学的分割モード
KR20230013163A (ko) 조합된 인터 및 인트라 예측을 위한 시스템 및 방법
CN113491117A (zh) 用于处理不同图片尺寸的视频编解码

Legal Events

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