KR102585855B1 - 비디오 데이터를 코딩하기 위한 디바이스 및 방법 - Google Patents

비디오 데이터를 코딩하기 위한 디바이스 및 방법 Download PDF

Info

Publication number
KR102585855B1
KR102585855B1 KR1020217008745A KR20217008745A KR102585855B1 KR 102585855 B1 KR102585855 B1 KR 102585855B1 KR 1020217008745 A KR1020217008745 A KR 1020217008745A KR 20217008745 A KR20217008745 A KR 20217008745A KR 102585855 B1 KR102585855 B1 KR 102585855B1
Authority
KR
South Korea
Prior art keywords
candidate
mmvd
index
implementation
parameters
Prior art date
Application number
KR1020217008745A
Other languages
English (en)
Other versions
KR20210046750A (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 KR1020237033556A priority Critical patent/KR20230146108A/ko
Publication of KR20210046750A publication Critical patent/KR20210046750A/ko
Application granted granted Critical
Publication of KR102585855B1 publication Critical patent/KR102585855B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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
    • 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
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

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

Abstract

전자 디바이스에 의해 비트스트림을 디코딩하는 방법이 제공된다. 블록 유닛은 비트스트림에 따라 이미지 프레임으로부터 결정된다. 복수의 후보 그룹 중 하나는 비트스트림 내의 세트 플래그에 기초하여 선택된다. 블록 유닛의 움직임 벡터 차이(MMVD) 표시들을 갖는 복수의 병합 모드는 비트스트림에 따라 결정된다. 블록 유닛의 복수의 MMVD 예측 파라미터는 복수의 MMVD 표시 및 선택된 후보 그룹에 기초하여 결정된다. 블록 유닛은 복수의 MMVD 예측 파라미터에 기초하여 재구성된다.

Description

비디오 데이터를 코딩하기 위한 디바이스 및 방법
관련 출원(들)에 대한 상호 참조
본 출원은 2018년 8월 28일에 "궁극적 움직임 벡터 표현을 위한 후보 세트들(Candidate Sets for Ultimate Motion Vector Expression)"이라는 발명의 명칭으로 출원되었고 대리인 정리번호가 US74791인 미국 가특허 출원 제62/723,880호(이하, "US74791 출원"이라고 함)의 혜택 및 우선권을 주장한다. US74791 출원의 개시내용은 본 출원에 참조로 완전히 포함된다.
기술분야
본 개시내용은 일반적으로 비디오 코딩에 관한 것으로, 보다 구체적으로는 복수의 후보 그룹 내의 복수의 후보 파라미터에 기초하여 이미지 프레임 내의 블록 유닛을 예측하기 위한 기술들에 관한 것이다.
인터 예측(inter prediction)은 비디오 코딩을 위한 코딩 도구이다. 종래의 비디오 코딩 방법에서, 인코더 및 디코더는 코딩 블록의 이미지 프레임과는 상이한 참조 프레임 내의 이전에 재구성된 픽셀들을 사용하여, 코딩 블록을 예측 또는 재구성하기 위한 참조 픽셀들 및 예측자들을 생성한다.
이전에 재구성된 픽셀들은 복수의 후보 파라미터로부터 결정될 수 있다. 많은 수의 후보 파라미터가 존재할 때, 후보 파라미터들 중 일부 내의 높은 비트 수는 이미지 데이터 압축을 비효율적이게 할 수 있다. 따라서, 인코딩(및/또는 디코딩) 디바이스는 복수의 후보 그룹에 분산된 후보 파라미터들에 기초하여 이미지 프레임 내의 코딩 블록을 예측하기 위한 예측 방법을 필요로 할 수 있다.
본 개시내용은 복수의 후보 그룹 내의 복수의 후보 파라미터에 기초하여 이미지 프레임 내의 블록 유닛을 재구성하기 위한 디바이스 및 방법에 관한 것이다.
본 출원의 제1 양태에서, 전자 디바이스에 의해 비트스트림을 디코딩하기 위한 방법이 제공된다. 방법은 비트스트림에 따라 이미지 프레임으로부터 블록 유닛을 결정하는 단계; 세트 플래그에 기초하여, 복수의 후보 그룹 중 하나를 선택하는 단계; 비트스트림에 따라 블록 유닛의 움직임 벡터 차이(motion vector difference)(MMVD) 표시들을 갖는 복수의 병합 모드를 결정하는 단계; 복수의 MMVD 표시 및 선택된 후보 그룹에 기초하여 블록 유닛의 복수의 MMVD 예측 파라미터를 선택하는 단계; 및 복수의 MMVD 예측 파라미터에 기초하여 블록 유닛을 재구성하는 단계를 포함한다.
예시적인 개시내용의 양태들은 첨부 도면들과 함께 읽을 때 이하의 상세한 설명으로부터 가장 잘 이해된다. 다양한 피처들은 축척에 맞게 그려지지 않았으며, 다양한 피처들의 치수들은 논의의 명확성을 위해 임의적으로 증가 또는 감소될 수 있다.
도 1은 본 출원의 예시적인 구현에 따른, 비디오 데이터를 인코딩 및 디코딩하도록 구성된 예시적인 시스템의 블록도이다.
도 2는 본 출원의 예시적인 구현에 따른, 도 1의 시스템 내의 목적지 디바이스의 예시적인 디코더 모듈의 블록도이다.
도 3은 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 복수의 후보 파라미터에 기초하여 블록 유닛을 재구성하기 위한 예시적인 재구성 방법의 흐름도를 도시한다.
도 4a 내지 도 4c는 본 출원의 예시적인 구현들에 따른 블록 유닛 및 복수의 검색 영역의 개략도이다.
도 5는 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 복수의 MMVD 후보 파라미터에 기초하여 블록 유닛을 재구성하기 위한 예시적인 재구성 방법의 흐름도를 도시한다.
도 6은 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 복수의 MMVD 후보 파라미터에 기초하여 블록 유닛을 재구성하기 위한 예시적인 재구성 방법의 흐름도를 도시한다.
도 7은 본 출원의 예시적인 구현에 따른 도 1의 시스템 내의 소스 디바이스의 예시적인 인코더 모듈의 블록도이다.
도 8은 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 복수의 MMVD 후보 파라미터에 기초하여 블록 유닛을 예측하기 위한 예시적인 예측 방법의 흐름도를 도시한다.
이하의 설명은 본 개시내용의 예시적인 구현들에 관한 특정 정보를 포함한다. 본 개시내용에서의 도면들 및 그 동반된 상세한 설명은 단지 예시적인 구현들에 관한 것이다. 그러나, 본 개시내용은 이러한 예시적인 구현들에만 제한되지 않는다. 본 개시내용의 다른 변형들 및 구현들이 본 기술분야의 통상의 기술자에게 생길 수 있다. 달리 언급되지 않으면, 도면들 중에서 유사하거나 대응하는 요소들은 유사하거나 대응하는 참조 번호들에 의해 표시될 수 있다. 또한, 본 개시내용에서의 도면 및 예시는 일반적으로 축척에 맞게 되어 있지 않고, 실제의 상대적 치수들에 대응하도록 의도되지 않는다.
이해의 일관성 및 용이함의 목적을 위하여, 유사한 피처들은(일부 예들에서는, 도시되지 않았지만) 예시적인 도면들에서 번호들에 의해 식별된다. 그러나, 상이한 구현들에서의 피처들은 다른 면들에서 상이할 수 있고, 따라서, 도면들에서 도시되는 것으로만 좁게 국한되지 않을 것이다.
설명은 동일하거나 상이한 구현들 중의 하나 이상을 각각 지칭할 수 있는 문구들 "하나의 구현에서" 또는 "일부 구현들에서"를 이용한다. 용어 "결합된"은 직접적으로 또는 중간 컴포넌트들을 통해 간접적으로 접속되는 것으로 정의되고, 반드시 물리적 접속들에만 제한되지 않는다. 용어 "포함하는(comprising)"은 이용될 때, "포함하지만, 반드시 그에 제한되지는 않음"을 의미하고; 이는 구체적으로 이렇게 설명된 조합, 그룹, 시리즈 및 등가물에서의 개방형 포함 또는 멤버쉽을 나타낸다.
추가적으로, 설명 및 비제한 목적을 위하여, 기능적인 엔티티들, 기법들, 프로토콜들, 표준 등과 같은 특정 세부사항들이 설명된 기술의 이해를 제공하기 위하여 제시된다. 다른 예들에서, 널리 공지된 방법들, 기술들, 시스템, 아키텍처 등의 상세한 설명은 불필요한 세부사항들로 설명을 모호하게 하지 않기 위하여 생략된다.
본 기술분야의 통상의 기술자들은 본 개시내용에서 설명된 임의의 코딩 기능(들) 또는 알고리즘(들)이 하드웨어, 소프트웨어, 또는 소프트웨어 및 하드웨어의 조합에 의해 구현될 수 있다는 것을 즉시 인식할 것이다. 설명된 기능들은 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합일 수 있는 모듈들에 대응할 수 있다. 소프트웨어 구현은 메모리 또는 다른 유형의 저장 디바이스들과 같은 컴퓨터 판독가능한 매체 상에 저장된 컴퓨터 실행가능 명령어들을 포함할 수 있다. 예를 들어, 통신 처리 능력을 갖는 하나 이상의 마이크로프로세서 또는 범용 컴퓨터들은 대응하는 실행가능 명령어들로 프로그래밍될 수 있고, 설명된 네트워크 기능(들) 또는 알고리즘(들)을 수행할 수 있다. 마이크로프로세서들 또는 범용 컴퓨터들은 ASIC(applications specific integrated circuitry), 프로그래머블 로직 어레이들, 및/또는 하나 이상의 DSP(digital signal processor)를 이용하여 형성될 수 있다. 본 명세서에 설명된 예시적인 구현들 중 일부가 컴퓨터 하드웨어 상에 설치되고 실행되는 소프트웨어를 지향하지만, 펌웨어로서 또는 하드웨어 또는 하드웨어와 소프트웨어의 조합으로서 구현된 대안적 예시적인 구현들도 본 개시내용의 범위 내에 있는 것이다.
컴퓨터 판독가능한 매체는 RAM(random access memory), ROM(read only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리(flash memory), CD ROM(compact disc read-only memory), 자기 카세트들(magnetic cassettes), 자기 테이프(magnetic tape), 자기 디스크 스토리지(magnetic disk storage), 또는 컴퓨터 판독가능한 명령어들을 저장할 수 있는 임의의 다른 동등한 매체를 포함하지만, 이것으로만 제한되지는 않는다.
도 1은 본 출원의 예시적인 구현에 따른, 비디오 데이터를 인코딩 및 디코딩하도록 구성될 수 있는 예시적인 시스템의 블록도이다. 구현에서, 시스템은 소스 디바이스(11), 목적지 디바이스(12), 및 통신 매체(13)를 포함한다. 적어도 하나의 구현에서, 소스 디바이스(11)는 비디오 데이터를 인코딩하고 인코딩된 비디오 데이터를 통신 매체(13)에 전송하도록 구성된 임의의 디바이스를 포함할 수 있다. 적어도 하나의 구현에서, 목적지 디바이스(12)는 통신 매체(13)를 통해 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 디코딩하도록 구성된 임의의 디바이스를 포함할 수 있다.
적어도 하나의 구현에서, 소스 디바이스(11)는 통신 매체(13)를 통해 목적지 디바이스(12)와 유선 및/또는 무선으로 통신할 수 있다. 소스 디바이스(11)는 소스 모듈(111), 인코더 모듈(112), 및 제1 인터페이스(113)를 포함할 수 있다. 목적지 디바이스(12)는 디스플레이 모듈(121), 디코더 모듈(122), 및 제2 인터페이스(123)를 포함할 수 있다. 적어도 하나의 구현에서, 소스 디바이스(11)는 비디오 인코더일 수 있고, 목적지 디바이스(12)는 비디오 디코더일 수 있다.
적어도 하나의 구현에서, 소스 디바이스(11) 및/또는 목적지 디바이스(12)는 이동 전화기, 태블릿, 데스크탑, 노트북 또는 다른 전자 디바이스들일 수 있다. 도 1은 단지 소스 디바이스(11) 및 목적지 디바이스(12)의 일례를 도시하고, 다른 구현들에서의 소스 디바이스(11) 및 목적지 디바이스(12)는 예시된 것보다 더 많거나 적은 컴포넌트를 포함할 수 있거나 상이한 구성의 다양한 컴포넌트들을 가질 수 있다.
적어도 하나의 구현에서, 소스 디바이스(11)의 소스 모듈(111)은 새로운 비디오를 캡처하기 위한 비디오 캡처 디바이스, 이전에 캡처된 비디오를 저장하는 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수 있다. 적어도 하나의 구현에서, 소스 디바이스(11)의 소스 모듈(111)은 소스 비디오로서의 컴퓨터 그래픽 기반 데이터, 또는 라이브 비디오, 아카이브 비디오, 및 컴퓨터 생성 비디오의 조합을 생성할 수 있다. 적어도 하나의 구현에서, 비디오 캡처 디바이스는 전하 결합 소자(CCD) 이미지 센서, 상보적 금속 산화물 반도체(CMOS) 이미지 센서, 또는 카메라일 수 있다.
적어도 하나의 구현에서, 인코더 모듈(112) 및 디코더 모듈(122)은 각각 하나 이상의 마이크로프로세서, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 시스템 온 칩(SoC), 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합과 같은 다양한 적합한 인코더/디코더 회로 중 임의의 것으로서 구현될 수 있다. 기술들이 부분적으로 소프트웨어로 구현될 때, 디바이스는 소프트웨어에 대한 명령어들을 적절한 비-일시적 컴퓨터 판독가능한 매체에 저장하고 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어들을 실행하여 본 개시내용의 기술들을 수행할 수 있다. 적어도 하나의 구현에서, 인코더 모듈(112) 및 디코더 모듈(122) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 이들 중 임의의 것은 각각의 디바이스 내에 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
적어도 하나의 구현에서, 제1 인터페이스(113) 및 제2 인터페이스(123)는 맞춤형 프로토콜들을 채택하거나, 이더넷, IEEE 802.11 또는 IEEE 802.15 시리즈, 무선 USB, 또는 GSM, CDMA2000, TD-SCDMA, WiMAX, 3GPP-LTE 또는 TD-LTE를 포함하지만 이에 제한되지 않는 통신 표준들을 포함하지만 이에 제한되지 않는 기존 표준들 또는 사실 상의(de facto) 표준들을 따를 수 있다. 적어도 하나의 구현에서, 제1 인터페이스(113) 및 제2 인터페이스(123)는 통신 매체(13)에 순응 비디오 비트스트림을 전송 및/또는 저장하고, 통신 매체(13)로부터 순응 비디오 비트스트림을 수신하도록 구성된 임의의 디바이스를 각각 포함할 수 있다. 적어도 하나의 구현에서, 제1 인터페이스(113) 및 제2 인터페이스(123)는 순응 비디오 비트스트림이 저장 디바이스에 저장되거나 저장 디바이스로부터 수신될 수 있게 하는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 제1 인터페이스(113) 및 제2 인터페이스(123)는 PCI(Peripheral Component Interconnect) 및 PCIe(Peripheral Component Interconnect Express) 버스 프로토콜, 독점 버스 프로토콜, USB(Universal Serial Bus) 프로토콜, I2C, 또는 피어 디바이스들을 상호연결하기 위해 사용할 수 있는 임의의 다른 논리적 및 물리적 구조를 지원하는 칩셋을 포함할 수 있다.
적어도 하나의 구현에서, 디스플레이 모듈(121)은 액정 디스플레이(LCD) 기술, 플라즈마 디스플레이 기술, 유기 발광 다이오드(OLED) 디스플레이 기술, 또는 발광 폴리머 디스플레이(LPD) 기술을 사용하는 디스플레이를 포함할 수 있지만, 다른 구현들에서는 다른 디스플레이 기술들이 사용될 수 있다. 적어도 하나의 구현에서, 디스플레이 모듈(121)은 고화질 디스플레이 또는 초 고해상도 디스플레이를 포함할 수 있다.
도 2는 본 출원의 예시적인 구현에 따른, 도 1의 시스템에서의 목적지 디바이스(12)의 디코더 모듈(122)의 예시적인 구현을 나타내는 디코더 모듈(222)의 블록도이다. 적어도 하나의 구현에서, 디코더 모듈(222)은 엔트로피 디코더(예를 들어, 엔트로피 디코딩 유닛(2221)), 예측 프로세서(예를 들어, 예측 프로세스 유닛(2222)), 역양자화/역변환 프로세서(예를 들어, 역양자화/역변환 유닛(2223)), 합산기(예를 들어, 제1 합산기(2224)), 필터(예를 들어, 필터링 유닛(2225)), 및 디코딩된 픽처 버퍼(예를 들어, 디코딩된 픽처 버퍼(2226))를 포함한다. 적어도 하나의 구현에서, 디코더 모듈(222)의 예측 프로세스 유닛(2222)은 인트라 예측 프로세서(예를 들어, 인트라 예측 유닛(22221)) 및 인터 예측 프로세서(예를 들어, 인터 예측 유닛(22222))를 더 포함한다. 적어도 하나의 구현에서, 디코더 모듈(222)은 비트스트림을 수신하고, 비트스트림을 디코딩하여 디코딩된 비디오를 출력한다.
적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2221)은 도 1의 제2 인터페이스(123)로부터 복수의 신택스 요소를 포함하는 비트스트림을 수신하고, 비트스트림에서 파싱 동작을 수행하여 비트스트림으로부터 신택스 요소들을 추출한다. 파싱 동작을 수행하는 것의 일부로서, 엔트로피 디코딩 유닛(2221)은 비트스트림을 엔트로피 디코딩하여, 양자화된 변환 계수, 양자화 파라미터, 변환 데이터, 움직임 벡터, 인트라 모드, 분할 정보, 및 다른 신택스 정보를 생성할 수 있다. 적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2221)은 컨텍스트 적응 가변 길이 코딩(context adaptive variable length coding)(CAVLC), 컨텍스트 적응 이진 산술 코딩(context adaptive binary arithmetic coding)(CABAC), 신택스 기반 컨텍스트 적응 이진 산술 코딩(syntax-based context-adaptive binary arithmetic coding)(SBAC), 확률 간격 분할 엔트로피(probability interval partitioning entropy)(PIPE) 코딩, 또는 다른 엔트로피 코딩 기술을 수행하여, 양자화된 변환 계수들을 생성할 수 있다. 적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2221)은 양자화된 변환 계수들, 양자화 파라미터들, 및 변환 데이터를 역양자화/역변환 유닛(2223)에 제공하고, 움직임 벡터, 인트라 모드, 분할 정보, 및 다른 신택스 정보를 예측 프로세스 유닛(2222)에 제공한다.
적어도 하나의 구현에서, 예측 프로세스 유닛(2222)은 엔트로피 디코딩 유닛(2221)으로부터 움직임 벡터들, 인트라 모드들, 분할 정보, 및 다른 신택스 정보와 같은 신택스 요소들을 수신할 수 있다. 적어도 하나의 구현에서, 예측 프로세스 유닛(2222)은 분할 정보를 포함하는 신택스 요소들을 수신한 다음, 분할 정보에 따라 이미지 프레임들을 나눌 수 있다. 적어도 하나의 구현에서, 이미지 프레임들 각각은 분할 정보에 따라 적어도 하나의 이미지 블록으로 나누어질 수 있다. 적어도 하나의 이미지 블록은 복수의 휘도 샘플을 재구성하기 위한 휘도 블록, 및 복수의 색차 샘플을 재구성하기 위한 적어도 하나의 색차 블록을 포함할 수 있다. 휘도 블록 및 적어도 하나의 색차 블록은 매크로블록들, 코딩 트리 유닛(CTU)들, 코딩 블록(CB)들, 그것의 세분화, 및/또는 다른 등가 코딩 유닛을 생성하기 위해 추가로 분할될 수 있다.
적어도 하나의 구현에서, 디코딩 프로세스 동안, 예측 프로세스 유닛(2222)은 이미지 프레임들 중 특정 프레임의 현재 이미지 블록에 대한 움직임 벡터 또는 인트라 모드를 포함하는 예측 데이터를 수신한다. 현재 이미지 블록은 특정 이미지 프레임 내의 휘도 블록 및 적어도 하나의 색차 블록 중 하나일 수 있다.
적어도 하나의 구현에서, 인트라 예측 유닛(22221)은 인트라 모드에 관련된 신택스 요소들에 기초하여 현재 블록 유닛과 동일한 프레임 내의 하나 이상의 이웃 블록에 대한 현재 블록 유닛의 인트라 예측 코딩을 수행하여 예측 블록을 생성할 수 있다. 적어도 하나의 구현에서, 인트라 모드는 현재 프레임 내의 이웃 블록들로부터 선택된 참조 샘플들의 위치를 지정할 수 있다.
적어도 하나의 구현에서, 현재 블록의 루마 컴포넌트들이 예측 프로세스 유닛(2222)에 의해 재구성될 때, 인트라 예측 유닛(22221)은 현재 블록 유닛의 복수의 루마 컴포넌트에 기초하여 현재 블록 유닛의 복수의 크로마 컴포넌트를 재구성할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 움직임 벡터에 관련된 신택스 요소들에 기초하여 하나 이상의 참조 이미지 블록 내의 하나 이상의 블록에 대한 현재 블록 유닛의 인터-예측 코딩을 수행하여 예측 블록을 생성할 수 있다. 적어도 하나의 구현에서, 움직임 벡터는 참조 이미지 블록 내의 참조 블록 유닛에 대한 현재 이미지 블록 내의 현재 블록 유닛의 변위를 나타낼 수 있다. 참조 블록 유닛은 현재 블록 유닛에 가깝게 일치하는 것으로 결정되는 블록이다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 디코딩된 픽처 버퍼(2226)에 저장된 참조 이미지 블록을 수신하고, 수신된 참조 이미지 블록들에 기초하여 현재 블록 유닛을 재구성한다.
적어도 하나의 구현에서, 역양자화/역변환 유닛(2223)은 역양자화 및 역변환을 적용하여 픽셀 도메인에서 잔차 블록을 재구성할 수 있다. 적어도 하나의 구현에서, 역양자화/역변환 유닛(2223)은 잔차 양자화된 변환 계수에 역양자화를 적용하여 잔차 변환 계수를 생성한 다음, 잔차 변환 계수에 역변환을 적용하여 픽셀 도메인에서 잔차 블록을 생성할 수 있다. 적어도 하나의 구현에서, 역변환은 이산 코사인 변환(discrete cosine transform)(DCT), 이산 사인 변환(discrete sine transform)(DST), 적응 다중 변환(adaptive multiple transform)(AMT), 모드 종속 비-분리가능 이차 변환(mode-dependent non-separable secondary transform)(MDNSST), 하이퍼큐브-제공 변환(hypercube-givens transform)(HyGT), 신호 종속 변환, Karhunen-Love 변환(KLT), 웨이블릿 변환, 정수 변환, 서브-밴드 변환, 또는 개념적으로 유사한 변환과 같은 변환 프로세스에 의해 역으로 적용될 수 있다. 적어도 하나의 구현에서, 역변환은 주파수 도메인과 같은 변환 도메인으로부터의 잔차 정보를 픽셀 도메인으로 다시 변환할 수 있다. 적어도 하나의 구현에서, 역양자화의 정도는 양자화 파라미터를 조절함으로써 수정될 수 있다.
적어도 하나의 구현에서, 제1 합산기(2224)는 예측 프로세스 유닛(2222)으로부터 제공된 예측 블록에 재구성된 잔차 블록을 추가하여, 재구성된 블록을 생성한다.
적어도 하나의 구현에서, 필터링 유닛(2225)은 재구성된 블록으로부터 블록 성 아티팩트들(blockiness artifacts)을 제거하기 위해 디블로킹 필터(deblocking filter), 샘플 적응 오프셋(SAO) 필터, 양방향 필터, 및/또는 적응 루프 필터(ALF)를 포함할 수 있다. 디블로킹 필터, SAO 필터, 양방향 필터, 및 ALF에 더하여 추가 필터들이 (루프 또는 포스트 루프에서) 또한 사용될 수 있다. 그러한 필터들은 간결성을 위해 도시되지 않았지만, 요구되는 경우 제1 합산기(2224)의 출력을 필터링할 수 있다. 적어도 하나의 구현에서, 필터링 유닛(2225)이 특정 이미지 프레임의 재구성된 블록들에 대한 필터링 프로세스를 수행한 후, 필터링 유닛(2225)은 디코딩된 비디오를 디스플레이 모듈(121), 또는 다른 비디오 수신 유닛에 출력할 수 있다.
적어도 하나의 구현에서, 디코딩된 픽처 버퍼(2226)는 예를 들어 인터-코딩 모드들에서 예측 프로세스 유닛(2222)에 의해 비트스트림을 디코딩하는 데 사용하기 위해 참조 블록을 저장하는 참조 픽처 메모리일 수 있다. 디코딩된 픽처 버퍼(2226)는 동기식 DRAM(SDRAM), 자기 저항성 RAM(MRAM), 저항성 RAM(RRAM)을 포함하는 동적 랜덤 액세스 메모리(DRAM), 또는 다른 유형의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 것에 의해 형성될 수 있다. 적어도 하나의 구현에서, 디코딩된 픽처 버퍼(2226)는 디코더 모듈(222)의 다른 컴포넌트들과 함께 온-칩일 수 있거나, 이들 컴포넌트들에 대해 오프-칩일 수 있다.
도 3은 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 복수의 후보 파라미터에 기초하여 블록 유닛을 재구성하기 위한 예시적인 재구성 방법의 흐름도를 도시한다. 방법을 수행하는 다양한 방식들이 존재하므로, 예시적인 방법은 예시로서만 제공된다. 이하에서 설명되는 방법은 예를 들어 도 1 및 도 2에 도시된 구성을 사용하여 수행될 수 있고, 이러한 도면들의 다양한 구성요소들은 예시적인 방법을 설명하는 데에 참조된다. 도 3에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법 또는 서브루틴을 나타낼 수 있다. 또한, 블록들의 순서는 예시일 뿐이며 변경될 수 있다. 본 개시내용으로부터 벗어나지 않고서 추가 블록들이 추가될 수 있거나 더 적은 블록들이 이용될 수 있다.
블록(31)에서, 디코더 모듈(222)은 비디오 데이터에 따라 이미지 프레임으로부터 블록 유닛을 결정할 수 있고, 블록 유닛에 대한 복수의 후보 파라미터를 결정할 수 있다.
적어도 하나의 구현에서, 비디오 데이터는 비트스트림일 수 있다. 적어도 하나의 구현에서, 목적지 디바이스(12)는 목적지 디바이스(12)의 제2 인터페이스(123)를 통해 소스 디바이스(11)와 같은 인코더로부터 비트스트림을 수신할 수 있다. 제2 인터페이스(123)는 디코더 모듈(222)에 비트스트림을 제공할 수 있다. 디코더 모듈(222)은 비트스트림에 기초하여 이미지 프레임을 결정할 수 있고, 비트스트림 내의 복수의 분할 표시에 따라 이미지 프레임을 나누어 블록 유닛을 결정할 수 있다. 예를 들어, 디코더 모듈(222)은 이미지 프레임들을 나누어 복수의 코딩 트리 유닛을 생성할 수 있고, 비디오 코딩 표준에 기초하여 분할 표시들에 따라 코딩 트리 유닛들 중 하나를 더 나누어 블록 유닛을 결정할 수 있다.
적어도 하나의 구현에서, 소스 디바이스(11)는 블록 유닛에 대한 예측 모드의 후보 파라미터를 결정하고, 후보 파라미터들로부터 복수의 예측 파라미터를 선택하여 블록 유닛을 예측할 수 있다. 적어도 하나의 구현에서, 예측 모드는 복수의 후보 모드로부터 선택된 움직임 벡터 차이(MMVD) 모드를 갖는 병합 모드일 수 있다. 구현에서, 소스 디바이스(11)는 비트스트림 내에서 블록 유닛의 예측 파라미터들을 나타내는 복수의 예측 표시를 목적지 디바이스(12)에 제공할 수 있다. 적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2221)은 비트스트림을 디코딩하여 블록 유닛에 대한 예측 표시들을 결정할 수 있고, 다음으로 디코더 모듈(222)은 예측 표시들에 기초하여 블록 유닛을 더 재구성할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 복수의 플래그 및 복수의 인덱스를 포함할 수 있다.
적어도 하나의 구현에서, 예측 모드가 MMVD 모드일 때, 예측 모드는 복수의 움직임 파라미터를 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들은 베이스 움직임, 움직임 차이, 및 예측 방향을 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들 각각은 후보 파라미터들을 포함할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 MMVD 모드에 대한 베이스 후보 인덱스, 움직임 차이 표시, 및 예측 방향 인덱스 중 적어도 하나를 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들 각각에 대한 예측 파라미터는 예측 표시들 중 대응하는 것에 기초하여 선택될 수 있다. 예를 들어, 베이스 움직임의 예측 파라미터는 베이스 후보 인덱스에 기초하여 베이스 움직임의 후보 파라미터들로부터 선택될 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 이웃 움직임 정보에 기초하여 블록 유닛에 대한 복수의 베이스 후보를 생성할 수 있다. 적어도 하나의 구현에서, 베이스 후보들은 베이스 움직임을 선택하기 위한 후보 파라미터들이다. 적어도 하나의 구현에서, 베이스 후보 인덱스는 예측 파라미터들에 포함된 선택된 베이스 후보를 나타내는 MMVD 플래그 mmvd_cand_flag일 수 있다. 예를 들어, 베이스 후보들은 HEVC(high efficiency video coding) 또는 VVC(versatile video coding)와 같은 비디오 코딩 표준에 기초하여, 스킵 모드, 직접 모드, 및 병합 모드에서 생성될 수 있다. 베이스 후보들 각각은 적어도 하나의 프레임 후보 및 적어도 하나의 벡터 후보를 포함할 수 있다. 일 구현에서, 특정 베이스 후보가 이중-예측 후보(bi-predictive candidate)일 때, 베이스 후보들 중의 특정 베이스 후보는 제1 참조 리스트(L0) 내의 제1 프레임 후보, 제1 프레임 후보에 대응하는 제1 벡터 후보, 제2 참조 리스트(L1) 내의 제2 프레임 후보, 및 제2 프레임 후보에 대응하는 제2 벡터 후보를 포함할 수 있다. 다른 구현에서, 특정 베이스 후보가 제1 참조 리스트(L0)에 대한 단일 예측 후보(uni-predictive candidate)일 때, 특정 베이스 후보는 제1 참조 리스트(L0) 내의 제1 프레임 후보, 및 제1 프레임 후보에 대응하는 제1 벡터 후보를 포함할 수 있다. 다른 구현들에서, 특정 베이스 후보가 제2 참조 리스트(L1)에 대한 단일 예측 후보일 때, 특정 베이스 후보는 제2 참조 리스트(L1) 내의 제2 프레임 후보, 및 제2 프레임 후보에 대응하는 제2 벡터 후보를 포함할 수 있다.
적어도 하나의 구현에서, 움직임 차이 표시는 움직임 거리 인덱스 및 움직임 방향 인덱스를 더 포함할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 베이스 후보 인덱스에 기초하여 베이스 후보들 중 하나를 선택하고 움직임 차이 표시에 기초하여 움직임 차이를 결정하여, 선택된 베이스 후보 내의 벡터 후보를 조절할 수 있다. 일 구현에서, 움직임 차이는 움직임 거리 인덱스 및 움직임 방향 인덱스에 기초하여 결정된 차이 크기 및 차이 방향에 의해 표현될 수 있다. 적어도 하나의 구현에서, 움직임 거리 인덱스는 예측 파라미터들에 포함된 차이 크기를 나타내는 제1 MMVD 인덱스 mmvd_distance_idx이고, 움직임 방향 인덱스는 예측 파라미터에 포함된 차이 방향을 나타내는 제2 MMVD 인덱스 mmvd_direction_idx일 수 있다. 적어도 하나의 구현에서, 복수의 차이 거리 후보는 움직임 거리 인덱스에 기초하여 차이 크기를 선택하기 위한 후보 파라미터들일 수 있고, 복수의 차이 방향 후보는 움직임 방향 인덱스에 기초하여 차이 방향을 선택하기 위한 후보 파라미터들일 수 있다.
적어도 하나의 구현에서, 차이 방향은 베이스 후보 인덱스에 기초하여 결정된 벡터 후보를 조절하기 위한 방향 각도를 나타낼 수 있다. 일 구현에서, 방향 각도들 각각은 움직임 방향 인덱스에 의해 미리 정의될 수 있다. 예를 들어, 방향 각도들은 0°, 22.5°, 37.5°, 150° 또는 임의의 다른 각도들을 포함할 수 있다. 적어도 하나의 구현에서, 움직임 방향 인덱스는 4개의 좌표 방향 (+, 0), (0, +), (-, 0) 및 (0, -) 중 하나를 나타낼 수 있다. 구현에서, 4개의 좌표 방향의 방향 각도들은 0°, 90°, 180°, 270°일 수 있다. 일 구현에서, 움직임 차이 표시는 x-좌표 차이 및 y-좌표 차이를 포함하는 움직임 차이를 나타내는 움직임 차이 인덱스일 수 있다. 따라서, 인터 예측 유닛(22222)은 움직임 차이 인덱스에 의해 나타나는 x-좌표 차이 및 y-좌표 차이에 기초하여 움직임 차이를 결정하여, 선택된 벡터 후보를 조절할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 예측 방향 인덱스에 기초하여 복수의 예측 방향 후보로부터 제1 참조 리스트(L0) 및 제2 참조 리스트(L1) 중 적어도 하나를 선택할 수 있다. 블록 유닛이 제1 참조 리스트(L0) 내의 제1 프레임 후보들 중 하나와 제2 참조 리스트(L1) 내의 제2 프레임 후보들 중 하나에 기초하여 예측되는 경우, 블록 유닛은 제1 참조 리스트(L0) 및 제2 참조 리스트(L1)에 기초하여 예측된 이중 예측 블록이다. 블록 유닛이 제1 참조 리스트(L0) 내의 제1 프레임 후보들 중 하나에 기초하여 예측되는 경우, 블록 유닛은 제1 참조 리스트(L0)에 기초하여 예측된 단일 예측 블록이다. 블록 유닛이 제2 참조 리스트(L1) 내의 제2 프레임 후보들 중 하나에 기초하여 예측되는 경우, 블록 유닛은 제2 참조 리스트(L1)에 기초하여 예측된 단일 예측 블록이다. 구현에서, 인터 예측 유닛(22222)은 베이스 후보 인덱스와 예측 방향 인덱스 사이의 관계를 확인할 수 있다. 예측 방향 인덱스에 의해 결정된 참조 리스트가 베이스 후보 인덱스에 의해 결정된 참조 리스트와 상이한 경우, 인터 예측 유닛(22222)은 베이스 후보 인덱스에 의해 결정된 참조 리스트 내의 프레임 후보를 미러링함으로써, 예측 방향 인덱스에 의해 결정된 참조 리스트 내의 프레임 후보를 검색할 수 있다. 예를 들어, 예측 방향 인덱스가 블록 유닛이 이중 예측임을 나타내고 베이스 후보 인덱스가 단일 예측 후보를 나타낼 때, 제2 참조 리스트(L1) 내에는 블록 유닛에 대한 대응하는 프레임이 존재하지 않는다. 따라서, 인터 예측 유닛(22222)은 베이스 후보 인덱스에 의해 결정된 제1 참조 리스트(L0) 내의 제1 프레임 후보를 제2 참조 리스트(L1)에 미러링하여, 제2 프레임 후보들 중 하나를 선택할 수 있다. 추가로, 인터 예측 유닛(22222)은 베이스 후보 인덱스에 의해 결정된 제1 참조 리스트(L0)에 대응하는 제1 벡터 후보를 미러링하여 제2 참조 리스트(L1)에 대한 제2 벡터 후보를 결정할 수 있다. 적어도 하나의 구현에서, 예측 표시들 내에 예측 방향 인덱스가 존재하지 않을 수 있다. 구현에서, 베이스 후보 인덱스에 의해 결정된 참조 리스트는 블록 유닛의 참조 리스트일 수 있다.
적어도 하나의 구현에서, 예측 표시들은 세트 인덱스를 포함할 수 있다. 구현에서, 움직임 차이 표시가 움직임 차이 인덱스일 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 차이 인덱스, 및 예측 방향 인덱스 중 적어도 하나를 표현할 수 있다. 적어도 하나의 구현에서, 움직임 차이 표시가 움직임 거리 인덱스 및 움직임 방향 인덱스를 포함할 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 거리 인덱스, 움직임 방향 인덱스, 및 예측 방향 인덱스 중 적어도 하나를 표현할 수 있다. 예를 들어, 세트 인덱스가 움직임 거리 인덱스 및 움직임 방향 인덱스를 표현할 때, 디코더 모듈(222)은 세트 인덱스로부터 차이 크기 및 차이 방향을 직접 결정할 수 있다. 또한, 세트 인덱스가 움직임 거리 인덱스만을 표현할 때, 디코더 모듈(222)은 세트 인덱스에 기초하여 차이 크기를 결정할 수 있다.
다시 도 3을 참조하면, 블록(32)에서, 디코더 모듈(222)은 후보 파라미터들로부터 선택된 복수의 그룹 파라미터를 각각 포함하는 복수의 후보 그룹을 결정할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 비트스트림으로부터 복수의 이전 블록을 결정할 수 있다. 구현에서, 후보 모드들로부터 선택된 복수의 이전 모드에 의해 재구성된 이전 블록들은 블록 유닛보다 먼저 디코딩된다. 적어도 하나의 구현에서, 이전 모드들이 MMVD 모드일 때, 이전 모드들은 후보 파라미터들로부터 선택된 복수의 이전 파라미터를 포함할 수 있다. 따라서, 인터 예측 유닛(22222)는 이전 블록들의 이전 모드들을 결정하고, 예측 모드들의 이전 파라미터들과 동일하거나 유사한 후보 파라미터들을 제1 후보 그룹으로 분류할 수 있다. 예를 들어, 인터 예측 유닛(22222)이 차이 크기 및 차이 방향을 표현하기 위해 세트 인덱스를 사용할 때, 인터 예측 유닛(22222)은 후보 파라미터들 내의 차이 거리 후보들 및 차이 방향 후보들을 이전 블록들의 이전 모드들의 차이 크기들 및 차이 방향들과 비교할 수 있다. 추가로, 인터 예측 유닛(22222)이 세트 인덱스를 사용하여 차이 크기들을 표현할 때, 인터 예측 유닛(22222)은 후보 파라미터들 내의 차이 거리 후보들을 이전 블록들의 이전 모드들의 차이 크기들과 비교할 수 있다.
적어도 하나의 구현에서, 디코더 모듈(222)은 비트스트림 내의 분할 표시들에 따라 이미지 프레임들을 나누어 블록 유닛을 결정하고, 복수의 미리 정의된 영역들에 기초하여 검색 영역을 결정할 수 있다. 도 4a - 도 4c는 블록 유닛들(41-43) 및 검색 영역들(410-430)의 예시적인 구현의 개략도이다. 일 구현에서, 도 4a의 블록 유닛(41)의 검색 영역(410)은 블록 유닛(41)의 좌측에 위치한 제1 검색 영역(411), 블록 유닛의 상부에 위치한 제2 검색 영역(412), 및 블록 유닛(41)의 좌측 상부에 위치한 제3 검색 영역(413)을 포함한다. 제1 검색 영역(411)은 제1 영역 폭(W1) 및 제1 영역 높이(H1)를 가지며, 제2 검색 영역(412)은 제2 영역 폭(W2) 및 제2 영역 높이(H2)를 갖는다. 제3 검색 영역(413)의 영역 폭은 제1 영역 폭(W1)과 동일하고, 제3 검색 영역(413)의 영역 높이는 제2 영역 높이(H2)와 동일할 수 있다. 일 구현에서, 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1) 및 제2 영역 높이(H2) 각각은 서로 다를 수 있다. 다른 구현에서, 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1) 및 제2 영역 높이(H2) 중 적어도 둘은 서로 동일할 수 있다. 예를 들어, 블록 유닛(42)의 제1 검색 영역(421)의 제1 영역 폭(W1)은 도 4b의 블록 유닛(42)의 제2 검색 영역(422)의 제2 영역 높이(H2)와 동일할 수 있다. 결과적으로, 블록 유닛(42)의 제3 검색 영역(423)은 정사각형 검색 영역일 수 있다. 일 구현에서, 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1) 및 제2 영역 높이(H2)는 각각 4로 나누어질 수 있다. 일 구현에서, 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1) 및 제2 영역 높이(H2) 각각은 미리 설정된 길이로서 미리 정의될 수 있다. 다른 구현에서, 소스 디바이스(11)의 인코더 모듈(112)은 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1) 및 제2 영역 높이(H2)의 길이를 결정하고, 비트스트림 내에 시퀀스 파라미터 세트(SPS) 및 픽처 파라미터 세트(PPS) 중 하나의 예측 표시들 중 적어도 하나를 제공할 수 있다. 따라서, 디코더 모듈(222)은 비트스트림 내의 SPS 및 PPS 중 하나로부터 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1) 및 제2 영역 높이(H2)의 길이들을 결정할 수 있다. 다른 구현들에서, 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1), 및 제2 영역 높이(H2)는 블록 유닛(41)의 블록 폭(W0) 및 블록 높이(H0)에 비례할 수 있다. 인터 예측 유닛(22222)은 복수의 미리 정의된 비율 파라미터에 기초하여 제1 영역 폭(W1), 제2 영역 폭(W2), 제1 영역 높이(H1) 및 제2 영역 높이(H2)의 길이들을 결정할 수 있다.
적어도 하나의 구현에서, 도 4c의 블록 유닛(43)의 검색 영역(430)은 블록 유닛(43)에 이웃하는 복수의 검색 블록을 포함할 수 있다. 예를 들어, 검색 영역(430)은 제1 검색 블록(431), 제2 검색 블록(432), 제3 검색 블록(433), 제4 검색 블록(434), 및 제5 검색 블록(435)을 포함할 수 있다. 하나의 구현에서, 검색 블록들(431-435)은 인터 예측 유닛(22222)에 의해 복수의 인터 병합 후보를 위해 사용되는 블록 유닛(41)에 이웃한 복수의 공간 블록과 동일할 수 있다. 일 구현에서, 검색 블록들의 검색 블록 폭들 및 검색 블록 높이들은 4와 동일할 수 있다.
적어도 하나의 구현에서, 이전에 디코딩된 슬라이스는 검색 영역으로서 정의될 수 있다. 구현에서, 이전에 디코딩된 슬라이스의 복수의 이전 블록 각각은 블록 유닛 이전에 디코딩된다. 구현에서, 예측 후보들로부터 선택된 복수의 예측 모드에 의해 재구성된 이전 블록들은 블록 유닛보다 먼저 디코딩된다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 검색 영역 내의 이전 블록들의 이전 모드들을 결정할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 검색 영역을 나누어 복수의 서브블록을 생성할 수 있다. 일 구현에서, 서브블록들 각각은 4×4와 동일한 블록 크기를 가질 수 있다. 구현에서, 서브블록들 각각은 이전 블록들 중 하나에 포함될 수 있다. 서브블록들 중 특정 서브블록이 이전 블록들 중 특정 이전 블록에 포함될 때, 인터 예측 유닛(22222)은 그 특정 서브블록의 이전 모드가 그 특정 이전 블록의 이전 모드와 동일하다고 결정할 수 있다. 따라서, 인터 예측 유닛(22222)은 서브블록들의 이전 모드들을 결정할 수 있고, 후보 파라미터들에 기초하여 예측된 서브블록들의 수량을 계산할 수 있다. 따라서, 인터 예측 유닛(22222)은 후보 파라미터의 사용률을 결정할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 사용률에 기초하여 후보 파라미터들을 배열할 수 있다. 구현에서, 인터 예측 유닛(22222)은 가장 큰 것으로부터 가장 작은 것까지의 사용률에 기초하여 후보 파라미터들을 배열할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 이전 블록들의 이전 모드들에 따라 움직임 파라미터들 각각에 대한 후보 파라미터들을 배열하여, 정렬된 후보 리스트를 생성할 수 있다. 다음으로, 인터 예측 유닛(22222)은 정렬된 후보 리스트 내의 움직임 파라미터들 중 하나에 대한 처음의 Nm개의 후보 파라미터를 제1 후보 그룹에 추가할 수 있다. 적어도 하나의 구현에서, Nm은 0보다 큰 정수일 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 이전 모드들의 사용률에 따라 움직임 파라미터들 중 하나에 대한 후보 파라미터들을 배열하여, 정렬된 후보 리스트를 생성할 수 있다. 추가로, 제1 후보 그룹 내의 그룹 파라미터들 중 제1 그룹 파라미터에 대한 비트스트림 내의 비트 수는 제1 후보 그룹 내의 그룹 파라미터들 중 제2 그룹 파라미터에 대한 비트스트림 내의 비트 수보다 적을 수 있다.
적어도 하나의 구현에서, 제1 후보 그룹 내의 그룹 파라미터들의 최대 수량은 Nm일 수 있다. 일 구현에서, 디코더 모듈(222)이 비트스트림을 디코딩하기 시작할 때, 제1 후보 그룹 내의 그룹 파라미터들의 수는 0일 수 있다. 인터 예측 유닛(22222)이 비디오 데이터 내의 제1 블록이 이전 파라미터들을 갖는 MMVD 모드에 기초하여 예측된 것으로 결정할 때, 인터 예측 유닛(22222)은 MMVD 모드의 이전 파라미터들과 동일한 후보 파라미터를 제1 후보 그룹에 추가할 수 있다. 따라서, 제1 후보 그룹 내의 그룹 파라미터들의 수는 1개로 증가할 수 있다. 적어도 하나의 구현에서, 이전 모드들의 수가 Nm 이상일 때, 제1 후보 그룹 내의 그룹 파라미터들의 수는 최대 수량 Nm과 동일할 수 있다. 따라서, 제1 후보 그룹 내의 Nm개의 그룹 파라미터에 추가할 새로운 이전 모드가 결정되면, 인터 예측 유닛(22222)은 제1 후보 그룹으로부터 후보 파라미터들 중 처음 추가된 후보 파라미터를 제거할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 나머지 후보 파라미터들을 다른 후보 그룹들로 분류할 수 있다. 일 구현에서, 제1 후보 그룹 내의 그룹 파라미터들의 수는 다른 후보 그룹들 내의 그룹 파라미터들의 수보다 많거나 적을 수 있다. 다른 구현에서, 제1 후보 그룹 내의 그룹 파라미터들의 수는 다른 후보 그룹들 내의 그룹 파라미터들의 수와 동일할 수 있다.
적어도 하나의 구현에서, 후보 그룹들 내의 후보 파라미터들의 분포가 미리 정의될 수 있다(예를 들어, 인코더 모듈(112) 및 디코더 모듈(222)에서). 따라서, 인터 예측 유닛(22222)은 디코더 모듈(222)로부터 후보 그룹들 내의 후보 파라미터들의 분류된 결과를 직접 결정할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 그룹 파라미터들을 포함하는 후보 그룹들을 직접 결정할 수 있다. 구현에서, 후보 그룹들 각각의 그룹 파라미터들은 디코더 모듈(222)에서 미리 정의될 수 있다.
다시 도 3을 참조하면, 블록(33)에서, 디코더 모듈(222)은 블록 유닛을 예측하기 위한 후보 파라미터들 중 특정 후보 파라미터가 제1 후보 그룹에 포함되는지를 결정할 수 있다. 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되어있는 경우, 절차는 블록(34)으로 진행할 수 있다. 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되지 않은 경우, 절차는 블록(35)으로 진행할 수 있다.
적어도 하나의 구현에서, 예측 표시들은 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되는지를 나타내는 세트 플래그를 더 포함할 수 있다. 따라서, 세트 플래그가 1일 때, 인터 예측 유닛(22222)은 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함된다고 직접 결정할 수 있다. 추가로, 세트 플래그가 0인 경우, 인터 예측 유닛(22222)은 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되지 않는다고 직접 결정할 수 있다. 적어도 하나의 구현에서, 세트 플래그는 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되는지를 나타내는 fpel_mmvd_enable_flag일 수 있다. 적어도 하나의 구현에서, 세트 플래그가 슬라이스 헤더에 포함된 경우, 세트 플래그는 slice_fpel_mmvd_enabled_flag일 수 있다.
블록(34)에서, 디코더 모듈(222)은 세트 인덱스에 대응하는 특정 후보 파라미터에 기초하여 예측 파라미터들을 결정할 수 있다.
적어도 하나의 구현에서, 제1 후보 그룹 내의 그룹 파라미터들 각각은 세트 인덱스의 하나의 인덱스 값에 대응할 수 있다. 따라서, 특정 후보 파라미터가 제1 후보 그룹에 포함되어 있으므로, 인터 예측 유닛(22222)은 세트 인덱스에 기초하여 특정 후보 파라미터를 결정할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛은 세트 인덱스에 기초하여 예측 파라미터들을 결정할 수 있다. 예를 들어, 세트 인덱스가 베이스 후보 인덱스 및 움직임 차이 인덱스를 표현할 때, 인터 예측 유닛(22222)은 세트 인덱스로부터 블록 유닛의 베이스 후보 및 움직임 차이를 직접 결정할 수 있다. 추가로, 인터 예측 유닛(22222)은 예측 방향 인덱스에 기초하여 블록 유닛이 이중 예측 블록인지 단일 예측 블록인지를 더 결정할 수 있다. 따라서, 디코더 모듈(222)은 결정된 베이스 후보에 기초하여 벡터 후보들 중 하나 및 프레임 후보들 중 하나를 선택하고, 선택된 벡터 후보들을 조절하여, 선택된 프레임 후보에 대응하는 움직임 벡터를 생성할 수 있다. 다음으로, 디코더 모듈(222)은 선택된 프레임 후보 및 예측 방향 인덱스에 기초하여 미러 벡터를 생성하기 위해 움직임 벡터를 미러링할지를 결정할 수 있다. 적어도 하나의 구현에서, 세트 인덱스가 움직임 거리 인덱스를 표현할 때, 인터 예측 유닛(22222)은 세트 인덱스로부터 블록 유닛의 차이 크기를 결정할 수 있다. 따라서, 인터 예측 유닛은 결정된 베이스 후보, 결정된 차이 크기, 및 결정된 차이 방향에 기초하여 블록 유닛을 예측하기 위한 베이스 후보 인덱스 및 움직임 방향 인덱스에 기초하여 베이스 후보 및 차이 방향을 더 결정할 수 있다.
블록(35)에서, 디코더 모듈(222)은 나머지 후보 그룹들 내의 특정 후보 파라미터에 기초하여 예측 파라미터들을 결정할 수 있다.
적어도 하나의 구현에서, 나머지 후보 그룹들 내의 그룹 파라미터들 각각은 그룹 인덱스의 하나의 인덱스 값에 대응할 수 있다. 따라서, 특정 후보 파라미터가 나머지 후보 그룹들에 포함될 때, 인터 예측 유닛(22222)은 그룹 인덱스에 의해 특정 후보 파라미터를 결정할 수 있다. 적어도 하나의 구현에서, 제1 후보 그룹에서 제외된 후보 파라미터들 전부는 나머지 후보 그룹에 추가될 수 있다. 적어도 하나의 구현에서, 제1 후보 그룹에 대한 세트 인덱스에 의해 표현되는 후보 파라미터들은 나머지 후보 그룹들 각각에 대한 그룹 인덱스에 의해 표현되는 후보 파라미터들과 동일할 수 있다. 예를 들어, 세트 인덱스가 제1 후보 그룹 내의 베이스 후보 및 움직임 차이를 나타내는 경우, 인터 예측 유닛(22222)은 그룹 인덱스가 나머지 후보 그룹들 내의 베이스 후보 및 움직임 차이를 나타낼 수 있다고 결정할 수 있다. 따라서, 디코더 모듈(222)은 결정된 베이스 후보(예를 들어, 그룹 인덱스에 의해 결정됨)에 기초하여 벡터 후보들 중 하나 및 프레임 후보들 중 하나를 선택하고, 그룹 인덱스에 의해 결정된 움직임 차이를 결정하고, 선택된 벡터 후보들을 조절하여, 결정된 움직임 차이에 기초하여 선택된 프레임 후보에 대응하는 움직임 벡터를 생성할 수 있다. 적어도 하나의 구현에서, 세트 인덱스가 제1 후보 그룹 내의 차이 크기만을 나타낼 때, 그룹 인덱스는 나머지 후보 그룹들 내의 차이 크기를 나타낼 수 있다.
적어도 하나의 구현에서, 후보 그룹들의 수는 2보다 클 수 있다. 예를 들어, 후보 그룹들의 수는 4개일 수 있다. 인터 예측 유닛(22222)은 이전 블록들의 예측 모드들에 기초하여 후보 파라미터를 4개의 후보 그룹으로 분류할 수 있다. 구현에서, 세트 플래그는 후보 그룹들 중 어느 것이 특정 후보 파라미터를 포함하는지를 나타내는 인덱스로 변경될 수 있다.
적어도 하나의 구현에서, 후보 그룹들의 수가 2개일 때, 세트 인덱스 및 그룹 인덱스는 동일한 인덱스에 의해 표현될 수 있다. 적어도 하나의 구현에서, 특정 후보 파라미터가 제1 후보 그룹에 포함될 때 예측 파라미터들 중 적어도 하나를 결정하기 위해 예측 표시들 중 하나가 세트 인덱스로 간주될 수 있다. 적어도 하나의 구현에서, 특정 후보 파라미터가 다른 후보 그룹에 포함될 때 예측 파라미터들 중 적어도 하나를 결정하기 위해 예측 표시들 중 하나가 그룹 인덱스로 간주될 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 그룹 인덱스가 없는 나머지 후보 그룹들에서 특정 후보 파라미터를 결정할 수 있다. 인터 예측 유닛(22222)은 베이스 후보 인덱스에 의해 베이스 후보를 결정하고, 움직임 차이 표시에 의해 움직임 차이를 결정할 수 있다. 추가로, 인터 예측 유닛(22222)은 예측 방향 인덱스에 기초하여 블록 유닛이 이중 예측 블록인지 단일 예측 블록인지를 더 결정할 수 있다. 따라서, 디코더 모듈(222)은 결정된 베이스 후보에 기초하여 벡터 후보들 중 하나 및 프레임 후보들 중 하나를 선택하고, 선택된 벡터 후보들을 조절하여, 선택된 프레임 후보에 대응하는 움직임 벡터를 생성할 수 있다. 추가로, 디코더 모듈(222)은 움직임 벡터를 미러링하여 미러 벡터를 생성하고, 선택된 프레임 후보를 미러링하여, 선택된 프레임 후보 및 예측 방향 인덱스에 기초하여 미러링된 프레임 후보를 생성할지를 결정할 수 있다.
다시 도 3을 참조하면, 블록(36)에서, 디코더 모듈(222)은 결정된 예측 파라미터들에 기초하여 블록 유닛을 재구성할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 예측 파라미터들에 따라 블록 유닛 내의 블록 컴포넌트들 중 하나에 대한 예측된 컴포넌트를 생성할 수 있다. 적어도 하나의 구현에서, 제1 합산기(2224)는 블록 유닛을 재구성하기 위해, 예측된 컴포넌트들 및 복수의 잔차 컴포넌트에 기초하여 복수의 재구성된 컴포넌트를 생성할 수 있다. 구현에서, 제1 합산기(2224)는 엔트로피 디코딩 유닛(2221) 및 역양자화/역변환 유닛(2223)을 통해 블록 유닛의 잔차 컴포넌트들을 수신할 수 있다. 구현에서, 잔차 컴포넌트들은 비트스트림으로부터 결정될 수 있다. 적어도 하나의 구현에서, 디코더 모듈(222)은 이미지 프레임 및 비디오를 재구성하기 위해 이미지 프레임 내의 다른 블록 유닛들 전부를 재구성할 수 있다.
도 5는 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 움직임 벡터 차이(MMVD) 후보 파라미터들을 갖는 복수의 병합 모드에 기초하여 블록 유닛을 재구성하기 위한 예시적인 재구성 방법의 흐름도를 도시한다. 방법을 수행하는 다양한 방식들이 존재하므로, 예시적인 방법은 예시로서만 제공된다. 이하에서 설명되는 방법은 예를 들어 도 1 및 도 2에 도시된 구성을 사용하여 수행될 수 있고, 이러한 도면들의 다양한 구성요소들은 예시적인 방법을 설명하는 데에 참조된다. 도 5에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법 또는 서브루틴을 나타낼 수 있다. 또한, 블록들의 순서는 예시일 뿐이며 변경될 수 있다. 본 개시내용으로부터 벗어나지 않고서 추가 블록들이 추가될 수 있거나 더 적은 블록들이 이용될 수 있다.
블록(51)에서, 디코더 모듈(222)은 비디오 데이터에 따라 이미지 프레임으로부터 블록 유닛을 결정할 수 있다.
적어도 하나의 구현에서, 비디오 데이터는 비트스트림일 수 있다. 적어도 하나의 구현에서, 목적지 디바이스(12)는 목적지 디바이스(12)의 제2 인터페이스(123)를 통해 소스 디바이스(11)와 같은 인코더로부터 비트스트림을 수신할 수 있다. 제2 인터페이스(123)는 디코더 모듈(222)에 비트스트림을 제공할 수 있다. 디코더 모듈(222)은 비트스트림에 기초하여 이미지 프레임을 결정하고, 비트스트림 내의 복수의 분할 표시에 따라 이미지 프레임을 나누어 블록 유닛을 결정할 수 있다. 예를 들어, 디코더 모듈(222)은 이미지 프레임들을 나누어 복수의 코딩 트리 유닛을 생성할 수 있고, 비디오 코딩 표준에 기초한 분할 표시들에 따라 코딩 트리 유닛들 중 하나를 더 나누어 블록 유닛을 결정할 수 있다.
적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2221)은 비트스트림을 디코딩하여 블록 유닛에 대한 복수의 예측 표시를 결정할 수 있고, 다음으로, 디코더 모듈(222)은 예측 표시들에 기초하여 블록 유닛을 더 재구성할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 복수의 플래그 및 복수의 인덱스를 포함할 수 있다.
블록(52)에서, 예측 프로세스 유닛(2222)은 세트 플래그에 대응하는 복수의 후보 그룹 중 하나를 선택할 수 있다.
적어도 하나의 구현에서, 블록 유닛이 MMVD 모드에서 예측될 때 블록 유닛을 예측하기 위한 복수의 움직임 파라미터가 존재할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들은 베이스 움직임, 움직임 차이, 및 예측 방향을 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들 각각은 복수의 후보 파라미터를 포함할 수 있다. 적어도 하나의 구현에서, 디코더 모듈(222)은 움직임 파라미터들 각각에 대한 후보 파라미터들로부터 예측 파라미터를 선택할 수 있다. 예를 들어, 예측 파라미터들 중 하나는 베이스 움직임의 후보 파라미터들로부터 선택될 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 이웃 움직임 정보에 기초하여 블록 유닛에 대한 복수의 베이스 후보를 생성할 수 있다. 적어도 하나의 구현에서, 베이스 후보들은 베이스 움직임을 선택하기 위한 후보 파라미터들일 수 있다. 예를 들어, 베이스 후보들은 HEVC(high efficiency video coding) 또는 VVC(versatile video coding)와 같은 비디오 코딩 표준에 기초하여 스킵 모드, 직접 모드, 및 병합 모드에서 생성될 수 있다. 베이스 후보들 각각은 적어도 하나의 프레임 후보 및 적어도 하나의 벡터 후보를 포함할 수 있다. 일 구현에서, 베이스 후보들 중 특정 베이스 후보가 이중 예측 후보일 때, 그 특정 베이스 후보는 제1 참조 리스트(L0) 내의 제1 프레임 후보, 제1 프레임 후보에 대응하는 제1 벡터 후보, 제2 참조 리스트(L1) 내의 제2 프레임 후보, 및 제2 프레임 후보에 대응하는 제2 벡터 후보를 포함할 수 있다. 다른 구현에서, 특정 베이스 후보가 제1 참조 리스트(L0)에 대한 단일 예측 후보일 때, 특정 베이스 후보는 제1 참조 리스트(L0) 내의 제1 프레임 후보 및 제1 프레임 후보에 대응하는 제1 벡터 후보를 포함할 수 있다.
적어도 하나의 구현에서, 움직임 차이는 차이 크기 및 차이 방향을 더 포함 할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 베이스 후보들 중 하나를 선택하고, 움직임 차이를 결정하여, 선택된 베이스 후보 내의 벡터 후보를 조절할 수 있다. 적어도 하나의 구현에서, 복수의 차이 거리 후보는 차이 크기를 선택하기 위한 후보 파라미터들이고, 복수의 차이 방향 후보는 차이 방향을 선택하기 위한 후보 파라미터들이다. 적어도 하나의 구현에서, 차이 방향은 선택된 베이스 후보의 벡터 후보를 조절하기 위한 방향 각도를 나타낼 수 있다. 적어도 하나의 구현에서, 차이 방향 후보들은 4개의 조절 방향 (+, 0), (0, +), (-, 0) 및 (0, -)을 포함할 수 있다. 구현에서, 4개의 좌표 방향의 방향 각도들은 0°, 90°, 180°, 270°일 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 블록 유닛을 예측하기 위해 제1 참조 리스트(L0) 및 제2 참조 리스트(L1) 중 적어도 하나를 선택할 수 있다. 블록 유닛이 제1 참조 리스트(L0) 내의 제1 프레임 후보들 중 하나와 제2 참조 리스트(L1) 내의 제2 프레임 후보들 중 하나에 기초하여 예측될 때, 블록 유닛은 제1 참조 리스트(L0) 및 제2 참조 리스트(L1)에 기초하여 예측된 이중 예측 블록이다. 블록 유닛이 제1 참조 리스트(L0) 내의 제1 프레임 후보들 중 하나에 기초하여 예측될 때, 블록 유닛은 제1 참조 리스트(L0)에 기초하여 예측된 단일 예측 블록이다. 블록 유닛을 예측하기 위한 참조 리스트가 베이스 움직임에 의해 결정된 참조 리스트와 다를 때, 인터 예측 유닛(22222)은 베이스 움직임에 의해 결정된 참조 리스트 내의 프레임 후보를 미러링함으로써 블록 유닛의 참조 리스트 내의 프레임 후보를 검색할 수 있다.
적어도 하나의 구현에서, 움직임 파라미터들의 후보 파라미터는 하나 이상의 제1 움직임 파라미터를 선택하기 위한 복수의 제1 MMVD 후보 파라미터 및 하나 이상의 제2 움직임 파라미터를 선택하기 위한 복수의 제2 MMVD 후보 파라미터를 포함할 수 있다. 적어도 하나의 구현에서, 하나 이상의 제1 움직임 파라미터의 제1 MMVD 후보 파라미터는 후보 그룹들 내에 분산될 수 있다. 적어도 하나의 구현에서, 후보 그룹들 각각은 제1 움직임 파라미터들 중 대응하는 것을 예측하기 위한 제1 MMVD 후보 파라미터들을 각각 포함하는 하나 이상의 제1 MMVD 후보 리스트를 포함한다. 적어도 하나의 구현에서, 하나 이상의 제1 움직임 파라미터의 수는 후보 그룹들 각각 내의 하나 이상의 제1 MMVD 후보 리스트의 수와 동일할 수 있다. 적어도 하나의 구현에서, 제2 MMVD 후보 파라미터는 제1 MMVD 후보 리스트와는 다른 하나 이상의 제2 MMVD 후보 리스트에 포함될 수 있다. 적어도 하나의 구현에서, 제2 MMVD 후보 파라미터는 후보 그룹들로부터 제외될 수 있다.
적어도 하나의 구현에서, 후보 그룹들 내의 후보 파라미터들의 분포가 미리 정의될 수 있다(예를 들어, 인코더 모듈(112) 및 디코더 모듈(222)에서). 따라서, 인터 예측 유닛(22222)은 디코더 모듈(222)로부터 후보 그룹들 내의 제1 MMVD 후보 파라미터들의 분류된 결과를 직접 결정할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 제1 MMVD 후보 파라미터들을 포함하는 후보 그룹들을 직접 결정할 수 있다. 구현에서, 후보 그룹들 각각 내의 제1 MMVD 후보 파라미터들은 디코더 모듈(222)에서 미리 정의될 수 있다.
적어도 하나의 구현에서, 예측 표시들은 블록 유닛의 예측 파라미터들 중 적어도 하나가 후보 그룹들 중 특정 그룹으로부터 선택되는지를 나타내는 세트 플래그를 더 포함할 수 있다. 따라서, 세트 플래그가 1일 때, 인터 예측 유닛(22222)은 블록 유닛의 예측 파라미터들 중 적어도 하나가 특정 후보 그룹으로부터 선택된 것임을 직접 결정할 수 있다. 추가로, 세트 플래그가 0일 때, 인터 예측 유닛(22222)은 블록 유닛의 예측 파라미터들 중 적어도 하나가 특정 후보 그룹으로부터 선택되지 않은 것임을 직접 결정할 수 있다. 적어도 하나의 구현에서, 세트 플래그는 블록 유닛의 예측 파라미터들 중 적어도 하나가 특정 후보 그룹으로부터 선택되는지를 나타내기 위한 fpel_mmvd_enable_flag일 수 있다. 적어도 하나의 구현에서, 세트 플래그가 슬라이스 헤더에 포함될 때, 세트 플래그는 slice_fpel_mmvd_enabled_flag일 수 있다.
다시 도 5를 참조하면, 블록(53)에서, 예측 프로세스 유닛(2222)은 비디오 데이터에 따라 블록 유닛의 복수의 MMVD 표시를 결정할 수 있다.
적어도 하나의 구현에서, 예측 표시들은 MMVD 모드에 대한 베이스 후보 인덱스, 움직임 차이 표시, 및 예측 방향 인덱스 중 적어도 하나를 포함할 수 있다. 적어도 하나의 구현에서, 디코더 모듈은 예측 표시들 중 대응하는 것에 기초하여 움직임 파라미터들 각각에 대한 후보 파라미터들로부터 예측 파라미터들 중 하나를 선택할 수 있다. 예를 들어, 예측 파라미터들 중 하나는 베이스 후보 인덱스에 기초하여 베이스 움직임의 후보 파라미터들로부터 선택될 수 있다.
적어도 하나의 구현에서, 베이스 후보 인덱스는 예측 파라미터들에 포함된 선택된 베이스 후보를 나타내는 MMVD 플래그 mmvd_cand_flag일 수 있다. 일 구현에서, 블록 유닛의 베이스 움직임이 베이스 후보 인덱스에 기초하여 베이스 후보들로부터 선택된 이중 예측 후보일 때, 블록 유닛의 베이스 움직임은 제1 참조 리스트(L0) 내의 제1 프레임 후보, 제1 프레임 후보에 대응하는 제1 벡터 후보, 제2 참조 리스트(L1) 내의 제2 프레임 후보, 및 제2 프레임 후보에 대응하는 제2 벡터 후보를 나타낼 수 있다.
적어도 하나의 구현에서, 움직임 차이 표시는 움직임 거리 인덱스 및 움직임 방향 인덱스를 더 포함할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 움직임 차이 표시에 기초하여 움직임 차이를 결정하여, 선택된 베이스 후보 내의 벡터 후보를 조절할 수 있다. 적어도 하나의 구현에서, 움직임 거리 인덱스는 차이 거리 후보들로부터의 차이 크기를 나타내는 제1 MMVD 인덱스 mmvd_distance_idx일 수 있고, 움직임 방향 인덱스는 차이 방향 후보들로부터의 차이 방향을 나타내는 제2 MMVD 인덱스 mmvd_direction_idx일 수 있다. 적어도 하나의 구현에서, 움직임 차이 표시는 x-좌표 차이 및 y-좌표 차이를 포함하는 움직임 차이를 나타내는 움직임 차이 인덱스일 수 있다. 따라서, 인터 예측 유닛(22222)은 움직임 차이 인덱스에 의해 나타나는 x-좌표 차이와 y-좌표 차이에 기초하여 움직임 차이를 결정하여, 선택된 벡터 후보를 조절할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 예측 방향 인덱스에 기초하여 복수의 예측 방향 후보로부터 제1 참조 리스트(L0) 및 제2 참조 리스트(L1) 중 적어도 하나를 선택할 수 있다. 예측 방향 인덱스에 의해 결정된 참조 리스트가 베이스 후보 인덱스에 의해 결정된 참조 리스트와 다를 때, 인터 예측 유닛(22222)은 베이스 후보 인덱스에 의해 결정된 참조 리스트 내의 프레임 후보를 미러링함으로써, 예측 방향 인덱스에 의해 결정된 참조 리스트에서 프레임 후보를 검색할 수 있다. 적어도 하나의 구현에서, 예측 표시들에 예측 방향 인덱스가 존재하지 않을 수 있다. 구현에서, 베이스 후보 인덱스에 의해 결정된 참조 리스트는 블록 유닛을 예측하기 위해 선택된 참조 리스트로서 미리 설정된다.
적어도 하나의 구현에서, 예측 표시들은 세트 인덱스를 포함할 수 있다. 구현에서, 움직임 차이 표시가 움직임 차이 인덱스일 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 차이 인덱스, 및 예측 방향 인덱스 중 적어도 하나를 표현할 수 있다. 적어도 하나의 구현에서, 움직임 차이 표시가 움직임 거리 인덱스 및 움직임 방향 인덱스를 포함할 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 거리 인덱스, 움직임 방향 인덱스, 및 예측 방향 인덱스 중 적어도 하나를 표현할 수 있다. 예를 들어, 세트 인덱스가 움직임 거리 인덱스 및 움직임 방향 인덱스를 표현할 때, 디코더 모듈(222)은 세트 인덱스로부터 차이 크기 및 차이 방향을 직접 결정할 수 있다. 추가로, 세트 인덱스가 움직임 거리 인덱스만을 표현할 때, 디코더 모듈(222)은 세트 인덱스에 기초하여 차이 크기를 결정할 수 있다. 구현에서, 세트 인덱스는 움직임 거리 인덱스이다. 적어도 하나의 구현에서, 세트 인덱스가 움직임 거리 인덱스 및 움직임 방향 인덱스를 표현할 때, 차이 거리 후보들 및 차이 방향 후보들은 후보 그룹들에 분산된 그룹 파라미터들일 수 있다. 구현에서, 베이스 후보들 및 예측 방향 후보들은 후보 그룹들에 포함되지 않는다. 적어도 하나의 구현에서, 세트 인덱스가 움직임 거리 인덱스를 표현할 때, 차이 거리 후보는 후보 그룹들에 분산된 그룹 파라미터들일 수 있다. 구현에서, 베이스 후보들, 차이 방향 후보들 및 예측 방향 후보들은 후보 그룹들에 포함되지 않는다.
적어도 하나의 구현에서, 세트 플래그가 1일 때, 인터 예측 유닛(22222)은 세트 인덱스에 기초하여 특정 후보 그룹으로부터의 예측 파라미터들 중 적어도 하나를 직접 결정할 수 있다. 또한, 세트 플래그가 0일 때, 인터 예측 유닛(22222)은 그룹 인덱스에 기초하여 다른 후보 그룹들의 예측 파라미터들 중 적어도 하나를 직접 결정할 수 있다. 적어도 하나의 구현에서, 후보 그룹의 수가 2개일 때, 세트 인덱스와 그룹 인덱스는 동일한 인덱스에 의해 표현될 수 있다. 적어도 하나의 구현에서, 특정 후보 그룹을 나타내는 세트 플래그가 1일 때, 예측 표시들 중 하나는 예측 파라미터들 중 적어도 하나를 결정하기 위한 세트 인덱스로서 간주될 수 있다. 구현에서, 다른 후보 그룹을 나타내는 세트 플래그가 0일 때, 예측 표시들 중 하나는 예측 파라미터들 중 적어도 하나를 결정하기 위한 그룹 인덱스로 간주될 수 있다.
다시 도 5를 참조하면, 블록(54)에서, 디코더 모듈(222)은 MMVD 표시들 및 선택된 후보 그룹에 기초하여 블록 유닛의 복수의 MMVD 예측 파라미터를 선택할 수 있다.
적어도 하나의 구현에서, 블록 유닛이 MMVD 모드에서 예측될 때, 예측 파라미터들은 MMVD 예측 파라미터들이다. 적어도 하나의 구현에서, 세트 플래그가 1일 때, 인터 예측 유닛(22222)은 세트 인덱스 및 다른 예측 표시들에 기초하여 MMVD 예측 파라미터들을 결정할 수 있다. 예를 들어, 세트 인덱스가 베이스 후보 인덱스 및 움직임 차이 인덱스를 표현할 때, 인터 예측 유닛(22222)은 세트 인덱스에 기초하여 블록 유닛의 베이스 후보와 움직임 차이를 직접 결정하고, 예측 방향 인덱스에 기초하여 블록 유닛이 이중 예측 블록인지 또는 단일 예측 블록인지를 결정할 수 있다. 적어도 하나의 구현에서, 세트 인덱스 및 그룹 인덱스 각각이 움직임 거리 인덱스를 표현할 때, 인터 예측 유닛(22222)은 세트 인덱스에 기초하여 블록 유닛의 차이 크기를 결정하고, 각각의 경우, 베이스 후보 인덱스, 차이 방향 인덱스 및 예측 방향 인덱스에 기초하여 다른 예측 파라미터들을 결정할 수 있다.
적어도 하나의 구현에서, 세트 플래그가 0일 때, 인터 예측 유닛(22222)은 그룹 인덱스 및 다른 예측 표시들에 기초하여 MMVD 예측 파라미터들을 결정할 수 있다. 예를 들어, 세트 인덱스 및 그룹 인덱스 각각이 움직임 거리 인덱스를 표현할 때, 인터 예측 유닛(22222)은 그룹 인덱스로부터 블록 유닛의 차이 크기를 결정하고, 각각의 인덱스가 설정된 경우 베이스 후보 인덱스, 차이 방향 인덱스, 및 예측 방향 인덱스에 기초하여 다른 예측 파라미터들을 결정할 수 있다.
블록(55)에서, 디코더 모듈(222)은 MMVD 예측 파라미터들에 기초하여 블록 유닛을 재구성할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 예측 파라미터들에 따라 블록 유닛 내의 블록 컴포넌트들 중 하나에 대한 예측된 컴포넌트를 생성할 수 있다. 적어도 하나의 구현에서, 제1 합산기(2224)는 블록 유닛을 재구성하기 위해, 예측된 컴포넌트들 및 복수의 잔차 컴포넌트에 기초하여 복수의 재구성된 컴포넌트를 생성할 수 있다. 구현에서, 제1 합산기(2224)는 엔트로피 디코딩 유닛(2221) 및 역양자화/역변환 유닛(2223)을 통해 블록 유닛의 잔차 컴포넌트들을 수신할 수 있다. 구현에서, 잔차 컴포넌트들은 비트스트림으로부터 결정될 수 있다. 적어도 하나의 구현에서, 디코더 모듈(222)은 이미지 프레임 및 비디오를 재구성하기 위해 이미지 프레임 내의 다른 블록 유닛들 전부를 재구성할 수 있다.
도 6은 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 움직임 벡터 차이(MMVD) 후보 파라미터들을 갖는 복수의 병합 모드에 기초하여 블록 유닛을 재구성하기 위한 예시적인 재구성 방법의 흐름도를 도시한다. 방법을 수행하는 다양한 방식들이 존재하므로, 예시적인 방법은 예시로서만 제공된다. 이하에서 설명되는 방법은 예를 들어 도 1 및 도 2에 도시된 구성을 사용하여 수행될 수 있고, 이러한 도면들의 다양한 구성요소들은 예시적인 방법을 설명하는 데에 참조된다. 도 6에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법 또는 서브루틴을 나타낼 수 있다. 또한, 블록들의 순서는 예시일 뿐이며 변경될 수 있다. 본 개시내용으로부터 벗어나지 않고서 추가 블록들이 추가될 수 있거나 더 적은 블록들이 이용될 수 있다.
블록(61)에서, 디코더 모듈(222)은 비디오 데이터에 따라 이미지 프레임으로부터 블록 유닛을 결정할 수 있다.
적어도 하나의 구현에서, 비디오 데이터는 비트스트림일 수 있다. 적어도 하나의 구현에서, 목적지 디바이스(12)는 목적지 디바이스(12)의 제2 인터페이스(123)를 통해 소스 디바이스(11)와 같은 인코더로부터 비트스트림을 수신할 수 있다. 제2 인터페이스(123)는 디코더 모듈(222)에 비트스트림을 제공할 수 있다. 디코더 모듈(222)은 비트스트림에 기초하여 이미지 프레임을 결정하고, 비트스트림 내의 복수의 분할 표시에 따라 이미지 프레임을 나누어 블록 유닛을 결정할 수 있다. 예를 들어, 디코더 모듈(222)은 이미지 프레임들을 나누여 복수의 코딩 트리 유닛을 생성할 수 있고, 비디오 코딩 표준에 기초한 분할 표시들에 따라 코딩 트리 유닛들 중 하나를 더 나누어 블록 유닛을 결정할 수 있다.
적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2221)은 비트스트림을 디코딩하여 블록 유닛에 대한 복수의 예측 표시를 결정할 수 있고, 다음으로, 디코더 모듈(222)은 예측 표시들에 기초하여 블록 유닛을 더 재구성할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 복수의 플래그 및 복수의 인덱스를 포함할 수 있다.
블록(62)에서, 예측 프로세스 유닛(2222)은 세트 플래그에 기초하여, 움직임 벡터 차이(MMVD) 후보 리스트를 갖는 하나 이상의 제1 병합 모드를 각각 포함할 수 있는 복수의 후보 그룹 중 하나를 선택할 수 있다.
적어도 하나의 구현에서, 블록 유닛이 MMVD 모드에서 예측될 때, 블록 유닛을 예측하기 위한 복수의 움직임 파라미터가 존재할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들은 베이스 움직임, 움직임 차이, 및 예측 방향을 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들 각각은 복수의 후보 파라미터를 포함할 수 있다. 적어도 하나의 구현에서, 디코더 모듈(222)은 움직임 파라미터들 각각에 대한 후보 파라미터로부터 예측 파라미터를 선택할 수 있다. 예를 들어, 예측 파라미터들 중 하나는 베이스 움직임의 후보 파라미터로부터 선택될 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 이웃 움직임 정보에 기초하여 블록 유닛에 대한 복수의 베이스 후보를 생성할 수 있다. 적어도 하나의 구현에서, 베이스 후보들은 베이스 움직임을 선택하기 위한 후보 파라미터들이다. 베이스 후보들 각각은 적어도 하나의 프레임 후보 및 적어도 하나의 벡터 후보를 포함한다.
적어도 하나의 구현에서, 움직임 차이는 차이 크기 및 차이 방향을 더 포함할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 베이스 후보들 중 하나를 선택하고, 움직임 차이를 결정하여, 선택된 베이스 후보 내의 벡터 후보를 조절할 수 있다. 적어도 하나의 구현에서, 복수의 차이 거리 후보는 차이 크기를 선택하기 위한 후보 파라미터들이고, 복수의 차이 방향 후보는 차이 방향을 선택하기 위한 후보 파라미터들이다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 블록 유닛을 예측하기 위한 복수의 예측 방향 후보로부터 제1 참조 리스트(L0) 및 제2 참조 리스트(L1) 중 적어도 하나를 선택할 수 있다. 제1 참조 리스트(L0)의 제1 프레임 후보들 중 하나와 제2 참조 리스트(L1)의 제2 프레임 후보들 중 하나에 기초하여 블록 유닛이 예측될 때, 블록 유닛은 제1 참조 리스트(L0) 및 제2 참조 리스트(L1)에 기초하여 예측된 이중 예측 블록이다.
적어도 하나의 구현에서, 움직임 파라미터들 중 적어도 하나에 대응하는 후보 파라미터들은 후보 그룹들로 분류될 수 있다. 구현에서, 다른 움직임 파라미터들은 후보 그룹들에 포함되지 않을 수 있다. 적어도 하나의 구현에서, 후보 그룹들 각각은 복수의 제1 MMVD 후보 파라미터를 각각 갖는 하나 이상의 제1 MMVD 후보 리스트를 포함할 수 있다. 구현에서, 제1 MMVD 후보 파라미터들은 적어도 하나의 분류된 움직임 파라미터 내의 후보 파라미터일 수 있다. 적어도 하나의 구현에서, 적어도 하나의 분류된 움직임 파라미터의 수는 후보 그룹들 각각 내의 하나 이상의 제1 MMVD 후보 리스트의 수와 동일할 수 있다. 예를 들어, 차이 거리 후보들 및 차이 방향 후보들은 후보 그룹들로 분류될 수 있다. 구현에서, 베이스 후보들 및 예측 방향 후보들은 후보 그룹들에 포함되지 않을 수 있다. 따라서, 적어도 하나의 분류된 움직임 파라미터는 차이 크기 및 차이 방향이고, 적어도 하나의 분류된 움직임 파라미터의 수는 2개일 수 있다. 추가로, 후보 그룹들 각각 내의 하나 이상의 제1 MMVD 후보 리스트의 수는 2일 수 있다. 구현에서, 후보 그룹들 각각 내의 2개의 제1 MMVD 후보 리스트 중 하나는 차이 거리 후보들을 포함할 수 있고, 후보 그룹들 각각 내의 제1 MMVD 후보 리스트들 중 다른 하나는 차이 방향 후보들을 포함할 수 있다. 적어도 하나의 구현에서, 차이 거리 후보들은 후보 그룹들로 분류될 수 있다. 구현에서, 베이스 후보들, 차이 방향 후보들, 및 예측 방향 후보들은 후보 그룹들에 포함되지 않을 수 있다. 따라서, 적어도 하나의 분류된 움직임 파라미터는 차이 크기이고, 적어도 하나의 분류된 움직임 파라미터의 수는 1개일 수 있다. 추가로, 후보 그룹들 각각 내의 하나 이상의 제1 MMVD 후보 리스트의 수는 1개일 수 있다. 구현에서, 후보 그룹들 각각 내의 제1 MMVD 후보 리스트는 차이 거리 후보들을 포함할 수 있다.
적어도 하나의 구현에서, 후보 그룹들 내의 후보 파라미터들의 분포가 미리 정의될 수 있다(예를 들어, 인코더 모듈(112) 및 디코더 모듈(222)에서). 따라서, 인터 예측 유닛(22222)은 디코더 모듈(222)로부터 후보 그룹들 내의 제1 MMVD 후보 파라미터들의 분류된 결과를 직접 결정할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 제1 MMVD 후보 파라미터들을 포함하는 후보 그룹들을 직접 결정할 수 있다. 구현에서, 후보 그룹들 각각 내의 제1 MMVD 후보 파라미터들은 디코더 모듈(222)에서 미리 정의될 수 있다.
적어도 하나의 구현에서, 예측 표시들은 블록 유닛의 예측 파라미터들 중 적어도 하나가 후보 그룹들 중 특정 후보 그룹으로부터 선택되는지를 나타내는 세트 플래그를 포함할 수 있다. 따라서, 세트 플래그가 1일 때, 인터 예측 유닛(22222)은 특정 후보 그룹 내의 블록 유닛의 예측 파라미터들 중 적어도 하나를 직접 선택할 수 있다. 추가로, 세트 플래그가 0일 때, 인터 예측 유닛(22222)은 블록 유닛의 예측 파라미터들 중 적어도 하나가 특정 후보 그룹으로부터 선택되지 않은 것으로 직접 결정할 수 있다. 적어도 하나의 구현에서, 세트 플래그는 블록 유닛의 예측 파라미터들 중 적어도 하나가 특정 후보 그룹으로부터 선택되는지를 나타내기 위한 fpel_mmvd_enable_flag일 수 있다. 적어도 하나의 구현에서, 세트 플래그가 슬라이스 헤더에 포함될 때, 세트 플래그는 slice_fpel_mmvd_enabled_flag일 수 있다.
다시 도 6을 참조하면, 블록(63)에서, 예측 프로세스 유닛(2222)은 비디오 데이터에 따라 블록 유닛의 복수의 MMVD 표시를 결정할 수 있다.
적어도 하나의 구현에서, 예측 표시들은 MMVD 모드에 대한 베이스 후보 인덱스, 움직임 차이 표시, 및 예측 방향 인덱스를 나타내는 MMVD 표시를 포함할 수 있다. 적어도 하나의 구현에서, MMVD 표시들은 베이스 후보 인덱스, 움직임 차이 표시 및 예측 방향 인덱스 중 적어도 하나를 포함할 수 있다. 적어도 하나의 구현에서, 디코더 모듈(222)은 MMVD 표시들 중 대응하는 것에 기초하여 움직임 파라미터들 각각에 대한 후보 파라미터들로부터 예측 파라미터들 중 하나를 선택할 수 있다. 예를 들어, 예측 파라미터들 중 하나는 베이스 후보 인덱스에 기초하여 베이스 움직임의 후보 파라미터들로부터 선택될 수 있다.
적어도 하나의 구현에서, 베이스 후보 인덱스는 예측 파라미터들에 포함된 선택된 베이스 후보를 나타내는 MMVD 플래그 mmvd_cand_flag일 수 있다. 일 구현에서, 블록 유닛의 베이스 움직임이 베이스 후보 인덱스에 기초하여 베이스 후보로부터 선택된 이중 예측 후보일 때, 블록 유닛의 베이스 움직임은 제1 참조 리스트(L0) 내의 제1 프레임 후보, 제1 프레임 후보에 대응하는 제1 벡터 후보, 제2 참조 리스트(L1) 내의 제2 프레임 후보, 및 제2 프레임 후보에 해당하는 제2 벡터 후보를 나타낼 수 있다.
적어도 하나의 구현에서, 움직임 차이 표시는 움직임 거리 인덱스 및 움직임 방향 인덱스를 더 포함할 수 있다. 적어도 하나의 구현에서, 움직임 거리 인덱스는 차이 거리 후보들로부터의 차이 크기를 나타내는 제1 MMVD 인덱스 mmvd_distance_idx일 수 있고, 움직임 방향 인덱스는 차이 방향 후보들로부터의 차이 방향을 나타내는 제2 MMVD 인덱스 mmvd_direction_idx일 수 있다. 적어도 하나의 구현에서, 움직임 차이 표시는 x-좌표 차이 및 y-좌표 차이를 포함하는 움직임 차이를 나타내는 움직임 차이 인덱스일 수 있다. 따라서, 인터 예측 유닛(22222)은 움직임 차이 인덱스에 의해 나타나는 x-좌표 차이와 y-좌표 차이에 기초하여 움직임 차이를 결정하여, 선택된 벡터 후보를 조절할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 예측 방향 인덱스에 기초하여 복수의 예측 방향 후보로부터 제1 참조 리스트(L0) 및 제2 참조 리스트(L1) 중 적어도 하나를 선택할 수 있다. 적어도 하나의 구현에서, 베이스 후보 인덱스에 의해 결정된 참조 리스트가 블록 유닛을 예측하기 위한 선택된 참조 리스트로서 미리 설정될 때, 예측 표시들 내에 예측 방향 인덱스가 존재하지 않을 수 있다.
적어도 하나의 구현에서, MMVD 표시들은 세트 인덱스를 포함할 수 있다. 구현에서, 움직임 차이 표시가 움직임 차이 인덱스일 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 차이 인덱스, 및 예측 방향 인덱스 중 적어도 하나를 나타낼 수 있다. 구현에서, 베이스 후보 인덱스, 움직임 차이 인덱스, 및 예측 방향 인덱스로부터 선택된 적어도 하나의 표시된 인덱스는 MMVD 표시들에 포함되지 않을 수 있고, 세트 인덱스 내에 표시되지 않고 베이스 후보 인덱스, 움직임 차이 인덱스 및 예측 방향 인덱스로부터 선택된 다른 인덱스들은 MMVD 표시들에 직접 포함될 수 있다. 적어도 하나의 구현에서, 움직임 차이 표시가 움직임 거리 인덱스 및 움직임 방향 인덱스를 포함할 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 거리 인덱스, 움직임 방향 인덱스 및 예측 방향 인덱스 중 적어도 하나를 나타낼 수 있다. 구현에서, 베이스 후보 인덱스, 움직임 거리 인덱스, 움직임 방향 인덱스, 및 예측 방향 인덱스로부터 선택된 적어도 하나의 표시된 인덱스는 MMVD 표시들에 포함되지 않을 수 있고, 세트 인덱스 내에 표시되지 않고 베이스 후보 인덱스, 움직임 거리 인덱스, 움직임 방향 인덱스, 및 예측 방향 인덱스로부터 선택된 다른 인덱스들은 MMVD 표시들에 직접 포함될 수 있다. 예를 들어, 세트 인덱스가 움직임 거리 인덱스만을 표현할 때, 디코더 모듈(222)은 세트 인덱스에 기초하여 차이 크기를 직접 결정할 수 있다. 구현에서, 세트 인덱스가 움직임 거리 인덱스를 표현할 때, 차이 거리 후보들은 후보 그룹들 내에 분산될 수 있다. 구현에서, 베이스 후보들, 차이 방향 후보들, 및 예측 방향 후보들은 후보 그룹들에 포함되지 않는다. 추가로, MMVD 표시들에 직접 포함된 베이스 후보 인덱스, 움직임 방향 인덱스, 및 예측 방향 인덱스는 세트 인덱스에 의해 나타나지 않을 수 있다.
블록(64)에서, 디코더 모듈(222)은 선택된 후보 그룹에 포함된 하나 이상의 제1 MMVD 후보 리스트로부터 블록 유닛의 하나 이상의 제1 MMVD 예측 파라미터를 선택할 수 있다.
적어도 하나의 구현에서, 하나 이상의 제1 MMVD 예측 파라미터는 블록 유닛 내의 예측 파라미터들에 포함된다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 세트 인덱스에 기초하여 특정 후보 그룹으로부터 하나 이상의 제1 MMVD 예측 파라미터를 직접 결정할 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 선택된 후보 그룹 내의 하나 이상의 제1 MMVD 후보 리스트로부터 하나 이상의 제1 MMVD 예측 파라미터를 선택할 수 있다.
적어도 하나의 구현에서, 적어도 하나의 분류된 움직임 파라미터의 수가 1개일 때, 선택된 후보 그룹 내의 하나 이상의 제1 MMVD 후보 리스트의 수는 1개일 수 있다. 따라서, 인터 예측 유닛(22222)은 선택된 후보 그룹 내의 하나의 제1 MMVD 후보 리스트로부터의 하나의 분류된 움직임 파라미터에 대응하는 하나의 제1 MMVD 예측 파라미터를 선택할 수 있다. 예를 들어, 하나의 제1 MMVD 예측 파라미터에 대응하는 하나의 분류된 움직임 파라미터는 블록 유닛의 차이 크기이다. 따라서, 하나의 제1 MMVD 후보 리스트는 차이 거리 후보들만을 포함할 수 있다. 구현에서, 인터 예측 유닛(22222)은 세트 인덱스에 기초하여 선택된 후보 그룹 내의 하나의 제1 MMVD 후보 리스트 내의 차이 거리 후보들로부터 블록 유닛의 차이 크기를 선택할 수 있다.
적어도 하나의 구현에서, 적어도 하나의 분류된 움직임 파라미터의 수가 1보다 클 때, 선택된 후보 그룹 내의 하나 이상의 제1 MMVD 후보 리스트의 수는 1보다 클 수 있다. 따라서, 인터 예측 유닛(22222)은 선택된 후보 그룹 내의 제1 MMVD 후보 리스트로부터의 분류된 움직임 파라미터 중 하나에 각각 대응할 수 있는 제1 MMVD 예측 파라미터들을 선택할 수 있다. 적어도 하나의 구현에서, 분류된 움직임 파라미터들 각각이 선택된 후보 그룹 내의 제1 MMVD 후보 리스트들 중 하나에 대응하므로, 인터 예측 유닛(22222)은 선택된 후보 그룹 내의 제1 MMVD 후보 리스트들 중 대응하는 것 내의 제1 MMVD 후보 파라미터들로부터 제1 MMVD 예측 파라미터들 각각을 선택할 수 있다.
블록(65)에서, 디코더 모듈(222)은 후보 그룹들에서 제외된 하나 이상의 제2 MMVD 후보 리스트로부터 블록 유닛의 하나 이상의 제2 MMVD 예측 파라미터를 선택할 수 있다.
적어도 하나의 구현에서, 하나 이상의 제2 MMVD 예측 파라미터는 블록 유닛의 예측 파라미터들에 포함된다. 적어도 하나의 구현에서, 적어도 하나의 분류되지 않은 움직임 파라미터는 후보 그룹들에서 제외되기 때문에, 적어도 하나의 분류되지 않은 움직임 파라미터 내의 후보 파라미터는 후보 그룹들에서 제외된 하나 이상의 제2 MMVD 후보 리스트에 포함될 수 있다. 구현에서, 하나 이상의 제2 MMVD 후보 리스트 각각은 하나 이상의 제1 MMVD 후보 리스트와 상이하다. 적어도 하나의 구현에서, 적어도 하나의 분류되지 않은 움직임 파라미터들 각각의 후보 파라미터들은 하나 이상의 제2 MMVD 후보 리스트들 중 대응하는 것에 포함될 수 있다. 예를 들어, 적어도 하나의 분류되지 않은 움직임 파라미터가 베이스 움직임 및 차이 방향일 때, 베이스 후보들은 2개의 제2 MMVD 후보 리스트 중 하나에 포함될 수 있고, 차이 방향 후보들은 2개의 제2 MMVD 후보 리스트 중 다른 것에 포함될 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 MMVD 표시들 중 하나 이상에 기초하여 적어도 하나의 분류되지 않은 움직임 파라미터에 각각 대응할 수 있는 하나 이상의 제2 MMVD 예측 파라미터를 결정할 수 있다. 적어도 하나의 구현에서, 하나 이상의 MMVD 표시 각각은 세트 인덱스와 상이하다. 적어도 하나의 구현에서, 인터 예측 유닛(22222)은 하나 이상의 MMVD 표시 중 하나에 대응하는 것에 기초하여 하나 이상의 제2 MMVD 후보 리스트 중 대응하는 것 내의 제2 MMVD 후보 파라미터로부터 하나 이상의 제2 MMVD 예측 파라미터 각각을 선택할 수 있다. 예를 들어, 적어도 하나의 분류되지 않은 움직임 파라미터가 베이스 움직임 및 차이 방향일 때, 블록 유닛의 베이스 움직임은 베이스 후보 인덱스에 기초하여 결정될 수 있고, 블록 유닛의 차이 크기는 움직임 거리 인덱스에 기초하여 결정될 수 있다.
블록(66)에서, 디코더 모듈(222)은 하나 이상의 제1 예측 파라미터 및 하나 이상의 제2 예측 파라미터에 기초하여 블록 유닛을 재구성할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22222)은 하나 이상의 제1 예측 파라미터 및 하나 이상의 제2 예측 파라미터에 따라 블록 유닛 내의 블록 컴포넌트들 중 하나에 대한 예측된 컴포넌트를 생성할 수 있다. 적어도 하나의 구현에서, 제1 합산기(2224)는 블록 유닛을 재구성하기 위해, 예측된 컴포넌트들 및 복수의 잔차 컴포넌트에 기초하여 복수의 재구성된 컴포넌트를 생성할 수 있다. 구현에서, 제1 합산기(2224)는 엔트로피 디코딩 유닛(2221) 및 역양자화/역변환 유닛(2223)을 통해 블록 유닛의 잔차 컴포넌트들을 수신할 수 있다. 구현에서, 잔차 컴포넌트들은 비트스트림으로부터 결정될 수 있다. 적어도 하나의 구현에서, 디코더 모듈(222)은 이미지 프레임 및 비디오를 재구성하기 위해 이미지 프레임 내의 다른 블록 유닛들 전부를 재구성할 수 있다.
도 7은 본 출원의 예시적인 구현에 따른, 도 1의 시스템 내의 소스 디바이스(11)의 인코더 모듈(112)의 예시적인 구현을 나타내는 인코더 모듈(712)의 블록도이다. 적어도 하나의 구현에서, 인코더 모듈(712)은 예측 프로세서(예를 들어, 예측 프로세스 유닛(7121)), 적어도 하나의 합산기(예를 들어, 제1 합산기(7122) 및 제2 합산기(7125)), 양자화/역변환 프로세서(예를 들어, 예를 들어, 변환/양자화 유닛(7123)), 역양자화/역변환 프로세서(예를 들어, 역양자화/역변환 유닛(7124)), 필터(예를 들어, 필터링 유닛(7126)), 디코딩된 픽처 버퍼(예를 들어, 디코딩된 픽처 버퍼(7127)), 및 엔트로피 인코더(예를 들어, 엔트로피 인코딩 유닛(7128))를 포함할 수 있다. 적어도 하나의 구현에서, 인코더 모듈(712)의 예측 프로세스 유닛(7121)은 분할 프로세서(예를 들어, 분할 유닛(71211)), 인트라 예측 프로세서(예를 들어, 인트라 예측 유닛(71212)), 및 인터 예측 프로세서(예를 들어, 인터 예측 유닛(71213))을 더 포함할 수 있다. 적어도 하나의 구현에서, 인코더 모듈(712)은 소스 비디오를 수신하고 소스 비디오를 인코딩하여 비트스트림을 출력할 수 있다.
적어도 하나의 구현에서, 인코더 모듈(712)은 복수의 이미지 프레임을 포함하는 소스 비디오를 수신한 다음, 코딩 구조에 따라 이미지 프레임들을 나눌 수 있다. 적어도 하나의 구현에서, 이미지 프레임들 각각은 적어도 하나의 이미지 블록으로 나누어질 수 있다. 적어도 하나의 이미지 블록은 복수의 휘도 샘플을 갖는 휘도 블록, 및 복수의 색차 샘플을 갖는 적어도 하나의 색차 블록을 포함할 수 있다. 휘도 블록 및 적어도 하나의 색차 블록은 매크로블록들, 코딩 트리 유닛들(CTU), 코딩 블록들(CB), 그것의 세분화 및/또는 다른 등가 코딩 유닛들을 생성하기 위해 더 나누어질 수 있다. 적어도 하나의 구현에서, 인코더 모듈(712)은 소스 비디오의 추가적인 세분화를 수행할 수 있다. 본 명세서에 설명된 본 구현들은 소스 비디오가 인코딩 이전에 및/또는 인코딩 동안 분할되는 방식에 관계없이 비디오 코딩에 일반적으로 적용가능하다는 점에 유의해야 한다.
적어도 하나의 구현에서, 인코딩 프로세스 동안, 예측 프로세스 유닛(7121)은 이미지 프레임들 중 특정한 이미지 프레임의 현재 이미지 블록을 수신할 수 있다. 현재 이미지 블록은 특정 이미지 프레임 내의 휘도 블록 중 하나 및 색차 블록 중 적어도 하나일 수 있다. 분할 유닛(71211)은 현재 이미지 블록을 다수의 블록 유닛으로 나눌 수 있다. 인트라 예측 유닛(71212)은 현재 블록 유닛과 동일한 프레임 내의 하나 이상의 이웃 블록에 대한 현재 블록 유닛의 인트라 예측 코딩을 수행하여 공간적 예측을 제공할 수 있다. 인터 예측 유닛(71213)은 하나 이상의 참조 이미지 블록 내의 하나 이상의 블록에 대한 현재 블록 유닛의 인터 예측 코딩을 수행하여, 시간적 예측을 제공할 수 있다.
적어도 하나의 구현에서, 예측 프로세스 유닛(7121)은 비용 함수와 같은 모드 선택 방법에 기초하여 인트라 예측 유닛(71212) 및 인터 예측 유닛(71213)에 의해 생성된 코딩 결과들 중 하나를 선택할 수 있다. 적어도 하나의 구현에서, 모드 선택 방법은 레이트 왜곡 최적화(RDO) 프로세스일 수 있다. 예측 프로세스 유닛(7121)은 선택된 코딩 결과를 결정하고, 선택된 코딩 결과에 대응하는 예측 블록을 잔차 블록을 생성하기 위한 제1 합산기(7122), 및 인코딩된 블록 유닛을 재구성하는 제2 합산기(7125)에 제공할 수 있다. 적어도 하나의 구현에서, 예측 프로세스 유닛(7121)은 움직임 벡터들, 인트라 모드 표시자들, 분할 정보, 및 다른 신택스 정보와 같은 신택스 요소들을 엔트로피 인코딩 유닛(7128)에 더 제공할 수 있다.
적어도 하나의 구현에서, 인트라 예측 유닛(71212)은 현재 블록 유닛을 인트라 예측할 수 있다. 적어도 하나의 구현에서, 인트라 예측 유닛(71212)은 현재 블록 유닛에 이웃한 재구성된 샘플에 관한 인트라 예측 모드를 결정하여 현재 블록 유닛을 인코딩할 수 있다. 적어도 하나의 구현에서, 인트라 예측 유닛(71212)은 다양한 인트라 예측 모드를 이용하여 현재 블록 유닛을 인코딩할 수 있고, 인트라 예측 유닛(71212) 또는 예측 프로세스 유닛(7121)은 테스트된 모드들로부터 적절한 인트라 예측 모드를 선택할 수 있다. 적어도 하나의 구현에서, 인트라 예측 유닛(71212)은 크로스 컴포넌트 예측 모드를 사용하여 현재 블록 유닛을 인코딩하여, 현재 블록 유닛의 루마 컴포넌트들에 기초하여 현재 블록 유닛의 2개의 크로마 컴포넌트 중 하나를 예측할 수 있다. 추가로, 인트라 예측 유닛(71212)은 현재 블록 유닛의 2개의 크로마 컴포넌트 중 제1 크로마 컴포넌트를, 현재 블록 유닛의 2개의 크로마 컴포넌트 중 다른 것에 기초하여 예측할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(71213)은 위에서 설명된 바와 같이 인트라 예측 유닛(71212)에 의해 수행되는 인트라 예측에 대한 대안으로서 현재 블록 유닛을 인터 예측할 수 있다. 인터 예측 유닛(71213)은 움직임 벡터를 생성하기 위해 현재 블록 유닛의 움직임을 추정하도록 움직임 추정을 수행할 수 있다. 움직임 벡터는 참조 이미지 블록 내의 참조 블록 유닛에 대한 현재 이미지 블록 내의 현재 블록 유닛의 변위를 나타낼 수 있다. 적어도 하나의 구현에서, 인터 예측 유닛(71213)은 디코딩된 픽처 버퍼(7127)에 저장된 적어도 하나의 참조 이미지 블록을 수신하고, 수신된 참조 이미지 블록들에 기초하여 움직임을 추정하여 움직임 벡터를 생성할 수 있다.
적어도 하나의 구현에서, 제1 합산기(7122)는 원래의 현재 블록 유닛으로부터 예측 프로세스 유닛(7121)에 의해 결정된 예측 블록을 감산함으로써 잔차 블록을 생성할 수 있다. 제1 합산기(7122)는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 표현할 수 있다.
적어도 하나의 구현에서, 변환/양자화 유닛(7123)은 잔차 블록에 변환을 적용하여 잔차 변환 계수를 생성한 다음, 잔차 변환 계수들을 양자화하여 비트 레이트를 더 감소시킬 수 있다. 적어도 하나의 구현에서, 변환은 DCT, DST, AMT, MDNSST, HyGT, 신호 의존 변환, KLT, 웨이블릿 변환, 정수 변환, 서브-밴드 변환, 또는 개념적으로 유사한 변환 중 하나일 수 있다. 적어도 하나의 구현에서, 변환은 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 변환할 수 있다. 적어도 하나의 구현에서, 양자화의 정도는 양자화 파라미터를 조절함으로써 수정될 수 있다. 적어도 하나의 구현에서, 변환/양자화 유닛(7123)은 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다. 대안적으로, 엔트로피 인코딩 유닛(7128)은 스캔을 수행할 수 있다.
적어도 하나의 구현에서, 엔트로피 인코딩 유닛(7128)은 예측 프로세스 유닛(7121) 및 변환/양자화 유닛(7123)으로부터 양자화 파라미터, 변환 데이터, 움직임 벡터들, 인트라 모드들, 분할 정보 및 기타 신택스 정보를 포함하는 복수의 신택스 요소를 수신하고, 신택스 요소들을 비트스트림으로 인코딩할 수 있다. 적어도 하나의 구현에서, 엔트로피 인코딩 유닛(7128)은 양자화된 변환 계수들을 엔트로피 인코딩할 수 있다. 적어도 하나의 구현에서, 엔트로피 인코딩 유닛(7128)은 CAVLC, CABAC, SBAC, PIPE 코딩 또는 다른 엔트로피 코딩 기술을 수행하여, 인코딩된 비트스트림을 생성할 수 있다. 적어도 하나의 구현에서, 인코딩된 비트스트림은 다른 디바이스(예를 들어, 목적지 디바이스(12))로 전송되거나 나중의 전송 또는 검색을 위해 보관될 수 있다.
적어도 하나의 구현에서, 역양자화/역변환 유닛(7124)은 역양자화 및 역변환을 적용하여, 나중에 참조 블록으로 사용하기 위해 픽셀 도메인에서 잔차 블록을 재구성할 수 있다. 적어도 하나의 구현에서, 제2 합산기(7125)는 재구성된 잔차 블록을 예측 프로세스 유닛(7121)으로부터 제공된 예측 블록에 추가하여, 디코딩된 픽처 버퍼(7127)에 저장하기 위한 재구성된 블록을 생성할 수 있다.
적어도 하나의 구현에서, 필터링 유닛(7126)은 재구성된 블록으로부터 블록 성 아티팩트를 제거하기 위해 디블로킹 필터, SAO 필터, 양방향 필터 및/또는 ALF를 포함할 수 있다. 디블로킹 필터, SAO 필터, 양방향 필터, 및 ALF에 더하여 추가 필터들이 (루프 또는 포스트 루프에서) 또한 사용될 수 있다. 그러한 필터들은 간결성을 위해 도시되지 않았지만, 요구되는 경우 제2 합산기(7125)의 출력을 필터링할 수 있다.
적어도 하나의 구현에서, 디코딩된 픽처 버퍼(7127)는 예를 들어 인트라-코딩 모드 또는 인터-코딩 모드에서 인코더 모듈(712)에 의한 비디오 인코딩에 사용하기 위해 참조 블록을 저장하는 참조 픽처 메모리일 수 있다. 디코딩된 픽처 버퍼(7127)는 SDRAM, MRAM, RRAM을 포함하는 DRAM, 또는 다른 유형의 메모리 디바이스들과 같은 다양한 메모리 디바이스에 의해 형성될 수 있다. 적어도 하나의 구현에서, 디코딩된 픽처 버퍼(7127)는 인코더 모듈(712)의 다른 컴포넌트들과 함께 온-칩일 수 있거나, 그러한 컴포넌트들에 대해 오프-칩일 수 있다.
적어도 하나의 구현에서, 인코더 모듈(712)은 도 3에 도시된 바와 같이 복수의 후보 그룹 내의 움직임 벡터 차이(MMVD) 후보 파라미터들을 갖는 복수의 병합 모드에 기초하여 블록 유닛을 예측하기 위한 예측 방법을 수행할 수 있다. 도 3의 방법은 예를 들어 도 1 및 도 7에 도시된 구성들을 이용하여 수행될 수 있고, 이러한 도면들의 다양한 구성요소들은 예시적인 방법을 설명하는 데 참조된다. 또한, 도 3의 블록들의 순서는 예시일 뿐이며 변경될 수 있다. 본 개시내용으로부터 벗어나지 않고서 추가 블록들이 추가되거나 더 적은 블록들이 이용될 수 있다.
블록(31)에서, 인코더 모듈(712)은 비디오 데이터에 따라 이미지 프레임으로부터 블록 유닛을 결정할 수 있고, 블록 유닛에 대한 복수의 후보 파라미터를 결정할 수 있다.
적어도 하나의 구현에서, 비디오 데이터는 비디오일 수 있다. 소스 디바이스(11)는 소스 모듈(111)에 의해 비디오를 수신할 수 있다. 인코더 모듈(712)은 비디오로부터 이미지 프레임을 결정하고, 이미지 프레임을 나누어 블록 유닛을 결정할 수 있다.
적어도 하나의 구현에서, 소스 디바이스(11)의 예측 프로세스 유닛(7121)은 분할 유닛(71211)을 통해 비디오로부터 블록 유닛을 결정할 수 있고, 다음으로, 인코더 모듈(712)은 분할 유닛(71211)의 분할 결과에 기초하여 복수의 분할 표시를 비트스트림 내에 제공할 수 있다.
적어도 하나의 구현에서, 소스 디바이스(11)는 블록 유닛에 대한 복수의 후보 모드로부터 선택된 움직임 벡터 차이(MMVD) 모드를 갖는 병합 모드의 후보 파라미터들을 결정하고, 후보 파라미터들로부터 복수의 예측 파라미터를 선택하여 블록 유닛을 예측할 수 있다. 구현에서, 소스 디바이스(11)는 비트스트림 내에서 블록 유닛의 예측 파라미터들을 나타내는 복수의 예측 표시를 목적지 디바이스(12)에 제공할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 복수의 플래그 및 복수의 인덱스를 포함할 수 있다.
적어도 하나의 구현에서, MMVD 모드는 복수의 움직임 파라미터를 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들은 베이스 움직임, 움직임 차이, 및 예측 방향을 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들 각각은 후보 파라미터들을 포함할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 MMVD 모드에 대한 베이스 후보 인덱스, 움직임 차이 표시, 및 예측 방향 인덱스 중 적어도 하나를 포함할 수 있다. 적어도 하나의 구현에서, 예측 표시는 움직임 파라미터들 각각에 대해 비트스트림에 제공될 수 있다. 예를 들어, 베이스 움직임에 대해 베이스 후보 인덱스가 비트스트림에 제공될 수 있다.
적어도 하나의 구현에서, 움직임 차이 표시가 움직임 거리 인덱스 및 움직임 방향 인덱스를 포함할 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 거리 인덱스, 움직임 방향 인덱스, 및 예측 방향 인덱스 중 적어도 하나를 표현할 수 있다. 예를 들어, 세트 인덱스가 움직임 거리 인덱스만을 표현할 때, 인코더 모듈(712)은 차이 크기를 나타내기 위해 비트스트림에 세트 인덱스를 제공할 수 있다.
블록(32)에서, 인코더 모듈(712)은 후보 파라미터들로부터 선택된 복수의 그룹 파라미터를 각각 포함하는 복수의 후보 그룹을 결정할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(71213)은 블록 유닛 이전에 인코딩된 복수의 이전 블록을 결정할 수 있다. 구현에서, 이전 블록들은 후보 모드들로부터 선택된 복수의 이전 모드에 의해 예측된다. 적어도 하나의 구현에서, 이전 모드들이 MMVD 모드일 때, 이전 모드들은 후보 파라미터들로부터 선택된 복수의 이전 파라미터를 포함할 수 있다. 따라서, 인터 예측 유닛(71213)은 이전 블록들의 이전 파라미터들을 결정하고, 예측 모드들의 이전 파라미터들과 동일하거나 유사한 후보 파라미터를 제1 후보 그룹으로 분류할 수 있다. 예를 들어, 인터 예측 유닛(71213)이 세트 인덱스를 사용하여 차이 크기들을 표현할 때, 인터 예측 유닛(71213)은 후보 파라미터들 내의 차이 거리 후보들을 이전 블록들의 이전 모드들의 차이 크기들과 비교한다.
적어도 하나의 구현에서, 후보 그룹들 내의 후보 파라미터들의 분포가 미리 정의될 수 있다(예를 들어, 인코더 모듈(712) 및 디코더 모듈(122)에서). 따라서, 인터 예측 유닛(71213)은 인코더 모듈(712)로부터 후보 그룹들의 후보 파라미터들의 분류된 결과를 직접 결정할 수 있다. 구현에서, 후보 그룹들 각각 내의 후보 파라미터들은 인코더 모듈(712)에서 미리 정의될 수 있다.
블록(33)에서, 인코더 모듈(712)은 블록 유닛을 예측하기 위한 후보 파라미터들 중 특정 후보 파라미터가 제1 후보 그룹에 포함되는지를 결정할 수 있다. 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되어 있는 경우, 절차는 블록(34)으로 진행할 수 있다. 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되지 않은 경우, 절차는 블록(35)으로 진행할 수 있다.
적어도 하나의 구현에서, 블록 유닛이 MMVD 모드에서 예측될 때, 인코더 모듈(712)은 블록 유닛의 특정 예측 후보가 제1 후보 그룹에 포함되는지를 결정할 수 있다. 인코더 모듈(712)이 블록 유닛의 특정 예측 후보가 제1 후보 그룹에 포함된 것으로 결정할 때, 인코더 모듈(712)은 1과 동일한 세트 플래그를 비트스트림에 제공할 수 있다. 인코더 모듈(712)이 블록 유닛의 특정 예측 후보가 제1 후보 그룹에 포함되지 않는 것으로 결정하면, 인코더 모듈(712)은 0과 동일한 세트 플래그를 비트스트림에 제공할 수 있다. 적어도 하나의 구현에서, 세트 플래그는 블록 유닛의 특정 후보 파라미터가 제1 후보 그룹에 포함되는지를 나타내는 fpel_mmvd_enable_flag일 수 있다. 적어도 하나의 구현에서, 세트 플래그가 슬라이스 헤더에 포함될 때, 세트 플래그는 slice_fpel_mmvd_enabled_flag일 수 있다.
블록(34)에서, 인코더 모듈(712)은 세트 인덱스에 대응하는 특정 후보 파라미터에 기초하여 예측 파라미터들을 결정할 수 있다.
적어도 하나의 구현에서, 제1 후보 그룹 내의 그룹 후보들 각각은 세트 인덱스의 하나의 인덱스 값에 대응할 수 있다. 따라서, 특정 예측 후보가 제1 후보 그룹에 포함될 때, 인터 예측 유닛(71213)은 특정 후보 파라미터에 대응하는 인덱스 값을 결정하고, 세트 인덱스를 비트스트림에 제공할 수 있다.
블록(35)에서, 인코더 모듈(712)은 나머지 후보 그룹들 내의 특정 후보 파라미터에 기초하여 예측 파라미터들을 결정할 수 있다.
적어도 하나의 구현에서, 나머지 후보 그룹들 내의 예측 후보들 각각은 그룹 인덱스의 하나의 인덱스 값에 대응한다. 따라서, 특정 예측 후보가 제1 후보 그룹에 포함되지 않을 때, 인터 예측 유닛(91213)은 특정 후보 파라미터에 대응하는 인덱스 값을 결정하고, 그룹 인덱스를 비트스트림에 제공할 수 있다.
블록(36)에서, 인코더 모듈(712)은 결정된 예측 파라미터들에 기초하여 블록 유닛을 재구성할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(71213)은 결정된 예측 파라미터들에 따라 블록 유닛 내의 블록 컴포넌트들 중 하나에 대한 예측된 컴포넌트를 생성할 수 있다. 적어도 하나의 구현에서, 제1 합산기(7122)는 이미지 프레임을 예측하기 위해, 예측된 컴포넌트들 및 복수의 원본 컴포넌트에 기초하여 복수의 잔차 컴포넌트를 생성할 수 있다. 구현에서, 원본 컴포넌트들은 비디오의 이미지 프레임으로부터 직접 결정된다. 구현에서, 변환/양자화 유닛(9123) 및 엔트로피 인코딩 유닛(9128)은 잔차 컴포넌트들을 인코딩하여, 목적지 디바이스(12)에 비트스트림을 제공할 수 있다. 추가로, 제2 합산기(9125)는 잔차 컴포넌트들 및 예측된 컴포넌트들에 기초하여 블록 유닛을 더 재구성하여, 복수의 재구성된 컴포넌트를 생성할 수 있다. 따라서, 블록 유닛의 재구성된 컴포넌트들은 다음 블록 유닛을 예측하기 위한 참조 블록일 수 있다.
도 8은 본 출원의 예시적인 구현에 따른, 복수의 후보 그룹 내의 움직임 벡터 차이(MMVD) 후보 파라미터들을 갖는 복수의 병합 모드에 기초하여 블록 유닛을 예측하기 위한 예시적인 예측 방법의 흐름도를 도시한다. 방법을 수행하는 다양한 방식들이 존재하므로, 예시적인 방법은 예시로서만 제공된다. 이하에서 설명되는 방법은 예를 들어 도 1 및 도 2에 도시된 구성을 사용하여 수행될 수 있고, 이러한 도면들의 다양한 구성요소들은 예시적인 방법을 설명하는 데에 참조된다. 도 8에 도시된 각각의 블록은 예시적인 방법에서 수행되는 하나 이상의 프로세스, 방법 또는 서브루틴을 나타낼 수 있다. 또한, 블록들의 순서는 예시일 뿐이며 변경될 수 있다. 본 개시내용으로부터 벗어나지 않고서 추가 블록들이 추가될 수 있거나 더 적은 블록들이 이용될 수 있다.
블록(81)에서, 인코더 모듈(712)은 비디오 데이터에 따라 이미지 프레임으로부터 블록 유닛을 결정할 수 있다.
적어도 하나의 구현에서, 비디오 데이터는 비디오일 수 있다. 소스 디바이스(11)는 소스 모듈(111)에 의해 비디오를 수신할 수 있다. 인코더 모듈(712)은 비디오로부터 이미지 프레임을 결정하고, 이미지 프레임을 나누어 블록 유닛을 결정할 수 있다. 적어도 하나의 구현에서, 소스 디바이스(11)의 예측 프로세스 유닛(7121)은 분할 유닛(71211)을 통해 비디오로부터 블록 유닛을 결정할 수 있고, 다음으로, 인코더 모듈(712)은 분할 유닛(71211)의 분할 결과에 기초하여 비트스트림에 복수의 분할 표시를 제공할 수 있다.
블록(82)에서, 인코더 모듈(712)은 복수의 후보 그룹 내의 복수의 제1 MMVD 후보 파라미터로부터 블록 유닛의 움직임 벡터 차이(MMVD) 예측 파라미터들을 갖는 하나 이상의 제1 병합 모드를 결정하고, 후보 그룹들에서 제외된 복수의 제2 MMVD 후보 파라미터로부터 블록 유닛의 하나 이상의 제2 MMVD 예측 파라미터를 결정한다.
적어도 하나의 구현에서, 블록 유닛이 복수의 후보 모드로부터 선택된 MMVD 모드에서 예측될 때, 인코더 모듈(712)은 복수의 MMVD 후보 파라미터를 결정하고, MMVD 후보 파라미터들로부터 복수의 MMVD 예측 파라미터를 선택할 수 있다.
적어도 하나의 구현에서, MMVD 모드는 복수의 움직임 파라미터를 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들은 베이스 움직임, 움직임 차이 및 예측 방향을 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들은 베이스 움직임, 차이 크기, 차이 방향, 및 예측 방향을 포함할 수 있다. 적어도 하나의 구현에서, 움직임 파라미터들 각각은 MMVD 후보 파라미터를 포함할 수 있다.
적어도 하나의 구현에서, MMVD 후보 파라미터들은 제1 MMVD 후보 파라미터들 및 제2 MMVD 후보 파라미터들을 포함할 수 있고, 움직임 파라미터들은 하나 이상의 제1 움직임 파라미터 및 하나 이상의 제2 움직임 파라미터로 분리될 수 있다. 적어도 하나의 구현에서, 하나 이상의 제1 MMVD 예측 파라미터를 선택하기 위한 제1 MMVD 후보 파라미터들은 하나 이상의 제1 움직임 파라미터에 대응하고 후보 그룹들에 분산된 MMVD 후보 파라미터들일 수 있고, 하나 이상의 제2 MMVD 예측 파라미터를 선택하기 위한 제2 MMVD 후보 파라미터들은 하나 이상의 제2 움직임 파라미터에 대응하고 후보 그룹들에서 제외되는 MMVD 후보 파라미터들일 수 있다. 적어도 하나의 구현에서, 후보 그룹들 각각은 하나 이상의 제1 움직임 파라미터 각각에 대응하는 제1 MMVD 후보 파라미터를 포함할 수 있다. 예를 들어, 하나 이상의 제1 움직임 파라미터는 차이 크기 및 차이 방향들이다. 구현에서, 후보 그룹들 각각은 차이 크기의 제1 MMVD 후보 파라미터 및 차이 방향의 제1 MMVD 후보 파라미터를 포함할 수 있다. 예를 들어, 하나 이상의 제1 움직임 파라미터는 차이 크기이다. 구현에서, 후보 그룹들 각각은 차이 크기의 제1 MMVD 후보 파라미터들을 포함할 수 있다.
적어도 하나의 구현에서, 후보 그룹들 내의 제1 MMVD 후보 파라미터들의 분포는 인코더 모듈(712) 및 디코더 모듈(122)에서 미리 정의될 수 있다. 따라서, 인터 예측 유닛(71213)은 후보 그룹들 내의 제1 MMVD 후보 파라미터들의 미리 정의된 분포를 직접 결정할 수 있다.
블록(83)에서, 인코더 모듈(712)은 블록 유닛에 대응하는 후보 그룹들 중 특정 후보 그룹을 나타내는 세트 플래그, 특정 후보 그룹에 포함된 하나 이상의 제1 MMVD 예측 파라미터를 나타내는 세트 인덱스, 및 후보 그룹에서 제외된 하나 이상의 제2 MMVD 예측 파라미터를 나타내는 하나 이상의 MMVD 인덱스를 결정할 수 있다.
구현에서, 인코더 모듈(712)은 블록 유닛의 MMVD 예측 파라미터들을 나타내는 복수의 예측 표시를 목적지 디바이스(12)에 제공할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 복수의 플래그 및 복수의 인덱스를 포함할 수 있다. 적어도 하나의 구현에서, 예측 표시들은 움직임 파라미터를 표시하기 위해 MMVD 모드에 대해 베이스 후보 인덱스, 움직임 차이 표시, 및 예측 방향 인덱스 중 적어도 하나를 포함할 수 있다.
적어도 하나의 구현에서, 움직임 차이 표시가 움직임 거리 인덱스 및 움직임 방향 인덱스를 포함할 때, 세트 인덱스는 베이스 후보 인덱스, 움직임 거리 인덱스, 움직임 방향 인덱스, 및 예측 방향 인덱스 중 적어도 하나를 표현할 수 있다. 예를 들어, 세트 인덱스가 움직임 거리 인덱스만을 표현할 때, 인코더 모듈(712)은 차이 크기를 나타내기 위해 세트 인덱스를 제공할 수 있다.
적어도 하나의 구현에서, 인코더 모듈(712)은 블록 유닛의 하나 이상의 제1 MMVD 예측 파라미터가 후보 그룹들 중 제1 후보 그룹에 포함되는지를 결정할 수 있다. 인코더 모듈(712)이 블록 유닛의 하나 이상의 제1 MMVD 예측 파라미터가 제1 후보 그룹에 포함된 것으로 결정할 때, 인코더 모듈(712)은 1과 동일한 세트 플래그를 제공할 수 있다. 인코더 모듈(712)이 블록 유닛의 하나 이상의 제1 MMVD 예측 파라미터가 제1 후보 그룹에 포함되지 않는다고 결정할 때, 인코더 모듈(712)은 0과 동일한 세트 플래그를 제공할 수 있다. 적어도 하나의 구현에서, 세트 플래그는 블록 유닛의 하나 이상의 제1 MMVD 예측 파라미터가 제1 후보 그룹에 포함되는지를 나타내기 위한 fpel_mmvd_enable_flag일 수 있다. 적어도 하나의 구현에서, 세트 플래그가 슬라이스 헤더에 포함될 때, 세트 플래그는 slice_fpel_mmvd_enabled_flag일 수 있다.
적어도 하나의 구현에서, 후보 그룹들 내의 제1 MMVD 후보 파라미터들 각각은 세트 인덱스에 대한 복수의 제1 인덱스 값 중 하나에 대응한다. 따라서, 인코더 모듈(712)은 세트 인덱스에 대한 하나 이상의 제1 MMVD 예측 파라미터에 대응하는 제1 인덱스 값들 중 특정 값을 결정할 수 있다. 적어도 하나의 구현에서, 제2 MMVD 후보 파라미터들 각각은 하나 이상의 MMVD 인덱스 중 대응하는 것에 대한 복수의 제2 인덱스 값 중 하나에 대응한다. 따라서, 인터 예측 유닛(91213)은 하나 이상의 MMVD 인덱스 중 대응하는 것에 대해 하나 이상의 제1 MMVD 예측 파라미터 중 특정 제1 MMVD 예측 파라미터에 대응하는 제2 인덱스 값들 중 특정 제2 인덱스 값을 결정할 수 있다.
블록(84)에서, 인코더 모듈(712)은 세트 플래그, 세트 인덱스, 및 하나 이상의 MMVD 인덱스를 비트스트림에 제공할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(71213)은 하나 이상의 제1 MMVD 예측 파라미터 및 하나 이상의 제2 MMVD 예측 파라미터에 따라 블록 유닛 내의 블록 컴포넌트들 중 하나에 대한 예측된 컴포넌트를 생성할 수 있다. 적어도 하나의 구현에서, 제1 합산기(7122)는 이미지 프레임을 예측하기 위해 예측된 컴포넌트 및 복수의 원본 컴포넌트에 기초하여 복수의 잔차 컴포넌트를 생성할 수 있다. 구현에서, 원본 컴포넌트들은 비디오의 이미지 프레임으로부터 직접 결정된다. 구현에서, 변환/양자화 유닛(9123) 및 엔트로피 인코딩 유닛(9128)은 잔차 컴포넌트들을 인코딩할 수 있다. 적어도 하나의 구현에서, 인코딩된 잔차 컴포넌트들, 세트 플래그, 세트 인덱스 및 하나 이상의 MMVD 인덱스는 비트스트림에서 목적지 디바이스(12)에 제공될 수 있다.
이상의 설명으로부터, 본 출원에서 설명된 개념의 범위를 벗어나지 않고서 이러한 개념을 구현하기 위해 다양한 기술이 사용될 수 있음이 명백하다. 더욱이, 개념이 특정 구현들을 구체적으로 참조하여 설명되었지만, 본 기술분야의 통상의 기술자는 이러한 개념의 범위를 벗어나지 않고서 형태 및 세부 사항이 변경될 수 있음을 인식할 것이다. 따라서, 설명된 구현들은 모든 면에서 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다. 또한, 본 출원은 위에서 설명된 특정 구현들에 제한되지 않고, 본 개시내용의 범위를 벗어나지 않고서 많은 재배치, 수정 및 대체가 가능하다는 것을 이해해야 한다.

Claims (20)

  1. 전자 디바이스에 의해 비트스트림을 디코딩하는 방법으로서,
    상기 비트스트림에 따라 이미지 프레임으로부터 블록 유닛을 결정하는 단계;
    세트 플래그에 기초하여, 복수의 후보 그룹 중 하나를 선택하는 단계;
    상기 비트스트림에 따라 상기 블록 유닛의 움직임 벡터 차이(MMVD) 표시들을 갖는 복수의 병합 모드를 결정하는 단계;
    상기 복수의 MMVD 표시 및 상기 선택된 후보 그룹에 기초하여 상기 블록 유닛의 복수의 MMVD 예측 파라미터를 선택하는 단계; 및
    상기 복수의 MMVD 예측 파라미터에 기초하여 상기 블록 유닛을 재구성하는 단계
    를 포함하고,
    상기 후보 그룹들 각각은 복수의 제1 MMVD 후보 파라미터를 각각 포함하는 하나 이상의 제1 MMVD 후보 리스트를 포함하고,
    상기 복수의 MMVD 예측 파라미터 중 하나 이상은 상기 선택된 후보 그룹의 하나 이상의 제1 MMVD 후보 리스트 내의 상기 복수의 제1 MMVD 후보 파라미터로부터 선택되고,
    상기 복수의 MMVD 예측 파라미터 중 하나 이상이 아닌 MMVD 예측 파라미터들은 각각이 상기 하나 이상의 제1 MMVD 후보 리스트와는 상이한 하나 이상의 제2 MMVD 후보 리스트 내의 복수의 제2 MMVD 후보 파라미터로부터 선택되는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 복수의 MMVD 표시로부터 베이스 후보 인덱스, 움직임 차이 인덱스, 및 예측 방향 인덱스가 결정되는, 방법.
  6. 제5항에 있어서, 상기 복수의 MMVD 표시에 포함된 세트 인덱스는 상기 베이스 후보 인덱스, 상기 움직임 차이 인덱스, 및 상기 예측 방향 인덱스 중 하나 이상을 나타내는, 방법.
  7. 제6항에 있어서, 상기 세트 인덱스에 의해 나타나는 상기 베이스 후보 인덱스, 상기 움직임 차이 인덱스, 및 상기 예측 방향 인덱스 중 하나 이상의 수가 1일 때, 상기 세트 인덱스는 상기 복수의 MMVD 예측 파라미터 중 하나를 선택하기 위한 상기 베이스 후보 인덱스, 상기 움직임 차이 인덱스, 및 상기 예측 방향 인덱스 중 하나와 동일한, 방법.
  8. 비트스트림을 디코딩하기 위한 전자 디바이스로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고, 복수의 명령어를 저장하는 저장 디바이스
    를 포함하고, 상기 복수의 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서로 하여금:
    상기 비트스트림에 따라 이미지 프레임으로부터 블록 유닛을 결정하게 하고;
    세트 플래그에 기초하여, 복수의 후보 그룹 중 하나를 선택하게 하고;
    상기 비트스트림에 따라 상기 블록 유닛의 움직임 벡터 차이(MMVD) 표시들을 갖는 복수의 병합 모드를 결정하게 하고;
    상기 복수의 MMVD 표시 및 상기 선택된 후보 그룹에 기초하여 상기 블록 유닛의 복수의 MMVD 예측 파라미터를 선택하게 하고;
    상기 복수의 MMVD 예측 파라미터에 기초하여 상기 블록 유닛을 재구성하게 하고,
    상기 후보 그룹들 각각은 복수의 제1 MMVD 후보 파라미터를 각각 포함하는 하나 이상의 제1 MMVD 후보 리스트를 포함하고,
    상기 복수의 MMVD 예측 파라미터 중 하나 이상은 상기 선택된 후보 그룹의 하나 이상의 제1 MMVD 후보 리스트 내의 상기 복수의 제1 MMVD 후보 파라미터로부터 선택되고,
    상기 복수의 MMVD 예측 파라미터 중 하나 이상이 아닌 MMVD 예측 파라미터들은 상기 선택된 후보 그룹으로부터 제외되는 하나 이상의 제2 MMVD 후보 리스트 내의 복수의 제2 MMVD 후보 파라미터로부터 선택되는, 전자 디바이스.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제8항에 있어서, 상기 복수의 MMVD 표시로부터 베이스 후보 인덱스, 움직임 차이 인덱스, 및 예측 방향 인덱스가 결정되는, 전자 디바이스.
  13. 제12항에 있어서, 상기 복수의 MMVD 표시에 포함된 세트 인덱스는 상기 베이스 후보 인덱스, 상기 움직임 차이 인덱스, 및 상기 예측 방향 인덱스 중 하나 이상을 나타내는, 전자 디바이스.
  14. 제13항에 있어서, 상기 세트 인덱스에 의해 나타나는 상기 베이스 후보 인덱스, 상기 움직임 차이 인덱스, 및 상기 예측 방향 인덱스 중 하나 이상의 수가 1일 때, 상기 세트 인덱스는 상기 복수의 MMVD 예측 파라미터 중 하나를 선택하기 위한 상기 베이스 후보 인덱스, 상기 움직임 차이 인덱스, 및 상기 예측 방향 인덱스 중 하나와 동일한, 전자 디바이스.
  15. 전자 디바이스에 의해 비트스트림을 디코딩하는 방법으로서,
    상기 비트스트림에 따라 이미지 프레임으로부터 블록 유닛을 결정하는 단계;
    세트 플래그에 기초하여 복수의 후보 그룹 중 하나를 선택하는 단계 - 상기 후보 그룹들 각각은 움직임 벡터 차이(MMVD) 후보 리스트들을 갖는 하나 이상의 제1 병합 모드를 포함함 -;
    상기 선택된 후보 그룹에 포함된 하나 이상의 제1 MMVD 후보 리스트로부터 상기 블록 유닛의 하나 이상의 제1 MMVD 예측 파라미터를 선택하는 단계;
    상기 선택된 후보 그룹으로부터 각각 제외되는 하나 이상의 제2 MMVD 후보 리스트로부터 상기 블록 유닛의 하나 이상의 제2 MMVD 예측 파라미터를 선택하는 단계; 및
    상기 하나 이상의 제1 MMVD 예측 파라미터 및 상기 하나 이상의 제2 MMVD 예측 파라미터에 기초하여 상기 블록 유닛을 재구성하는 단계
    를 포함하고,
    상기 하나 이상의 제1 MMVD 예측 파라미터 각각은 상기 선택된 후보 그룹의 하나 이상의 제1 MMVD 후보 리스트 중 대응하는 것 내의 복수의 제1 MMVD 후보 파라미터로부터 선택되고,
    상기 하나 이상의 제2 MMVD 예측 파라미터 각각은 각각이 상기 하나 이상의 제1 MMVD 후보 리스트와는 상이한 상기 하나 이상의 제2 MMVD 후보 리스트 중 대응하는 것 내의 복수의 제2 MMVD 후보 파라미터로부터 선택되는, 방법.
  16. 삭제
  17. 삭제
  18. 제15항에 있어서, 상기 비트스트림에 포함된 복수의 MMVD 표시는 상기 하나 이상의 제1 MMVD 예측 파라미터 및 상기 하나 이상의 제2 MMVD 예측 파라미터를 나타내는, 방법.
  19. 제18항에 있어서, 상기 하나 이상의 제1 MMVD 예측 파라미터 및 상기 하나 이상의 제2 MMVD 예측 파라미터를 나타내는 베이스 후보 인덱스, 움직임 차이 표시, 및 예측 방향 인덱스는 상기 MMVD 표시들에 기초하여 결정되는, 방법.
  20. 제19항에 있어서, 상기 MMVD 표시들에 포함된 세트 인덱스는 상기 베이스 후보 인덱스, 상기 움직임 차이 표시, 및 상기 예측 방향 인덱스로부터 선택된 하나 이상의 표시된 인덱스를 나타내는, 방법.
KR1020217008745A 2018-08-28 2019-08-26 비디오 데이터를 코딩하기 위한 디바이스 및 방법 KR102585855B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237033556A KR20230146108A (ko) 2018-08-28 2019-08-26 비디오 데이터를 코딩하기 위한 디바이스 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862723880P 2018-08-28 2018-08-28
US62/723,880 2018-08-28
PCT/CN2019/102614 WO2020043061A1 (en) 2018-08-28 2019-08-26 Device and method for coding video data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033556A Division KR20230146108A (ko) 2018-08-28 2019-08-26 비디오 데이터를 코딩하기 위한 디바이스 및 방법

Publications (2)

Publication Number Publication Date
KR20210046750A KR20210046750A (ko) 2021-04-28
KR102585855B1 true KR102585855B1 (ko) 2023-10-11

Family

ID=69640513

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217008745A KR102585855B1 (ko) 2018-08-28 2019-08-26 비디오 데이터를 코딩하기 위한 디바이스 및 방법
KR1020237033556A KR20230146108A (ko) 2018-08-28 2019-08-26 비디오 데이터를 코딩하기 위한 디바이스 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237033556A KR20230146108A (ko) 2018-08-28 2019-08-26 비디오 데이터를 코딩하기 위한 디바이스 및 방법

Country Status (6)

Country Link
US (1) US11272197B2 (ko)
EP (1) EP3844950A4 (ko)
JP (1) JP7290713B2 (ko)
KR (2) KR102585855B1 (ko)
CN (2) CN112602322B (ko)
WO (1) WO2020043061A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3797516A1 (en) 2018-06-29 2021-03-31 Beijing Bytedance Network Technology Co. Ltd. Interaction between lut and amvp
EP3791588A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Checking order of motion candidates in lut
KR20210024502A (ko) 2018-06-29 2021-03-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝
TWI723444B (zh) 2018-06-29 2021-04-01 大陸商北京字節跳動網絡技術有限公司 使用一個或多個查找表來按順序存儲先前編碼的運動信息並使用它們來編碼後面的塊的概念
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
WO2020003278A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Update of look up table: fifo, constrained fifo
CN110662057B (zh) 2018-06-29 2022-06-21 北京字节跳动网络技术有限公司 视频处理方法、装置、设备以及存储比特流的方法
CN110662056B (zh) 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 哪个查找表需要更新或不更新
TW202025760A (zh) 2018-09-12 2020-07-01 大陸商北京字節跳動網絡技術有限公司 要檢查多少個hmvp候選
CN118214862A (zh) * 2018-09-17 2024-06-18 三星电子株式会社 用于编码和解码运动信息的方法及用于编码和解码运动信息的装置
KR20200056272A (ko) * 2018-11-14 2020-05-22 에스케이텔레콤 주식회사 인터 예측 방법 및 이를 이용한 영상 복호화 장치
CN118200597A (zh) 2018-11-14 2024-06-14 Sk电信有限公司 帧间预测设备和发送比特流的设备
CN113170191B (zh) * 2018-11-16 2022-05-27 寰发股份有限公司 视频编解码的预测方法以及预测装置
CN113273186A (zh) * 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
CN113302937B (zh) 2019-01-16 2024-08-02 北京字节跳动网络技术有限公司 运动候选推导
CN113615193B (zh) 2019-03-22 2024-06-25 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
US11375222B2 (en) * 2019-09-22 2022-06-28 Tencent America LLC Method and device for video encoding and decoding with interpolation filter flag being consistent with MMVD distances
WO2021188571A1 (en) * 2020-03-16 2021-09-23 Beijing Dajia Internet Information Technology Co., Ltd. Improvements on merge mode with motion vector differences
WO2024076074A1 (ko) * 2022-10-07 2024-04-11 엘지전자 주식회사 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020003281A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Video bitstream processing using an extended merge mode and signaled motion information of a block

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540912B (zh) * 2004-06-27 2011-05-18 苹果公司 对编码视频数据选择编码类型和预测模式
CN105791859B (zh) * 2010-05-26 2018-11-06 Lg电子株式会社 用于处理视频信号的方法和设备
US9349192B2 (en) * 2012-04-24 2016-05-24 Lg Electronics Inc. Method and apparatus for processing video signal
US9516332B2 (en) * 2012-12-21 2016-12-06 Qualcomm Incorporated Disparity vector derivation in three-dimensional video coding
WO2016195460A1 (ko) * 2015-06-05 2016-12-08 한양대학교 산학협력단 화면 내 예측에 대한 부호화/복호화 방법 및 장치
CN115002455A (zh) * 2015-06-05 2022-09-02 杜比实验室特许公司 图像编码和解码方法和图像解码设备
CN115022626A (zh) * 2016-10-04 2022-09-06 有限公司B1影像技术研究所 图像数据编码/解码方法和计算机可读记录介质
CN114205621A (zh) 2018-02-28 2022-03-18 三星电子株式会社 编码方法及其装置以及解码方法及其装置
KR20200139830A (ko) * 2018-05-21 2020-12-14 엘지전자 주식회사 영상 코딩 시스템에서 lut를 기반으로 도출된 mvd를 사용하는 영상 디코딩 방법 및 그 장치
JP2020036101A (ja) 2018-08-27 2020-03-05 シャープ株式会社 画像復号装置および画像符号化装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020003281A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Video bitstream processing using an extended merge mode and signaled motion information of a block

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Seungsoo Jeong, "CE4 Ultimate motion vector expression in J0024 (Test 4.2.9)", JVET-K0115, veresion 5, 2018.7.12.*

Also Published As

Publication number Publication date
JP7290713B2 (ja) 2023-06-13
US11272197B2 (en) 2022-03-08
KR20210046750A (ko) 2021-04-28
CN116781925A (zh) 2023-09-19
EP3844950A4 (en) 2022-05-25
EP3844950A1 (en) 2021-07-07
KR20230146108A (ko) 2023-10-18
JP2021534653A (ja) 2021-12-09
US20200077106A1 (en) 2020-03-05
CN112602322A (zh) 2021-04-02
WO2020043061A1 (en) 2020-03-05
CN112602322B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
KR102585855B1 (ko) 비디오 데이터를 코딩하기 위한 디바이스 및 방법
WO2019210840A1 (en) Device and method for coding video data based on different reference sets in linear model prediction
KR102391834B1 (ko) 조정된 인트라 모드 목록에 기초한 비디오 데이터를 코딩하기 위한 디바이스 및 방법
US10924733B2 (en) Device and method for coding video data based on mode list including different mode groups
US10893285B2 (en) Device and method for coding video data based on one or more reference lines
US11943437B2 (en) Device and method for coding video data
US20220166978A1 (en) Device and method for coding video data
US11930199B2 (en) Motion storing process for partition prediction mode
CN115550643A (zh) 用于编码视频数据的设备和方法
TW202310627A (zh) 用於編碼視訊資料的裝置和方法
US11051029B2 (en) Device and method for coding video data

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right