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

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

Info

Publication number
KR20220113533A
KR20220113533A KR1020227025262A KR20227025262A KR20220113533A KR 20220113533 A KR20220113533 A KR 20220113533A KR 1020227025262 A KR1020227025262 A KR 1020227025262A KR 20227025262 A KR20227025262 A KR 20227025262A KR 20220113533 A KR20220113533 A KR 20220113533A
Authority
KR
South Korea
Prior art keywords
block
value
ratio
equal
threshold value
Prior art date
Application number
KR1020227025262A
Other languages
English (en)
Inventor
위츠아오 양
츠흐위 텅
Original Assignee
에프쥐 이노베이션 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에프쥐 이노베이션 컴퍼니 리미티드 filed Critical 에프쥐 이노베이션 컴퍼니 리미티드
Publication of KR20220113533A publication Critical patent/KR20220113533A/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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

전자 디바이스에 의해 비트스트림을 디코딩하는 방법이 제공된다. 비트스트림의 이미지 프레임이 수신되고, 수신된 이미지 프레임으로부터 블록 폭 및 블록 높이를 갖는 블록 유닛이 결정된다. 전자 디바이스는 블록 폭과 블록 높이 사이의 비교에 기초하여 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는지 여부를 결정한다. 기하학적 파티셔닝 모드가 블록 유닛에 적용될 때, 블록 유닛은 블록 유닛의 상이한 병합 후보들에 의해 예측된 복수의 서브-블록들을 생성하도록 분할된다. 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 때, 기하학적 파티셔닝 모드와 상이한 예측 모드에 기초하여 블록 유닛을 예측함으로써 예측된 블록이 생성된다. 예측된 블록에 기초하여 블록 유닛이 재구성된다.

Description

비디오 데이터를 코딩하기 위한 디바이스 및 방법
관련 출원(들)에 대한 상호-참조
본 개시내용은 2019년 12월 30일자로 출원되고 발명의 명칭이 "Adjustment of Partition Candidates for Geometric Partition Prediction"인 미국 가특허 출원 제62/955228호(이하, "'228 가출원"으로 지칭됨)의 이익 및 우선권을 주장한다. '228 가출원의 개시내용은 여기서 본 개시내용에 참조로 완전히 포함된다.
기술분야
본 개시내용은 일반적으로 비디오 코딩에 관한 것으로, 구체적으로는, 이미지 프레임의 블록 유닛의 폭과 높이 사이의 비율 값에 기초하여, 블록 유닛이 기하학적 파티셔닝 모드에 의해 예측되는지 여부를 결정하기 위한 기술들에 관한 것이다.
기하학적 파티셔닝 모드는 비디오 코딩 방법의 코딩 도구이다. 기하학적 파티셔닝 모드에서, 인코더는 이미지 프레임의 블록 유닛을 예측하기 위해 복수의 병합 후보들 중 2개를 선택하고, 디코더가 선택된 병합 후보들을 인식할 수 있도록 2개의 병합 인덱스를 비트스트림으로 제공할 수 있다.
기하학적 파티셔닝 모드가 블록 유닛에 적용될 때, 인코더 및 디코더는 파티션 라인을 따라 이미지 프레임의 블록 유닛을 스플릿(split)하여 복수의 서브-블록들을 생성할 수 있다. 서브-블록들 중 일부는 2개의 병합 후보 중 하나에만 기초하여 예측될 수 있고, 서브-블록들 중 다른 것은 2개의 병합 후보 둘 다에 기초하여 예측될 수 있다. 따라서, 인코더가 블록 유닛을 예측하기 위해 기하학적 파티셔닝 모드를 포함하는 복수의 예측 모드들을 시도할 때, 인코더는 기하학적 결과를 포함하는 복수의 후보 결과들로부터 블록 유닛의 예측 결과를 선택해야 한다.
그러나, 인코더가 기하학적 파티셔닝 모드에서 블록 유닛을 예측하여 복수의 후보 라인들로부터 파티션 라인을 선택하고 복수의 병합 후보들로부터 2개의 병합 후보를 선택함으로써 기하학적 결과를 생성하는 것은 매우 복잡하다. 따라서, 인코딩 프로세스의 복잡도를 감소시키기 위해서는, 인코더가 블록 유닛을 예측하기 위해 기하학적 파티셔닝 모드를 사용하는 것을 제한하는 것이 중요할 수 있다. 디코더는 또한 기하학적 파티셔닝 모드가 비활성화되는 것으로 결정하는 방법을 알아야 한다.
본 개시내용은 블록 유닛의 폭과 높이 사이의 비교에 기초하여 블록 유닛에 기하학적 파티셔닝 모드가 적용되는지 여부를 결정하기 위한 디바이스 및 방법에 관한 것이다.
본 개시내용의 제1 양태에서, 비트스트림을 디코딩하기 위한 방법 및 방법을 수행하기 위한 전자 디바이스가 제공된다. 방법은 비트스트림의 이미지 프레임을 수신하는 단계; 수신된 이미지 프레임으로부터 블록 폭 및 블록 높이를 갖는 블록 유닛을 결정하는 단계; 블록 폭과 블록 높이 사이의 비교에 기초하여 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는지 여부를 결정하는 단계 - 기하학적 파티셔닝 모드가 블록 유닛에 적용될 때, 블록 유닛은 블록 유닛의 상이한 병합 후보들에 의해 예측된 복수의 서브-블록들을 생성하도록 분할됨 -; 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 때, 기하학적 파티셔닝 모드와 상이한 예측 모드에 기초하여 블록 유닛을 예측함으로써 예측된 블록을 생성하는 단계; 및 예측된 블록에 기초하여 블록 유닛을 재구성하는 단계를 포함한다.
본 개시내용의 제2 양태에서, 비트스트림을 디코딩하기 위한 방법 및 방법을 수행하기 위한 전자 디바이스가 제공된다. 방법은 비트스트림의 이미지 프레임을 수신하는 단계; 수신된 이미지 프레임으로부터 블록 폭 및 블록 높이를 갖는 블록 유닛을 결정하는 단계; 블록 폭과 블록 높이 사이의 비교를 결정하는 단계; 비교가 블록 폭과 블록 높이 사이의 비율 값이 임계 값보다 크거나 같다고 표시하면, 기하학적 파티셔닝 모드와 상이한 제1 예측 모드에 기초하여 블록 유닛을 예측함으로써 예측된 블록을 생성하는 단계 - 기하학적 파티셔닝 모드가 블록 유닛에 적용될 때, 블록 유닛은 블록 유닛의 상이한 병합 후보들에 의해 각각 예측된 복수의 서브-블록들을 생성하도록 분할됨 -; 및 예측된 블록에 기초하여 블록 유닛을 재구성하는 단계를 포함한다.
본 개시내용의 양태들은 다음의 상세한 개시내용 및 대응하는 도면들로부터 가장 잘 이해된다. 다양한 피처들은 축척대로 그려지지 않았으며, 다양한 피처들의 치수들은 논의의 명확성을 위해 임의로 증가 또는 축소될 수 있다.
도 1은 본 개시내용의 예시적인 구현에 따라 비디오 데이터를 인코딩 및 디코딩하도록 구성되는 시스템의 블록도를 예시한다.
도 2는 본 개시내용의 예시적인 구현에 따라 도 1에 예시된 제2 전자 디바이스의 디코더 모듈의 블록도를 예시한다.
도 3은 본 개시내용의 예시적인 구현에 따라 전자 디바이스에 의해 비디오 데이터를 인코딩 및 디코딩하기 위한 방법의 흐름도를 예시한다.
도 4a 내지 도 4c는 본 개시내용의 예시적인 구현들에 따른, 상이한 블록 사이즈들을 갖는 블록 유닛의 개략도들이다.
도 5a 및 도 5b는 본 개시내용의 예시적인 구현들에 따른, 파티션 라인에 기초하여 분리된 상이한 서브-블록들을 갖는 블록 유닛의 개략도들이다.
도 6은 본 개시내용의 예시적인 구현에 따라 도 1에 예시된 제1 전자 디바이스의 인코더 모듈의 블록도를 예시한다.
다음 개시내용은 본 개시내용의 예시적인 구현들에 관한 특정 정보를 포함한다. 도면들 및 대응하는 상세한 개시내용은 예시적인 구현들에 관한 것이다. 그러나, 본 개시내용은 이들 예시적인 구현들에 제한되지 않는다. 본 개시내용의 다른 변형들 및 구현들이 본 기술분야의 통상의 기술자에게 일어날 것이다.
달리 언급되지 않는 한, 도면들 중 유사하거나 대응하는 요소들은 유사하거나 대응하는 참조 지정자들에 의해 표시될 수 있다. 본 개시내용의 도면들 및 예시들은 일반적으로 축척대로 그려지지 않으며, 실제 상대적인 치수들에 대응하도록 의도되지 않는다.
일관성 및 이해의 용이함의 목적을 위해, 예시적인 도면들에서 참조 지정자들에 의해 유사한 피처들이 식별된다(그러나, 일부 예들에서는, 예시되지 않는다). 그러나, 상이한 구현들에서의 피처들은 다른 면들에서 상이할 수 있고, 도면들에 예시된 것으로 좁게 국한되어서는 안된다.
본 개시내용은 "하나의 구현에서," 또는 "일부 구현들에서,"라는 구문들을 사용하며, 이들은 동일하거나 상이한 구현들 중 하나 이상을 지칭할 수 있다. "커플링되는(coupled)"이라는 용어는 직접적으로 또는 중간 컴포넌트들을 통해 간접적으로 연결되는 것으로 정의되고, 반드시 물리적 연결들에만 제한되지 않는다. "포함하는(comprising)"이라는 용어는 "포함하지만, 반드시 그에 제한되지는 않음"을 의미하고, 구체적으로는 그렇게 설명된 조합, 그룹, 시리즈 및 등가물에서의 개방형 포함 또는 멤버쉽을 나타낸다.
설명 및 비-비제한의 목적들을 위해, 기능 엔티티들, 기술들, 프로토콜들, 및 표준들과 같은 특정 세부사항들은 개시된 기술의 이해를 제공하기 위해 제시된다. 다른 예들에서, 잘 알려진 방법들, 기술들, 시스템들 및 아키텍처들의 상세한 개시내용은 불필요한 세부사항으로 본 개시내용을 모호하게 하지 않도록 생략된다.
본 기술분야의 통상의 기술자는 본 개시내용에서 설명된 임의의 개시된 코딩 함수(들) 또는 알고리즘(들)이 하드웨어, 소프트웨어 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있음을 즉시 인식할 것이다. 개시된 기능들은 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합인 모듈들에 대응할 수 있다.
소프트웨어 구현은 메모리 또는 다른 타입의 스토리지 디바이스들과 같은 컴퓨터 판독 가능 매체 상에 저장되는 컴퓨터 실행 가능 명령어들을 갖는 프로그램을 포함할 수 있다. 예를 들어, 통신 프로세싱 능력을 갖는 하나 이상의 마이크로프로세서 또는 범용 컴퓨터는 실행 가능 명령어들로 프로그래밍되고, 개시된 기능(들) 또는 알고리즘(들)을 수행할 수 있다.
마이크로프로세서들 또는 범용 컴퓨터들은 애플리케이션 특정 집적 회로망(applications specific integrated circuitry)(ASIC), 프로그래밍 가능 로직 어레이들로, 및/또는 하나 이상의 디지털 신호 프로세서(digital signal processor)(DSP)를 사용하여 형성될 수 있다. 개시된 구현들의 일부가 컴퓨터 하드웨어 상에 설치되고 컴퓨터 하드웨어 상에서 실행되는 소프트웨어에 대한 것이지만, 펌웨어로서 또는 하드웨어 또는 하드웨어와 소프트웨어의 조합으로서 구현되는 대안적인 구현들도 본 개시내용의 범위 내에 있다. 컴퓨터 판독 가능 매체는 랜덤 액세스 메모리(random-access memory)(RAM), 판독 전용 메모리(read-only memory)(ROM), 소거 가능한 프로그래밍 가능 판독 전용 메모리(erasable programmable read-only memory)(EPROM), 전기적으로 소거 가능한 프로그래밍 가능 판독 전용 메모리(electrically erasable programmable read-only memory)(EEPROM), 플래시 메모리, 컴팩트 디스크 판독 전용 메모리(compact disc read-only memory)(CD ROM), 자기 카세트들, 자기 테이프, 자기 디스크 스토리지, 또는 컴퓨터 판독 가능 명령어들을 저장할 수 있는 임의의 다른 등가의 매체를 포함하지만, 이에 제한되지 않는다.
도 1은 본 개시내용의 예시적인 구현에 따라 비디오 데이터를 인코딩 및 디코딩하도록 구성되는 시스템의 블록도를 예시한다. 시스템(100)은 제1 전자 디바이스(110), 제2 전자 디바이스(120), 및 통신 매체(130)를 포함한다.
제1 전자 디바이스(110)는 비디오 데이터를 인코딩하고 인코딩된 비디오 데이터를 통신 매체(130)에 송신하도록 구성되는 임의의 디바이스를 포함하는 소스 디바이스일 수 있다. 제2 전자 디바이스(120)는 인코딩된 비디오 데이터를 통신 매체(130)를 통해 수신하고 인코딩된 비디오 데이터를 디코딩하도록 구성되는 임의의 디바이스를 포함하는 목적지 디바이스일 수 있다.
적어도 하나의 구현에서, 제1 전자 디바이스(110)는 통신 매체(130)를 통해 제2 전자 디바이스(120)와 유선으로 또는 무선으로 통신할 수 있다. 제1 전자 디바이스(110)는 소스 모듈(112), 인코더 모듈(114), 및 제1 인터페이스(116)를 포함할 수 있다. 제2 전자 디바이스(120)는 디스플레이 모듈(122), 디코더 모듈(124), 및 제2 인터페이스(126)를 포함할 수 있다. 제1 전자 디바이스(110)는 비디오 인코더일 수 있고, 제2 전자 디바이스(120)는 비디오 디코더일 수 있다.
적어도 하나의 구현에서, 제1 전자 디바이스(110) 및/또는 제2 전자 디바이스(120)는 모바일폰, 태블릿, 데스크탑, 노트북, 또는 다른 전자 디바이스들일 수 있다. 도 1은 제1 전자 디바이스(110) 및 제2 전자 디바이스(120)의 일 예를 예시한다. 제1 전자 디바이스(110) 및 제2 전자 디바이스(120)는 예시된 것보다 많거나 적은 컴포넌트들을 포함할 수도 있고, 또는 상이한 구성의 다양한 예시된 컴포넌트들을 가질 수 있다.
적어도 하나의 구현에서, 소스 모듈(112)은 새로운 비디오를 캡처하기 위한 비디오 캡처 디바이스, 이전에 캡처된 비디오를 저장하기 위한 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수 있다. 소스 모듈(112)은 소스 비디오로서 컴퓨터 그래픽-기반 데이터를 생성하거나 또는 소스 비디오로서 라이브 비디오, 보관된(archived) 비디오, 및 컴퓨터-생성된 비디오의 조합을 생성할 수 있다. 비디오 캡처 디바이스는 전하-커플링 디바이스(charge-coupled device)(CCD) 이미지 센서, 상보형 금속-산화물-반도체(complementary metal-oxide-semiconductor)(CMOS) 이미지 센서, 또는 카메라일 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114) 및 디코더 모듈(124)은 각각 하나 이상의 마이크로프로세서, 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(graphic processing unit)(GPU), 시스템 온 칩(system on chip)(SoC), 디지털 신호 프로세서(digital signal processor)들(DSP들), 애플리케이션 특정 집적 회로들(ASIC들), 필드 프로그래밍 가능 게이트 어레이(field programmable gate array)들(FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적절한 인코더/디코더 회로망 중 임의의 것으로서 구현될 수 있다. 소프트웨어로 부분적으로 구현될 때, 디바이스는 소프트웨어에 대한 명령어들을 포함하는 프로그램을 적절한 비-일시적 컴퓨터 판독 가능 매체에 저장할 수 있고, 개시된 방법들을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어들을 실행할 수 있다. 적어도 하나의 구현에서, 인코더 모듈(114) 및 디코더 모듈(124) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있고, 이들 중 임의의 것은 디바이스에서 결합된 인코더/디코더(combined encoder/decoder)(CODEC)의 일부로서 통합될 수 있다.
적어도 하나의 구현에서, 제1 인터페이스(116) 및 제2 인터페이스(126)는 커스터마이즈된 프로토콜들을 활용할 수도 있고, 또는 이더넷, IEEE 802.11 또는 IEEE 802.15 시리즈를 포함하되, 이에 제한되지 않는 기존 표준들 또는 사실상의 표준들, 무선 USB 또는 이동 통신 글로벌 시스템(Global System for Mobile Communications)(GSM), 코드-분할 다중 액세스 2000(Code-Division Multiple Access 2000)(CDMA2000), 시분할 동기 코드 분할 다중 액세스(Time Division Synchronous Code Division Multiple Access)(TD-SCDMA), 마이크로웨이브 액세스를 위한 전세계 상호 운영성(Worldwide Interoperability for Microwave Access)(WiMAX), 제3세대 파트너쉽 프로젝트 롱-텀 에볼루션(Third Generation Partnership Project Long-Term Evolution)(3GPP-LTE) 또는 시-분할 LTE(Time-Division LTE)(TD-LTE)를 포함하되, 이에 제한되지 않는 통신 표준들을 따를 수도 있다. 적어도 하나의 구현에서, 제1 인터페이스(116) 및 제2 인터페이스(126)는 각각 통신 매체(130)를 통해 컴플라이언트 비디오 비트스트림(compliant video bitstream)을 송신 및/또는 저장하고, 통신 매체(130)를 통해 컴플라이언트 비디오 비트스트림을 수신하도록 구성되는 임의의 디바이스를 포함할 수 있다.
적어도 하나의 구현에서, 제1 인터페이스(116) 및 제2 인터페이스(126)는 컴플라이언트 비디오 비트스트림이 스토리지 디바이스 상에 저장되거나 또는 스토리지 디바이스로부터 수신될 수 있게 하는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 제1 인터페이스(116) 및 제2 인터페이스(126)는 주변 컴포넌트 인터커넥트(Peripheral Component Interconnect)(PCI) 및 주변 컴포넌트 인터커넥트 익스프레스(Peripheral Component Interconnect Express)(PCIe) 버스 프로토콜들, 독점 버스 프로토콜들, 범용 직렬 버스(Universal Serial Bus)(USB) 프로토콜들, I2C, 또는 피어 디바이스들을 상호 연결하는 데 사용될 수 있는 임의의 다른 논리적 및 물리적 구조를 지지하는 칩셋을 포함할 수 있다.
적어도 하나의 구현에서, 디스플레이 모듈(122)은 다른 구현들에서 사용되는 다른 디스플레이 기술들과 함께 액정 디스플레이(liquid crystal display)(LCD) 기술, 플라즈마 디스플레이 기술, 유기 발광 다이오드(organic light emitting diode)(OLED) 디스플레이 기술, 또는 발광 폴리머 디스플레이(light emitting polymer display)(LPD) 기술을 사용하는 디스플레이를 포함할 수 있다. 디스플레이 모듈(122)은 고화질 디스플레이(high-definition display) 또는 초고화질 디스플레이(ultra-high-definition display)를 포함할 수 있다.
도 2는 본 개시내용의 예시적인 구현에 따라 도 1에 예시된 제2 전자 디바이스(120)의 디코더 모듈(124)의 블록도를 예시한다. 디코더 모듈(124)은 엔트로피 디코더(예를 들어, 엔트로피 디코딩 유닛(2241)), 예측 프로세서(예를 들어, 예측 프로세스 유닛(2242)), 역양자화/역변환 프로세서(예를 들어, 역양자화/역변환 유닛(2243)), 합산기(예를 들어, 합산기(2244)), 필터(예를 들어, 필터링 유닛(2245)), 및 디코딩된 픽처 버퍼(예를 들어, 디코딩된 픽처 버퍼(2246))를 포함한다. 예측 프로세스 유닛(2242)은 인트라 예측 프로세서(예를 들어, 인트라 예측 유닛(22421)) 및 인터 예측 프로세서(예를 들어, 인터 예측 유닛(22422))을 추가로 포함한다. 디코더 모듈(124)은 비트스트림을 수신하고 비트스트림을 디코딩하여 디코딩된 비디오를 출력한다.
엔트로피 디코딩 유닛(2241)은 도 1의 제2 인터페이스(126)로부터 복수의 신택스 요소(syntax element)들을 포함하는 비트스트림을 수신하고 비트스트림에 대해 파싱 동작을 수행하여 비트스트림으로부터 신택스 요소들을 추출할 수 있다. 파싱 동작의 일부로서, 엔트로피 디코딩 유닛(2241)은 비트스트림을 엔트로피 디코딩하여 양자화된 변환 계수들, 양자화 파라미터들, 변환 데이터, 모션 벡터들, 인트라 모드들, 파티션 정보, 및 다른 신택스 정보를 생성할 수 있다.
적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2241)은 컨텍스트 적응 가변 길이 코딩(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) 코딩 또는 다른 엔트로피 코딩 기술을 수행하여 양자화된 변환 계수들을 생성할 수 있다. 적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2241)은 역양자화/역변환 유닛(2243)에 양자화된 변환 계수들, 양자화 파라미터들, 및 변환 데이터를 제공하고, 예측 프로세스 유닛(2242)에 모션 벡터들, 인트라 모드들, 파티션 정보, 및 다른 신택스 정보를 제공할 수 있다.
적어도 하나의 구현에서, 예측 프로세스 유닛(2242)은 엔트로피 디코딩 유닛(2241)으로부터 모션 벡터들, 인트라 모드들, 파티션 정보, 및 다른 신택스 정보와 같은 신택스 요소들을 수신할 수 있다. 예측 프로세스 유닛(2242)은 파티션 정보를 포함하는 신택스 요소들을 수신하고, 파티션 정보에 따라 이미지 프레임들을 분할할 수 있다.
적어도 하나의 구현에서, 이미지 프레임들 각각은 파티션 정보에 따라 적어도 하나의 이미지 블록으로 분할될 수 있다. 적어도 하나의 이미지 블록은 복수의 휘도(luminance) 샘플들을 재구성하기 위한 휘도 블록 및 복수의 색차(chrominance) 샘플들을 재구성하기 위한 적어도 하나의 색차 블록을 포함할 수 있다. 휘도 블록 및 적어도 하나의 색차 블록은 매크로블록들, 코딩 트리 유닛(coding tree unit)들(CTU들), 코딩 블록(coding block)들(CB들), 이들의 하위-분할(sub-division)들, 및/또는 다른 등가의 코딩 유닛을 생성하도록 추가로 분할될 수 있다.
적어도 하나의 구현에서, 디코딩 프로세스 동안, 예측 프로세스 유닛(2242)은 이미지 프레임들 중 특정 이미지 프레임의 현재 이미지 블록에 대한 인트라 모드 또는 모션 벡터를 포함하는 예측된 데이터를 수신할 수 있다. 현재 이미지 블록은 특정 이미지 프레임의 휘도 블록 또는 색차 블록들 중 하나의 색차 블록일 수 있다.
적어도 하나의 구현에서, 인트라 예측 유닛(22421)은 예측된 블록을 생성하기 위해 인트라 모드와 관련된 신택스 요소들에 기초하여 현재 블록 유닛과 동일한 프레임 내의 하나 이상의 이웃 블록에 대한 현재 블록 유닛의 인트라 예측 코딩을 수행할 수 있다. 인트라 모드는 현재 프레임 내의 이웃 블록들로부터 선택된 참조 샘플들의 위치를 지정할 수 있다. 적어도 하나의 구현에서, 예측 프로세스 유닛(2242)에 의해 크로마(chroma) 컴포넌트들이 재구성될 때, 인트라 예측 유닛(22421)은 현재 블록 유닛의 복수의 루마(luma) 컴포넌트들에 기초하여 현재 블록 유닛의 복수의 크로마 컴포넌트들을 재구성할 수 있다.
적어도 하나의 구현에서, 예측 프로세스 유닛(2242)에 의해 현재 블록의 루마 컴포넌트들이 재구성될 때, 인트라 예측 유닛(22421)은 현재 블록 유닛의 복수의 루마 컴포넌트들에 기초하여 현재 블록 유닛의 복수의 크로마 컴포넌트들을 재구성할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(22422)은 예측된 블록을 생성하기 위해 모션 벡터와 관련된 신택스 요소들에 기초하여 하나 이상의 참조 이미지 블록 내의 하나 이상의 블록에 대한 현재 블록 유닛의 인터 예측 코딩을 수행할 수 있다.
적어도 하나의 구현에서, 모션 벡터는 참조 이미지 블록 내의 참조 블록 유닛에 대한 현재 이미지 블록 내의 현재 블록 유닛의 변위를 표시할 수 있다. 참조 블록 유닛은 현재 블록 유닛과 거의 매칭되도록 결정된 블록이다.
적어도 하나의 구현에서, 인터 예측 유닛(22422)은 디코딩된 픽처 버퍼(2246)에 저장된 참조 이미지 블록을 수신하고, 수신된 참조 이미지 블록들에 기초하여 현재 블록 유닛을 재구성할 수 있다.
적어도 하나의 구현에서, 역양자화/역변환 유닛(2243)은 픽셀 도메인에서 잔차 블록(residual block)을 재구성하기 위해 역양자화 및 역변환을 적용할 수 있다. 역양자화/역변환 유닛(2243)은 잔차 양자화된 변환 계수에 역양자화를 적용하여 잔차 변환 계수를 생성한 다음, 잔차 변환 계수에 역변환을 적용하여 픽셀 도메인에서 잔차 블록을 생성할 수 있다.
적어도 하나의 구현에서, 역변환은 DCT(discrete cosine transform), DST(discrete sine transform), AMT(adaptive multiple transform), MDNSST(mode-dependent non-separable secondary transform), HyGT(hypercube-givens transform), 신호 종속 변환(signal dependent transform), KLT(Karhunen-Lo
Figure pct00001
ve transform), 웨이블릿 변환(wavelet transform), 정수 변환(integer transform), 부대역 변환(sub-band transform) 또는 개념적으로 유사한 변환과 같은 변환 프로세스에 의해 역으로 적용될 수 있다.
적어도 하나의 구현에서, 역변환은 잔차 정보를 주파수 도메인과 같은 변환 도메인으로부터 다시 픽셀 도메인으로 컨버팅할 수 있다. 적어도 하나의 구현에서, 역양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 합산기(2244)는 예측 프로세스 유닛(2242)으로부터 예측된 블록에 잔차 블록을 더하여 재구성된 블록을 생성한다.
적어도 하나의 구현에서, 합산기(2244)는 예측 프로세스 유닛(2242)으로부터 제공된 예측된 블록에 재구성된 잔차 블록을 더하여 재구성된 블록을 생성한다.
적어도 하나의 구현에서, 필터링 유닛(2245)은 재구성된 블록으로부터 차단 아티팩트(blocking artifact)들을 제거하기 위해 디블로킹 필터(deblocking filter), 샘플 적응 오프셋(sample adaptive offset)(SAO) 필터, 양방향 필터(bilateral filter), 및/또는 적응 루프 필터(adaptive loop filter)(ALF)를 포함할 수 있다. 디블로킹 필터, SAO 필터, 양방향 필터 및 ALF 외에 추가 필터들(인 루프 또는 포스트 루프)도 사용할 수 있다. 이러한 필터들은 간결함을 위해 명시적으로 예시되어 있지 않지만, 합산기(2244)의 출력을 필터링할 수 있다.
필터링 유닛(2245)이 특정 이미지 프레임의 재구성된 블록들에 대한 필터링 프로세스를 수행한 후에, 필터링 유닛(2245)은 디코딩된 비디오를 디스플레이 모듈(122) 또는 다른 비디오 수신 유닛에 출력할 수 있다.
적어도 하나의 구현에서, 디코딩된 픽처 버퍼(2246)는 (인터 코딩 모드들에서) 비트스트림을 디코딩할 때 예측 프로세스 유닛(2242)에 의해 사용하기 위해 참조 블록을 저장하는 참조 픽처 메모리일 수 있다. 디코딩된 픽처 버퍼(2246)는 동기식 DRAM(synchronous DRAM)(SDRAM)을 포함하는 동적 랜덤 액세스 메모리(dynamic random-access memory)(DRAM), 자기-저항 RAM(magneto-resistive RAM)(MRAM), 저항 RAM(resistive RAM)(RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 것에 의해 형성될 수 있다.
적어도 하나의 구현에서, 디코딩된 픽처 버퍼(2246)는 디코더 모듈(124)의 다른 컴포넌트들과 함께 온-칩일 수도 있고, 또는 해당 컴포넌트들에 대해 오프-칩일 수도 있다.
도 3은 본 개시내용의 예시적인 구현에 따라 전자 디바이스에 의해 비디오 데이터를 인코딩 및 디코딩하기 위한 방법(300)의 흐름도를 예시한다. 방법(300)은 방법을 수행하는 다양한 방식들이 존재하기 때문에 예에 불과하다.
비트스트림을 디코딩하고 블록 유닛을 재구성하기 위한 방법(300)은 도 1 및 도 2에 예시된 구성들을 사용하여 수행될 수 있고, 이들 도면들의 다양한 요소들이 방법(300)과 관련하여 참조된다. 도 3에 예시된 각각의 블록은 수행되는 하나 이상의 프로세스, 방법 또는 서브루틴을 표현할 수 있다.
도 3의 블록들의 순서는 예시에 불과하며, 변경될 수 있다. 본 개시내용으로부터 벗어나지 않으면서 추가적인 블록들이 추가될 수도 있고 또는 더 적은 블록들이 활용될 수도 있다.
블록(310)에서, 디코더 모듈(124)은 비디오 데이터의 이미지 프레임을 수신한다. 비디오 데이터는 비트스트림일 수 있다.
도 1 및 도 2를 참조하면, 제2 전자 디바이스(120)는 제2 인터페이스(126)를 통해 제1 전자 디바이스(110)와 같은 인코더, 또는 다른 비디오 제공자들로부터 비트스트림을 수신할 수 있다. 제2 인터페이스(126)는 디코더 모듈(124)에 비트스트림을 제공할 수 있다.
적어도 하나의 구현에서, 엔트로피 디코딩 유닛(2241)은 이미지 프레임에 대한 복수의 예측 표시들 및 복수의 파티셔닝 표시들을 결정하기 위해 비트스트림을 디코딩할 수 있고, 디코더 모듈(124)은 예측 표시들 및 파티셔닝 표시들에 기초하여 이미지 프레임을 추가로 재구성할 수 있다. 예측 표시들 및 파티셔닝 표시들은 복수의 플래그들 및 복수의 인덱스들을 포함할 수 있다.
블록(320)에서, 디코더 모듈(124)은 수신된 비디오 데이터로부터 블록 폭 및 블록 높이를 갖는 블록 유닛을 결정한다. 도 1 및 도 2를 추가로 참조하면, 디코더 모듈(124)은 비트스트림에 포함된 파티션 표시들에 따라 블록 유닛을 결정하기 위해 이미지 프레임을 분할할 수 있다. 예를 들어, 디코더 모듈(124)은 이미지 프레임들을 분할하여 복수의 코딩 트리 유닛들을 생성할 수 있고, (예를 들어, 비디오 코딩 표준에 기초하여) 파티션 표시들에 따라 블록 유닛을 결정하기 위해 코딩 트리 유닛들 중 하나를 추가로 분할할 수 있다.
도 4a 내지 도 4c는 본 개시내용의 예시적인 구현들에 따라 상이한 블록 사이즈들을 갖는 블록 유닛의 개략도들이다. 적어도 하나의 구현에서, 블록 유닛의 블록 사이즈는 블록 높이(Hb) 및 블록 폭(Wb)을 포함할 수 있다. 예를 들어, 블록 유닛(410)의 블록 사이즈는 블록 높이(H410) 및 블록 폭(W410)을 포함하고, 블록 유닛(430)의 블록 사이즈는 블록 높이(H430) 및 블록 폭(W430)을 포함하고, 블록 유닛(450)의 블록 사이즈는 블록 높이(H450) 및 블록 폭(W450)을 포함한다. 구현에서, 블록 높이(H410)는 블록 폭(W410)과 같을 수 있고, 블록 폭(W430)은 8×H430과 같을 수 있고, 블록 높이(H450)는 4×W450과 같을 수 있다.
블록(330)에서, 디코더 모듈(124)은 블록 폭과 블록 높이 사이의 비교를 결정한다. 도 1 및 도 2를 추가로 참조하면, 디코더 모듈(124)은 부등식에 기초하여 블록 폭과 블록 높이 사이의 비교를 결정할 수 있다.
예를 들어, 블록 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)은 임계 값(T)보다 크거나 같을 수 있다(즉, R ≥ T). 하나의 구현에서, 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)은 임계 값(T)보다 작을 수 있다(즉, R < T). 다른 구현에서, 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)은 임계 값(T)보다 클 수 있다(즉, R > T). 다른 구현에서, 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)은 임계 값(T)보다 작거나 같을 수 있다(즉, R < T).
적어도 하나의 구현에서, 디코더 모듈(124)은 블록 폭(Wb) 및 블록 높이(Hb)에 기초하여 계산된 비율 파라미터(RP)를 결정할 수 있다. 적어도 하나의 구현에서, 제1 비율 파라미터(RP1)는 나눗셈에 기초하여 계산될 수 있다. 하나의 구현에서, 블록 폭(Wb)이 블록 높이(Hb)보다 크거나 같으면, 제1 비율 파라미터(RP1)는 블록 폭(Wb)을 블록 높이(Hb)로 나눔으로써 계산될 수 있다(즉, RP1 = Wb/Hb). 블록 폭(Wb)이 블록 높이(Hb)보다 작으면, 제1 비율 파라미터(RP1)는 블록 높이(Hb)를 블록 폭(Wb)으로 나눔으로써 계산될 수 있다(즉, RP1 = Hb/Wb). 다른 구현에서, 블록 폭(Wb)이 블록 높이(Hb)보다 크면, 제1 비율 파라미터(RP1)는 블록 폭(Wb)을 블록 높이(Hb)로 나눔으로써 계산될 수 있다. 따라서, 블록 폭(Wb)이 블록 높이(Hb)보다 작거나 같으면, 제1 비율 파라미터(RP1)는 블록 높이(Hb)를 블록 폭(Wb)으로 나눔으로써 계산될 수 있다.
적어도 하나의 구현에서, 제2 비율 파라미터(RP2)가 로그 방정식(logarithmic equation)에 의해 블록 폭(Wb) 및 블록 높이(Hb)에 기초하여 계산될 수 있다. 구현에서, 상이한 공식들에 의해 계산된 제1 비율 파라미터(RP1) 및 제2 비율 파라미터(RP2) 중 하나가 블록 유닛의 비율 파라미터(RP)로서 설정될 수 있다. 적어도 하나의 구현에서, 제2 비율 파라미터(RP2)는 블록 폭의 밑수-2인 로그(base-2 logarithm)로부터 블록 높이의 밑수-2인 로그를 뺌으로써 생성된 차이 값의 절대 값과 동일할 수 있다(즉,
Figure pct00002
). 즉, 제2 비율 파라미터(RP2)는 몫 값의 밑수-2인 로그의 절대 값과 동일할 수 있고, 몫 값은 블록 폭(Wb)을 블록 높이(Hb)로 나누거나 블록 높이(Hb)를 블록 폭(Wb)으로 나눔으로써 생성된다(즉,
Figure pct00003
Figure pct00004
). 제1 비율 파라미터(RP1)는 2의 제2 비율 파라미터(RP2) 제곱(two to the power of the second ratio parameter RP2)과 같을 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)은 비율 파라미터(RP)를 비율 임계 값(RT)과 비교할 수 있다. 디코더 모듈(124)은, 비율 파라미터(RP)가 비율 임계 값(RT)보다 크면, 비교가 비율 값(R)이 임계 값(T)보다 크다고 표시하는 것으로 결정할 수 있다. 디코더 모듈(124)은, 비율 파라미터(RP)가 비율 임계 값(RT)과 같으면, 비교가 비율 값(R)이 임계 값(T)과 같다고 표시하는 것으로 결정할 수 있다. 디코더 모듈(124)은, 비율 파라미터(RP)가 비율 임계 값(RT)보다 작으면, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하는 것으로 결정할 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)은, 제1 비율 파라미터(RP1)가 비율 파라미터(RP)로서 설정될 때, 비율 파라미터(RP)를 제1 비율 임계 값(RT1)과 비교할 수 있다. 하나의 구현에서, 디코더 모듈(124)은, 제1 비율 파라미터(RP1)가 제1 비율 임계 값(RT1)보다 크거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하는 것으로 결정할 수 있다. 디코더 모듈(124)은, 제1 비율 파라미터(RP1)가 제1 비율 임계 값(RT1)보다 작으면, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하는 것으로 결정할 수 있다. 다른 구현에서, 디코더 모듈(124)은, 제1 비율 파라미터(RP1)가 제1 비율 임계 값(RT1)보다 작거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 작거나 같다고 표시하는 것으로 결정할 수 있다. 적어도 하나의 구현에서, 제1 비율 임계 값(RT1)은 양의 정수일 수 있다.
적어도 하나의 구현에서, 제1 비율 임계 값(RT1)은 2의 n 제곱(two to the power of n)과 같을 수 있고, 숫자 n은 양의 정수이다. 제1 비율 임계 값(RT1)은 1, 2, 4 또는 8로 미리 설정될 수 있다. 예를 들어, 제1 비율 임계 값(RT1)이 8과 같으면, 1과 같은 블록 유닛(410)의 제1 비율 파라미터(RP1) 및 4와 같은 블록 유닛(450)의 제1 비율 파라미터(RP1 = H450/W450)는 제1 비율 임계 값(RT1)보다 작다. 제1 비율 임계 값(RT1)이 8과 같으면, 8과 같은 블록 유닛(430)의 제1 비율 파라미터(RP1 = W430/H430)는 제1 비율 임계 값(RT1)보다 작지 않다.
적어도 하나의 구현에서, 디코더 모듈(124)은, 제2 비율 파라미터(RP2)가 비율 파라미터(RP)로서 설정될 때, 비율 파라미터(RP)를 제2 비율 임계 값(RT2)과 비교할 수 있다. 디코더 모듈(124)은, 제2 비율 파라미터(RP2)가 제2 비율 임계 값(RT2)보다 크거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하는 것으로 결정할 수 있다. 디코더 모듈(124)은, 제2 비율 파라미터(RP2)가 제2 비율 임계 값(RT2)보다 작으면, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하는 것으로 결정할 수 있다. 디코더 모듈(124)은, 제2 비율 파라미터(RP2)가 제2 비율 임계 값(RT2)보다 작거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 작거나 같다고 표시하는 것으로 결정할 수 있다.
적어도 하나의 구현에서, 제2 비율 임계 값(RT2)은 양의 정수일 수 있다. 제2 비율 임계 값(RT2)은 1, 2, 3 또는 4로 미리 설정될 수 있다. 예를 들어, 제2 비율 임계 값(RT2)이 3과 같으면, 0과 같은 블록 유닛(410)의 제2 비율 파라미터(RP2) 및 2와 같은 블록 유닛(450)의 제2 비율 파라미터(RP2)는 제2 비율 임계값(RT2)보다 작다. 제2 비율 임계 값(RT2)이 3과 같으면, 3과 같은 블록 유닛(430)의 제2 비율 파라미터(RP2)는 제2 비율 임계 값(RT2)보다 작지 않다.
적어도 하나의 구현에서, 제1 비율 파라미터(RP1)가 2의 제2 비율 파라미터(RP2) 제곱과 같기 때문에, 제1 비율 임계 값(RT1)은 2의 제2 비율 임계 값(RT2) 제곱과 같을 수 있다. 따라서, 디코더 모듈(124)이 비교를 제1 부등식(RP1 < RT1)으로부터 제2 부등식(RP2 < RT2)으로 변경할 때, 비교 결과가 변경되지 않을 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)이 블록 폭(Wb)과 블록 높이(Hb) 사이의 비교를 결정할 때, 디코더 모듈(124)은 블록 폭(Wb)을 블록 높이(Hb)로부터 생성된 제1 확대된 값(N1)과 비교하고, 블록 높이(Hb)를 블록 폭(Wb)으로부터 생성된 제2 확대된 값(N2)과 비교할 수 있다. 제1 확대된 값(N1)은 블록 높이(Hb)와 임계 값(T)을 곱함으로써 계산될 수 있고, 제2 확대된 값(N2)은 블록 폭(Wb)과 임계 값(T)을 곱함으로써 계산될 수 있다(즉, N1 = T×Hb 및 N2 = T×Wb).
적어도 하나의 구현에서, 디코더 모듈(124)은, 블록 폭(Wb)이 제1 확대된 값(N1)보다 작고 블록 높이(Hb)가 제2 확대된 값(N2)보다 작으면, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하는 것으로 결정할 수 있다. 디코더 모듈(124)은, 블록 폭(Wb)이 제1 확대된 값(N1)보다 크거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하는 것으로 결정할 수 있다. 디코더 모듈(124)은, 블록 높이(Hb)가 제2 확대된 값(N2)보다 크거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하는 것으로 결정할 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)이 제1 확대된 값(N1) 및 제2 확대된 값(N2)에 기초하여 비교를 결정할 때, 임계 값(T)은 제1 비율 임계 값(RT1)과 같을 수 있다. 디코더 모듈(124)은 제3 부등식(Wb < N1 = RT1×Hb) 및 제4 부등식(Hb < N2 = RT1×Wb)에 기초하여 비교를 결정할 수 있다.
적어도 하나의 구현에서, 제1 비율 임계 값(RT1)은 1, 2, 4 또는 8로 미리 설정될 수 있다. 따라서, 디코더 모듈(124)이 제1 확대된 값(N1) 및 제2 확대된 값(N2)에 기초하여 비교를 결정할 때, 임계 값(T)은 1, 2, 4 또는 8로 미리 설정될 수 있다. 적어도 하나의 구현에서, 블록 폭(Wb)이 블록 높이(Hb)보다 크면, 제1 나눗셈 값(division value)(Hb/Wb)은 1보다 작을 수 있다. 따라서, 블록 폭(Wb)이 블록 높이(Hb)보다 크면, 제1 나눗셈 값(Hb/Wb)은 또한 임계 값(T)보다 작고, 제4 부등식(Hb < RT1×Wb)은 참이다.
즉, 블록 폭(Wb)이 블록 높이(Hb)보다 크면, 비교는 제3 부등식(Wb < RT1×Hb)에 의해서만 영향을 받을 수 있다. 따라서, 블록 폭(Wb)이 블록 높이(Hb)보다 크면, 제1 부등식(RP1 = Wb/Hb < RT1)에 기초하여 결정된 비교는 제3 부등식(Wb < N1 = RT1×Hb) 및 제4 부등식(Hb < N2 = RT1×Wb)에 기초하여 결정된 비교와 동일하다.
다른 구현에서, 블록 폭(Wb)이 블록 높이(Hb)보다 작으면, 제2 나눗셈 값(Wb/Hb)은 1보다 작을 수 있다. 따라서, 블록 폭(Wb)이 블록 높이(Hb)보다 작고 임계 값(T)이 1, 2, 4 또는 8로 미리 설정될 때, 제2 나눗셈 값(Wb/Hb)은 또한 임계 값(T)보다 작고, 제3 부등식(Wb < RT1 × Hb)은 참이다.
즉, 블록 폭(Wb)이 블록 높이(Hb)보다 작으면, 비교는 제4 부등식(Hb < RT1×Wb)에 의해서만 영향을 받을 수 있다. 따라서, 블록 폭(Wb)이 블록 높이(Hb)보다 작으면, 제1 부등식(RP1 = Hb/Wb < RT1)에 기초하여 결정된 비교는 제3 부등식(Wb < N1 = RT1×Hb) 및 제4 부등식(Hb < N2 = RT1×Wb)에 기초하여 결정된 비교와 동일하다.
다른 구현에서, 블록 폭(Wb)이 블록 높이(Hb)와 동일할 때, 제1 나눗셈 값 및 제2 나눗셈 값은 1과 같을 수 있다. 따라서, 블록 폭(Wb)이 블록 높이(Hb)와 동일하고 임계 값(T)이 2, 4 또는 8로 미리 설정되어 있을 때, 제1 나눗셈 값 및 제2 나눗셈 값은 임계 값(T)보다 작고, 제3 부등식 및 제4 부등식은 참이다. 블록 폭(Wb)이 블록 높이(Hb)와 동일하고 임계 값(T)이 2, 4 또는 8로 미리 설정될 때, 제1 부등식(RP1 = Hb / Wb < RT1)에 기초하여 결정된 비교는 제3 부등식(Wb < N1 = RT1×Hb) 및 제4 부등식(Hb < N2 = RT1×Wb)에 기초하여 결정된 비교와 동일하다.
블록(340)에서, 디코더 모듈(124)은 비교에 기초하여 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는지 여부를 결정한다. 방법(300)은, 디코더 모듈(124)이 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는 것으로 결정하면, 블록(350)으로 진행할 수 있다. 방법은, 디코더 모듈(124)이 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화되는 것으로 결정하면, 블록(360)으로 진행할 수 있다.
도 1 및 도 2를 추가로 참조하면, 디코더 모듈(124)은, 비교가 블록 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는 것으로 결정할 수 있다. 디코더 모듈(124)은, 비교가 블록 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)이 임계 값(T)보다 작다고 표시하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화되는 것으로 결정할 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)은 기하학적 파티셔닝 모드의 사용을 제한하기 위해 블록 폭과 블록 높이 사이의 비교를 결정할 수 있다. 블록 유닛이 너무 좁을 때, 상이한 이웃 파티션 라인들의 예측 결과들은 서로 유사할 수 있다. 블록 유닛이 너무 좁을 때, 블록 유닛은 수평 방향 또는 수직 방향을 따라 추가로 분할되어 각각 예측될 2개의 블록 유닛을 생성할 수 있다.
따라서, 블록 유닛이 너무 좁을 때, 기하학적 파티셔닝 모드는 비활성화될 수 있다. 예를 들어, 블록 폭이 T 곱하기 블록 높이보다 크거나 같거나 또는 블록 높이가 T 곱하기 블록 폭보다 크거나 같으면, 기하학적 파티셔닝 모드는 비활성화될 수 있다. 적어도 하나의 구현에서, 임계 값(T)은 2, 4 또는 8과 같을 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)이 제1 비율 파라미터(RP1)가 제1 비율 임계 값(RT1)보다 크거나 같은 것으로 결정하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 수 있다. 디코더 모듈(124)이 제1 비율 파라미터(RP1)가 제1 비율 임계 값(RT1)보다 작은 것으로 결정하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화될 수 있다.
예를 들어, 제1 비율 임계 값(RT1)은 8과 같을 수 있다. 따라서, 블록 유닛의 제1 비율 파라미터(RP1)가 8보다 크거나 같으면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 수 있다.
일반적인 기하학적 파티셔닝 모드에서, 블록 폭(Wb)과 블록 높이(Hb)는 8보다 크거나 같다. 따라서, 제1 비율 임계 값(RT1)이 8과 같으면, 블록 사이즈 64×8 또는 8×64를 갖는 블록 유닛에는 기하학적 파티셔닝 모드가 적용되지 않을 수 있다. 제1 비율 임계 값(RT1)이 4와 같으면, 블록 사이즈 64×8, 64×16, 32×8, 8×64, 16×64 또는 8×32를 갖는 블록 유닛에는 기하학적 파티셔닝 모드가 적용되지 않을 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)이 제2 비율 파라미터(RP2)가 제2 비율 임계 값(RT2)보다 크거나 같은 것으로 결정하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 수 있다. 디코더 모듈(124)이 제2 비율 파라미터(RP2)가 제2 비율 임계 값(RT2)보다 작은 것으로 결정하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화될 수 있다.
예를 들어, 제2 비율 임계 값(RT2)이 3과 같으면, 블록 사이즈 64×8 또는 8×64를 갖는 블록 유닛에는 기하학적 파티셔닝 모드가 적용되지 않을 수 있다. 제2 비율 임계 값(RT2)이 2와 같으면, 블록 사이즈 64×8, 64×16, 32×8, 8×64, 16×64 또는 8×32를 갖는 블록 유닛에는 기하학적 파티셔닝 모드가 적용되지 않을 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)이 블록 폭(Wb)이 제1 확대된 값(N1)보다 크거나 같은 것으로 결정하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 수 있다. 다른 구현에서, 디코더 모듈(124)이 블록 높이(Hb)가 제2 확대된 값(N2)보다 크거나 같은 것으로 결정하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 수 있다. 블록 폭(Wb)이 제1 확대된 값(N1)보다 작고 블록 높이(Hb)가 제2 확대된 값(N2)보다 작으면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화될 수 있다.
예를 들어, 임계 값(T)이 8과 같으면, 블록 사이즈 64×8 또는 8×64를 갖는 블록 유닛에는 기하학적 파티셔닝 모드가 적용되지 않을 수 있다. 즉, 블록 폭(Wb)이 제1 확대된 값(8×Hb)보다 크거나 같거나 또는 블록 높이(Hb)가 제2 확대된 값(8×Wb)보다 크거나 같으면, 블록 사이즈 64×8 또는 8×64를 갖는 블록 유닛에는 기하학적 파티셔닝 모드가 적용되지 않을 수 있다. 블록 폭(Wb)이 제1 확대된 값(4×Hb)보다 크거나 같거나 또는 블록 높이(Hb)가 제2 확대된 값(4×Wb)보다 크거나 같으면, 블록 사이즈 64×8, 64×16, 32×8, 8×64, 16×64 또는 8×32를 갖는 블록 유닛에는 기하학적 파티셔닝 모드가 적용되지 않을 수 있다.
블록(350)에서, 디코더 모듈(124)은 기하학적 파티셔닝 모드와 상이한 제1 예측 모드를 사용함으로써 블록 유닛을 예측하여 예측된 블록을 생성한다. 도 1 및 도 2를 추가로 참조하면, 디코더 모듈(124)은, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 때, 제1 예측 모드를 선택하고 제1 예측 모드에 기초하여 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다. 디코더 모듈(124)은, 비교가 블록 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하면, 제1 예측 모드에 기초하여 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다.
적어도 하나의 구현에서, 제1 예측 모드는 복수의 옵션 모드들로부터 선택될 수 있다. 옵션 모드들 각각은 기하학적 파티셔닝 모드와 상이하다.
적어도 하나의 구현에서, 옵션 모드들은 제1 병합 인덱스에 의해 제1 예측 모드를 선택하기 위해 결정될 수 있다. 따라서, 제1 예측 모드는 제1 병합 인덱스에 기초하여 선택된 옵션 모드들 중 하나일 수 있다.
구현에서, 제1 병합 인덱스는 병합 후보 리스트에 포함된 제1 예측 모드를 표시할 수 있다. 적어도 하나의 구현에서, 옵션 모드들은 블록 유닛에 이웃하는 복수의 이웃 블록들의 복수의 공간적 모션 예측 모드들, 복수의 병치된 블록(collocated block)들의 복수의 시간적 모션 예측 모드들, 선입선출(first-in-first-out)(FIFO) 테이블에 저장된 이력-기반 모션 예측 모드들, 복수의 페어-와이즈(pair-wise) 평균 모션 예측 모드들, 및 제로 모션 모드로부터 결정된 병합 후보 리스트의 복수의 병합 후보 모드들일 수 있다.
적어도 하나의 주입에서, 제1 예측 모드는 제1 참조 프레임 및 제1 참조 벡터(V0)를 갖는 제1 모션 정보를 표시할 수 있다. 제1 참조 프레임은 복수의 참조 리스트들로부터 선택될 수 있다. 적어도 하나의 구현에서, 제1 모션 정보는 제1 참조 프레임을 선택하기 위해 참조 리스트들 중 하나를 결정하기 위한 제1 리스트 플래그를 포함할 수 있다. 적어도 하나의 구현에서, 블록 유닛의 복수의 블록 컴포넌트들이 제1 참조 벡터(V0) 및 제1 참조 프레임에 기초하여 예측될 수 있다.
블록(360)에서, 디코더 모듈(124)은 기하학적 파티셔닝 모드를 포함하는 복수의 후보 모드들로부터 선택된 제2 예측 모드를 사용함으로써 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다. 도 1 및 도 2를 추가로 참조하면, 디코더 모듈(124)은, 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화될 때, 제2 예측 모드를 선택하고 제2 예측 모드에 기초하여 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다. 디코더 모듈(124)은, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하면, 제2 예측 모드에 기초하여 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다.
적어도 하나의 구현에서, 제2 예측 모드는 후보 모드들로부터 선택될 수 있다. 구현에서, 후보 모드들은 기하학적 파티셔닝 모드를 포함할 수 있다. 하나의 구현에서, 후보 모드들은 옵션 모드들 및 기하학적 파티셔닝 모드를 포함할 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)은, 블록 유닛을 예측하기 위해 기하학적 파티셔닝 모드가 블록 유닛에 적용될 때, 비트스트림으로부터 블록 유닛의 파티션 인덱스, 제2 병합 인덱스 및 제3 병합 인덱스를 결정할 수 있다. 도 5a 및 도 5b는 본 개시내용의 예시적인 구현들에 따른, 파티션 라인에 기초하여 분리된 상이한 서브-블록들을 갖는 블록 유닛의 개략도들이다. 디코더 모듈(124)은 파티션 인덱스로부터 결정된 파티션 라인(511)에 기초하여 제1 서브-블록(512), 제2 서브-블록(514) 및 제3 서브-블록(516)을 생성하도록 블록 유닛(510)을 분할할 수 있다.
적어도 하나의 구현에서, 파티션 인덱스는 블록 유닛(510)의 파티션 라인(511)을 표시할 수 있다. 적어도 하나의 구현에서, 파티션 인덱스는 파티션 각도 인덱스 및 파티션 거리 인덱스를 표시할 수 있다. 파티션 각도 인덱스는 파티션 라인의 스플릿 각도를 표시할 수 있고, 파티션 거리 인덱스는 파티션 라인과 블록 유닛의 중심점 사이의 스플릿 거리를 표시할 수 있다.
따라서, 디코더 모듈(124)은 파티션 인덱스에 의해 표시된 스플릿 각도 및 스플릿 거리에 기초하여 파티션 라인을 결정할 수 있다. 비트스트림은 파티션 각도 인덱스 및 파티션 거리 인덱스를 직접 포함할 수 있다.
적어도 하나의 구현에서, 디코더 모듈(124)은 제2 병합 인덱스 및 제3 병합 인덱스에 의해 병합 후보 모드들로부터 결정된 제2 모션 정보 및 제3 모션 정보에 기초하여 복수의 서브-블록들(512, 514 및 516)을 예측할 수 있다. 적어도 하나의 구현에서, 제2 병합 인덱스에 의해 표시된 제2 모션 정보는 병합 후보 리스트에 포함된 병합 후보 모드들 중 하나일 수 있고, 제3 병합 인덱스에 의해 표시된 제3 모션 정보 또한 병합 후보 리스트에 포함된 병합 후보 모드들 중 하나일 수 있다. 적어도 하나의 주입에서, 제2 모션 정보는 제2 참조 프레임 및 제2 참조 벡터(V1)를 표시할 수 있고, 제3 모션 정보는 제3 참조 프레임 및 제3 참조 벡터(V2)를 표시할 수 있다.
제2 참조 프레임 및 제3 참조 프레임은 복수의 참조 리스트들로부터 선택될 수 있다. 하나의 구현에서, 제2 참조 프레임 및 제3 참조 프레임은 참조 리스트들 중 동일한 하나로부터 선택될 수 있다. 다른 구현들에서, 제2 참조 프레임 및 제3 참조 프레임은 상이한 참조 리스트들로부터 선택될 수 있다. 적어도 하나의 구현에서, 참조 리스트들의 수가 2와 같을 수 있을 때, 참조 리스트들은 L0 및 L1로서 설정될 수 있다.
적어도 하나의 구현에서, 제2 모션 정보는 제2 참조 프레임을 선택하기 위한 제2 리스트 플래그를 포함할 수 있고, 제3 모션 정보는 제3 모션 정보를 선택하기 위한 제3 리스트 플래그를 포함할 수 있다. 적어도 하나의 구현에서, 제2 리스트 플래그가 제3 리스트 플래그와 동일할 때, 제2 참조 프레임 및 제3 참조 프레임은 동일한 참조 리스트로부터 선택될 수 있다. 제2 리스트 플래그가 제3 리스트 플래그와 상이할 때, 제2 참조 프레임 및 제3 참조 프레임은 상이한 참조 리스트들로부터 선택될 수 있다.
적어도 하나의 구현에서, 제1 서브-블록(512) 내의 복수의 제1 서브-블록 컴포넌트들은 제2 참조 벡터(V1) 및 제2 참조 프레임에 기초하여 예측될 수 있다. 제2 서브-블록(514) 내의 복수의 제2 서브-블록 컴포넌트들은 제3 참조 벡터(V2) 및 제3 참조 프레임에 기초하여 예측될 수 있다. 또한, 제3 서브-블록(516) 내의 복수의 제3 서브-블록 컴포넌트들은 제2 참조 벡터(V1), 제3 참조 벡터(V2), 제2 참조 프레임 및 제3 참조 프레임에 기초하여 예측될 수 있다. 제3 서브-블록(516) 내의 제3 서브-블록 컴포넌트들은 제2 참조 벡터(V1) 및 제2 참조 프레임에 기초하여 결정된 복수의 제1 참조 샘플들 및 제3 참조 벡터(V2) 및 제3 참조 프레임에 기초하여 결정된 복수의 제2 참조 샘플들을 도출하고, 복수의 블렌딩 가중치들에 기초하여 제2 참조 샘플들 및 제3 참조 샘플들을 병합함으로써 예측될 수 있다. 적어도 하나의 구현에서, 블렌딩 가중치들은 파티션 라인(511)과 제3 예측 영역(516) 내의 제3 서브-블록 컴포넌트들 사이의 복수의 컴포넌트 거리들에 기초하여 도출될 수 있다.
블록(370)에서, 디코더 모듈(124)은 예측된 블록에 기초하여 블록 유닛을 재구성한다. 도 1 및 도 2를 추가로 참조하면, 디코더 모듈(124)은 블록 유닛에 대한 비트스트림으로부터 복수의 잔차 컴포넌트들을 결정하고, 잔차 컴포넌트들을 예측된 블록에 더하여 블록 유닛을 재구성할 수 있다. 디코더 모듈(222)은 이미지 프레임 및 비디오를 재구성하기 위해 이미지 프레임의 다른 모든 블록 유닛들을 재구성할 수 있다.
도 6은 본 개시내용의 예시적인 구현에 따라 도 1에 예시된 제1 전자 디바이스의 인코더 모듈(114)의 블록도를 예시한다. 인코더 모듈(114)은 예측 프로세서(예를 들어, 예측 프로세스 유닛(6141)), 적어도 제1 합산기(예를 들어, 제1 합산기(6142)) 및 제2 합산기(예를 들어, 제2 합산기(6145)), 변환/양자화 프로세서(예를 들어, 변환/양자화 유닛(6143), 역양자화/역변환 프로세서(예를 들어, 역양자화/역변환 유닛(6144)), 필터(예를 들어, 필터링 유닛(6146)), 디코딩된 픽처 버퍼(예를 들어, 디코딩된 픽처 버퍼(6147)), 및 엔트로피 인코더(예를 들어, 엔트로피 인코딩 유닛(6148))를 포함할 수 있다. 인코더 모듈(114)의 예측 프로세스 유닛(6141)은 파티션 프로세서(예를 들어, 파티션 유닛(61411)), 인트라 예측 프로세서(예를 들어, 인트라 예측 유닛(61412)), 및 인터 예측 프로세서(예를 들어, 인터 예측 유닛(61413))를 추가로 포함할 수 있다.
인코더 모듈(114)은 소스 비디오를 수신하고 소스 비디오를 인코딩하여 비트스트림을 출력할 수 있다. 인코더 모듈(114)은 복수의 이미지 프레임들을 포함하는 소스 비디오를 수신한 다음, 코딩 구조에 따라 이미지 프레임들을 분할할 수 있다. 이미지 프레임들 각각은 적어도 하나의 이미지 블록으로 분할될 수 있다.
적어도 하나의 이미지 블록은 복수의 휘도 샘플들을 갖는 휘도 블록 및 복수의 색차 샘플들을 갖는 적어도 하나의 색차 블록을 포함할 수 있다. 휘도 블록 및 적어도 하나의 색차 블록은 매크로블록들, 코딩 트리 유닛들(CTU들), 코딩 블록들(CB들), 이들의 하위-분할들, 및/또는 다른 등가의 코딩 유닛을 생성하도록 추가로 분할될 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)은 소스 비디오의 추가적인 하위-분할들을 수행할 수 있다. 개시된 구현들은 인코딩 이전에 및/또는 인코딩 동안에 소스 비디오가 어떻게 파티셔닝되었는지에 관계없이 일반적으로 비디오 코딩에 적용 가능함을 주목해야 한다.
적어도 하나의 구현에서, 인코딩 프로세스 동안, 예측 프로세스 유닛(6141)은 이미지 프레임들 중 특정 이미지 프레임의 현재 이미지 블록을 수신할 수 있다. 현재 이미지 블록은 특정 이미지 프레임의 휘도 블록 또는 색차 블록들 중 하나의 색차 블록일 수 있다.
파티션 유닛(61411)은 현재 이미지 블록을 다수의 블록 유닛들로 분할할 수 있다. 인트라 예측 유닛(61412)은 공간적 예측을 제공하기 위해 현재 블록 유닛과 동일한 프레임 내의 하나 이상의 이웃 블록에 대한 현재 블록 유닛의 인트라-예측 코딩을 수행할 수 있다. 인터 예측 유닛(61413)은 시간적 예측을 제공하기 위해 하나 이상의 참조 이미지 블록 내의 하나 이상의 블록에 대한 현재 블록 유닛의 인터-예측 코딩을 수행할 수 있다.
적어도 하나의 구현에서, 예측 프로세스 유닛(6141)은 비용 함수와 같은 모드 선택 방법에 기초하여 인트라 예측 유닛(61412) 및 인터 예측 유닛(61413)에 의해 생성된 코딩 결과들 중 하나를 선택할 수 있다. 모드 선택 방법은 RDO(rate-distortion optimization) 프로세스일 수 있다.
예측 프로세스 유닛(6141)은 선택된 코딩 결과를 결정하고, 선택된 코딩 결과에 대응하는 예측된 블록을 잔차 블록을 생성하기 위해 제1 합산기(6142)에, 인코딩된 블록 유닛을 재구성하기 위해 제2 합산기(6145)에 제공할 수 있다. 예측 프로세스 유닛(6141)은 모션 벡터들, 인트라 모드 표시자들, 파티션 정보, 및 다른 신택스 정보와 같은 신택스 요소들을 엔트로피 인코딩 유닛(6148)에 추가로 제공할 수 있다.
적어도 하나의 구현에서, 인트라 예측 유닛(61412)은 현재 블록 유닛을 인트라 예측할 수 있다. 인트라 예측 유닛(61412)은 현재 블록 유닛을 인코딩하기 위해 현재 블록 유닛에 이웃하는 재구성된 샘플을 향해 지시된 인트라 예측 모드를 결정할 수 있다.
적어도 하나의 구현에서, 인트라 예측 유닛(61412)은 다양한 인트라 예측 모드들을 사용하여 현재 블록 유닛을 인코딩할 수 있다. 인트라 예측 유닛(61412) 또는 예측 프로세스 유닛(6141)은 선택된 모드들로부터 적절한 인트라 예측 모드를 선택할 수 있다. 인트라 예측 유닛(61412)은 현재 블록 유닛의 루마 컴포넌트들에 기초하여 현재 블록 유닛의 2개의 크로마 컴포넌트 중 하나를 예측하기 위해 크로스 컴포넌트 예측 모드를 사용하여 현재 블록 유닛을 인코딩할 수 있다. 인트라 예측 유닛(61412)은 현재 블록 유닛의 2개의 크로마 컴포넌트 중 제1 크로마 컴포넌트를 현재 블록 유닛의 2개의 크로마 컴포넌트 중 제2 크로마 컴포넌트에 기초하여 예측할 수 있다.
적어도 하나의 구현에서, 인터 예측 유닛(61413)은 인트라 예측 유닛(61412)에 의해 수행된 인트라 예측에 대한 대안으로서 현재 블록 유닛을 인터 예측할 수 있다. 인터 예측 유닛(61413)은 모션 벡터를 생성하기 위해 현재 블록 유닛의 모션을 추정하도록 모션 추정을 수행할 수 있다.
모션 벡터는 참조 이미지 블록 내의 참조 블록 유닛에 대한 현재 이미지 블록 내의 현재 블록 유닛의 변위를 표시할 수 있다. 인터 예측 유닛(61413)은 디코딩된 픽처 버퍼(6147)에 저장된 적어도 하나의 참조 이미지 블록을 수신하고 수신된 참조 이미지 블록들에 기초하여 모션을 추정하여 모션 벡터를 생성할 수 있다.
적어도 하나의 구현에서, 제1 합산기(6142)는 원래의 현재 블록 유닛으로부터 예측 프로세스 유닛(6141)에 의해 결정된 예측 블록을 뺌으로써 잔차 블록을 생성할 수 있다. 제1 합산기(6142)는 이 뺄셈을 수행하는 컴포넌트 또는 컴포넌트들을 표현할 수 있다.
적어도 하나의 구현에서, 변환/양자화 유닛(6143)은 잔차 변환 계수를 생성하기 위해 잔차 블록에 변환을 적용한 다음, 비트 레이트를 추가로 감소시키기 위해 잔차 변환 계수들을 양자화할 수 있다. 변환은 DCT, DST, AMT, MDNSST, HyGT, 신호 종속 변환, KLT, 웨이블릿 변환, 정수 변환, 부대역 변환 또는 개념적으로 유사한 변환 중 하나일 수 있다.
적어도 하나의 구현에서, 변환은 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 컨버팅할 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다.
적어도 하나의 구현에서, 변환/양자화 유닛(6143)은 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수 있다. 대안적으로, 엔트로피 인코딩 유닛(6148)이 스캔을 수행할 수 있다.
적어도 하나의 구현에서, 엔트로피 인코딩 유닛(6148)은 양자화 파라미터, 변환 데이터, 모션 벡터들, 인트라 모드들, 파티션 정보, 및 다른 신택스 정보를 포함하여 예측 프로세스 유닛(6141) 및 변환/양자화 유닛(6143)으로부터 복수의 신택스 요소들을 수신할 수 있다. 엔트로피 인코딩 유닛(6148)은 신택스 요소들을 비트스트림으로 인코딩할 수 있다.
적어도 하나의 구현에서, 엔트로피 인코딩 유닛(6148)은 CAVLC, CABAC, SBAC, PIPE 코딩 또는 다른 엔트로피 코딩 기술을 수행함으로써 양자화된 변환 계수들을 엔트로피 인코딩하여 인코딩된 비트스트림을 생성할 수 있다. 인코딩된 비트스트림은 다른 디바이스(즉, 도 1의 제2 전자 디바이스(120))로 송신되거나 또는 나중 송신 또는 검색을 위해 보관될 수 있다.
적어도 하나의 구현에서, 역양자화/역변환 유닛(6144)은 참조 블록으로서 나중에 사용하기 위해 픽셀 도메인에서 잔차 블록을 재구성하도록 역양자화 및 역변환을 적용할 수 있다. 제2 합산기(6145)는 디코딩된 픽처 버퍼(6147)에 저장하기 위한 재구성된 블록을 생성하기 위해 예측 프로세스 유닛(6141)으로부터 제공된 예측 블록에 재구성된 잔차 블록을 더할 수 있다.
적어도 하나의 구현에서, 필터링 유닛(6146)은 재구성된 블록으로부터 블로킹 아티팩트들을 제거하기 위해 디블로킹 필터, SAO 필터, 양방향 필터, 및/또는 ALF를 포함할 수 있다. 디블로킹 필터, SAO 필터, 양방향 필터 및 ALF 외에 추가 필터들(인 루프 또는 포스트 루프)가 사용될 수도 있다. 이러한 필터들은 간결함을 위해 예시되어 있지 않고, 제2 합산기(6145)의 출력을 필터링할 수 있다.
적어도 하나의 구현에서, 디코딩된 픽처 버퍼(6147)는 인트라 또는 인터 코딩 모드들에서와 같이 비디오를 인코딩하기 위해 인코더 모듈(114)에 의해 사용하기 위한 참조 블록을 저장하는 참조 픽처 메모리일 수 있다. 디코딩된 픽처 버퍼(6147)는 SDRAM을 포함하는 DRAM, MRAM, RRAM, 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들을 포함할 수 있다. 디코딩된 픽처 버퍼(6147)는 인코더 모듈(114)의 다른 컴포넌트들과 함께 온-칩일 수도 있고, 해당 컴포넌트들에 대해 오프-칩일 수도 있다.
적어도 하나의 구현에서, 인코더 모듈(114)은 도 3에 예시된 바와 같은 비디오를 인코딩하고 블록 유닛을 재구성하기 위한 방법(300)을 수행할 수 있다. 방법(300)은 도 1 및 도 8에 예시된 구성들을 사용하여 수행될 수 있고, 이들 도면들의 다양한 요소들이 방법(300)과 관련하여 참조된다. 도 3에 예시된 각각의 블록은 수행되는 하나 이상의 프로세스, 방법, 또는 서브루틴을 표현할 수 있다.
도 3의 블록들의 순서는 예시에 불과하며, 변경될 수 있다. 본 개시내용으로부터 벗어나지 않으면서 추가적인 블록들이 추가될 수도 있고 또는 더 적은 블록들이 활용될 수도 있다.
블록(310)에서, 인코더 모듈(114)은 비디오 데이터의 이미지 프레임을 수신한다. 비디오 데이터는 비디오일 수 있다. 도 1 및 도 6을 참조하면, 제1 전자 디바이스(110)는 소스 모듈(112)을 통해 비디오를 수신할 수 있다. 인코더 모듈(114)은 비디오로부터 이미지 프레임을 결정할 수 있다.
블록(320)에서, 인코더 모듈(114)은 수신된 비디오 데이터로부터 블록 폭 및 블록 높이를 갖는 블록 유닛을 결정한다. 도 1 및 도 6을 참조하면, 인코더 모듈(114)은 블록 유닛을 결정하기 위해 이미지 프레임을 분할할 수 있다. 적어도 하나의 구현에서, 제1 전자 디바이스(110)의 예측 프로세스 유닛(6141)은 파티션 유닛(61411)을 통해 비디오로부터 블록 유닛을 결정할 수 있고, 인코더 모듈(114)은 파티션 유닛(61411)의 파티션 결과에 기초하여 복수의 파티션 표시들을 비트스트림으로 제공할 수 있다. 구현에서, 인코더 모듈(114)은 복수의 코딩 트리 유닛들을 생성하도록 이미지 프레임들을 분할할 수 있고, (예를 들어, 비디오 코딩 표준에 기초하여) 블록 유닛을 결정하기 위해 코딩 트리 유닛들 중 하나를 추가로 분할할 수 있다. 도 4a 내지 도 4c를 참조하면, 블록 높이(H410)는 블록 폭(W410)과 같고, 블록 폭(W430)은 8×H430과 같고, 블록 높이(H450)는 4×W450과 같다.
블록(330)에서, 인코더 모듈(114)은 블록 폭과 블록 높이 사이의 비교를 결정한다. 도 1 및 도 6을 참조하면, 인코더 모듈(114)은 부등식에 기초하여 블록 폭과 블록 높이 사이의 비교를 결정할 수 있다. 예를 들어, 블록 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)은 임계 값(T)보다 크거나 같다(즉, R ≥ T)이다. 폭(Wb)과 블록 높이(Hb) 사이의 비율 값(R)은 임계 값(T)보다 작을 수 있다(즉, R < T).
적어도 하나의 구현에서, 인코더 모듈(114)은 블록 폭(Wb) 및 블록 높이(Hb)에 기초하여 계산된 비율 파라미터(RP)를 결정할 수 있다. 적어도 하나의 구현에서, 제1 비율 파라미터(RP1)는 나눗셈에 의해 블록 폭(Wb) 및 블록 높이(Hb)에 기초하여 계산될 수 있다. 하나의 구현에서, 블록 폭(Wb)이 블록 높이(Hb)보다 크거나 같으면, 제1 비율 파라미터(RP1)는 블록 폭(Wb)을 블록 높이(Hb)로 나눔으로써 계산될 수 있다(즉, RP1 = Wb/Hb). 구현에서, 블록 폭(Wb)이 블록 높이(Hb)보다 작으면, 제1 비율 파라미터(RP1)는 블록 높이(Hb)를 블록 폭(Wb)으로 나눔으로써 계산될 수 있다(즉, RP1 = Hb/Wb).
적어도 하나의 구현에서, 제2 비율 파라미터(RP2)가 로그 방정식에 의해 블록 폭(Wb) 및 블록 높이(Hb)에 기초하여 계산될 수 있다. 구현에서, 상이한 공식들에 의해 계산된 제1 비율 파라미터(RP1) 및 제2 비율 파라미터(RP2) 중 하나가 블록 유닛의 비율 파라미터(RP)로서 설정될 수 있다. 적어도 하나의 구현에서, 제2 비율 파라미터(RP2)는 블록 폭의 밑수-2인 로그로부터 블록 높이의 밑수-2인 로그를 뺌으로써 생성된 차이 값의 절대 값과 동일할 수 있다(즉,
Figure pct00005
). 구현에서, 제1 비율 파라미터(RP1)는 2의 제2 비율 파라미터(RP2) 제곱과 같을 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)은 비율 파라미터(RP)를 비율 임계 값(RT)과 비교할 수 있다. 구현에서, 인코더 모듈(114)은, 비율 파라미터(RP)가 비율 임계 값(RT)보다 크거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하는 것으로 결정할 수 있다. 인코더 모듈(114)은, 비율 파라미터(RP)가 비율 임계 값(RT)보다 작으면, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하는 것으로 결정할 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)은, 제1 비율 파라미터(RP1)가 비율 파라미터(RP)로서 설정될 때, 비율 파라미터(RP)를 제1 비율 임계 값(RT1)과 비교할 수 있다. 적어도 하나의 구현에서, 인코더 모듈(114)은, 제2 비율 파라미터(RP2)가 비율 파라미터(RP)로서 설정될 때, 비율 파라미터(RP)를 제2 비율 임계 값(RT2)과 비교할 수 있다.
하나의 구현에서, 인코더 모듈(114)은, 제1 비율 파라미터(RP1)가 제1 비율 임계 값(RT1)보다 크거나 같거나 또는 제2 비율 파라미터(RP2)가 제2 비율 임계 값(RT2)보다 크거나 같을 때, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하는 것으로 결정할 수 있다. 인코더 모듈(114)은, 제1 비율 파라미터(RP1)가 제1 비율 임계 값(RT1)보다 작거나 또는 제2 비율 파라미터(RP2)가 제2 비율 임계 값(RT2)보다 작을 때, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하는 것으로 결정할 수 있다.
적어도 하나의 구현에서, 제1 비율 임계 값(RT1) 및 제2 비율 임계 값(RT2)은 양의 정수일 수 있다. 적어도 하나의 구현에서, 제1 비율 임계 값(RT1)은 2의 n 제곱과 같을 수 있고, 숫자 n은 양의 정수이다. 제1 비율 임계 값(RT1)은 1, 2, 4 또는 8로 미리 설정될 수 있고, 제2 비율 임계 값(RT2)은 1, 2, 3 또는 4로 미리 설정될 수 있다.
적어도 하나의 구현에서, 제1 비율 파라미터(RP1)가 2의 제2 비율 파라미터(RP2) 제곱과 같기 때문에, 제1 비율 임계 값(RT1)은 2의 제2 비율 임계 값(RT2) 제곱과 같을 수 있다. 따라서, 인코더 모듈(114)이 비교를 제1 부등식(RP1 < RT1)으로부터 제2 부등식(RP2 < RT2)으로 변경할 때, 비교 결과가 변경되지 않을 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)이 블록 폭(Wb)과 블록 높이(Hb) 사이의 비교를 결정할 때, 인코더 모듈(114)은 블록 폭(Wb)을 블록 높이(Hb)와 임계 값(T)을 곱함으로써 계산된 제1 확대된 값(N1)과 비교하고, 블록 높이(Hb)를 블록 폭(Wb)과 임계 값(T)을 곱함으로써 계산된 제2 확대된 값(N2)와 비교할 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)은, 블록 폭(Wb)이 제1 확대된 값(N1)보다 작고 블록 높이(Hb)가 제2 확대된 값(N2)보다 작으면, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하는 것으로 결정할 수 있다. 다른 구현에서, 인코더 모듈(114)은, 블록 폭(Wb)이 제1 확대된 값(N1)보다 크거나 같거나 또는 블록 높이(Hb)가 제2 확대된 값(N2)보다 크거나 같으면, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하는 것으로 결정할 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)이 제1 확대된 값(N1) 및 제2 확대된 값(N2)에 기초하여 비교를 결정할 때, 임계 값(T)은 제1 비율 임계 값(RT1)과 같을 수 있다. 인코더 모듈(114)은 제3 부등식(Wb < N1 = RT1×Hb) 및 제4 부등식(Hb < N2 = RT1×Wb)에 기초하여 비교를 결정할 수 있다.
적어도 하나의 구현에서, 블록 폭(Wb)이 블록 높이(Hb)보다 클 때, 제1 부등식(RP1 = Wb/Hb < RT1)에 기초하여 결정된 비교는 제3 부등식(Wb < N1 = RT1×Hb) 및 제4 부등식(Hb < N2 = RT1×Wb)에 기초하여 결정된 비교와 동일할 수 있다. 블록 폭(Wb)이 블록 높이(Hb)보다 작으면, 제1 부등식(RP1 = Hb/Wb < RT1)에 기초하여 결정된 비교는 또한 제3 부등식(Wb < N1 = RT1×Hb) 및 제4 부등식(Hb < N2 = RT1×Wb)에 기초하여 결정된 비교와 동일할 수 있다.
블록(340)에서, 인코더 모듈(114)은 비교에 기초하여 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는지 여부를 결정한다. 방법(300)은, 인코더 모듈(114)이 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는 것으로 결정하면, 블록(350)으로 진행할 수 있다. 방법은, 인코더 모듈(114)이 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화되는 것으로 결정하면, 블록(360)으로 진행할 수 있다.
도 1 및 도 6을 추가로 참조하면, 인코더 모듈(114)은, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는 것으로 결정할 수 있다. 인코더 모듈(114)은, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하면, 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화되는 것으로 결정할 수 있다.
블록(350)에서, 인코더 모듈(114)은 기하학적 파티셔닝 모드와 상이한 제1 예측 모드를 사용함으로써 블록 유닛을 예측하여 예측된 블록을 생성한다. 도 1 및 도 6을 추가로 참조하면, 인코더 모듈(114)은 인트라 예측 유닛(61412) 및 인터 예측 유닛(61413)에 의해 생성된 복수의 코딩 결과들을 생성할 수 있다. 그런 다음, 인코더 모듈(114)은 비용 함수와 같은 모드 선택 방법에 기초하여 코딩 결과들 중 하나를 선택할 수 있다. 모드 선택 방법은 RDO(rate-distortion optimization) 프로세스일 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)은, 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화될 때, 복수의 옵션 모드들로부터 제1 예측 모드를 선택할 수 있다. 구현에서, 인코더 모듈(114)은, 비교가 비율 값(R)이 임계 값(T)보다 크거나 같다고 표시하면, 제1 예측 모드에 기초하여 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다. 옵션 모드들 각각은 기하학적 파티셔닝 모드와 상이하다. 적어도 하나의 구현에서, 옵션 모드들은 병합 후보 리스트에 복수의 병합 후보 모드들을 포함할 수 있다.
블록(360)에서, 인코더 모듈(114)은 기하학적 파티셔닝 모드를 포함하는 복수의 후보 모드들로부터 선택된 제2 예측 모드를 사용함으로써 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다. 도 1 및 도 6을 추가로 참조하면, 인코더 모듈(114)은 인트라 예측 유닛(61412) 및 인터 예측 유닛(61413)에 의해 생성된 코딩 결과들을 생성할 수 있다. 그런 다음, 인코더 모듈(114)은 모드 선택 방법에 기초하여 코딩 결과들 중 하나를 선택할 수 있다.
적어도 하나의 구현에서, 인코더 모듈(114)은, 블록 유닛에 대해 기하학적 파티셔닝 모드가 활성화될 때, 복수의 후보 모드들로부터 제2 예측 모드를 선택할 수 있다. 구현에서, 인코더 모듈(114)은, 비교가 비율 값(R)이 임계 값(T)보다 작다고 표시하면, 제2 예측 모드에 기초하여 블록 유닛을 예측하여 예측된 블록을 생성할 수 있다. 적어도 하나의 구현에서, 후보 모드들은 옵션 모드들 및 기하학적 파티셔닝 모드들을 포함할 수 있다.
블록(370)에서, 인코더 모듈(114)은 예측된 블록에 기초하여 블록 유닛을 재구성한다. 적어도 하나의 구현에서, 블록 유닛은 복수의 블록 요소들을 포함할 수 있다. 구현에서, 블록 요소들 각각은 픽셀 요소일 수 있다. 도 1 및 도 2를 추가로 참조하면, 인코더 모듈(114)은 블록 요소들로부터 예측된 블록을 뺌으로써 복수의 잔차 컴포넌트들을 결정하고, 잔차 컴포넌트들에 대응하는 복수의 계수들을 포함하는 비트스트림을 제공할 수 있다. 인코더 모듈(114)은 계수들에 기초하여 잔차 컴포넌트들을 반환하고, 반환된 잔차 컴포넌트들을 예측된 블록에 더하여 재구성된 블록 유닛들을 생성할 수 있다.
개시된 구현들은 모든 면들에서 예시적이며 제한적이지 않은 것으로 간주되어야 한다. 또한, 본 개시내용은 특정 개시된 구현들로 제한되지 않고, 본 개시내용의 범위를 벗어나지 않으면서 많은 재배열들, 수정들, 및 대체들이 가능하다는 점이 이해되어야 한다.

Claims (20)

  1. 전자 디바이스에 의해 비트스트림을 디코딩하는 방법으로서,
    상기 비트스트림의 이미지 프레임을 수신하는 단계;
    상기 수신된 이미지 프레임으로부터 블록 폭 및 블록 높이를 갖는 블록 유닛을 결정하는 단계;
    상기 블록 폭과 상기 블록 높이 사이의 비교에 기초하여 상기 블록 유닛에 대해 기하학적 파티셔닝 모드가 비활성화되는지 여부를 결정하는 단계 - 상기 기하학적 파티셔닝 모드가 상기 블록 유닛에 적용될 때, 상기 블록 유닛은 상기 블록 유닛의 상이한 병합 후보들에 의해 예측된 복수의 서브-블록들을 생성하도록 분할됨 -;
    상기 블록 유닛에 대해 상기 기하학적 파티셔닝 모드가 비활성화될 때, 상기 기하학적 파티셔닝 모드와 상이한 예측 모드에 기초하여 상기 블록 유닛을 예측함으로써 예측된 블록을 생성하는 단계; 및
    상기 예측된 블록에 기초하여 상기 블록 유닛을 재구성하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 비교가 상기 블록 폭과 상기 블록 높이 사이의 비율 값이 임계 값보다 크거나 같다고 표시하면, 상기 블록 유닛에 대해 상기 기하학적 파티셔닝 모드가 비활성화되는 것으로 결정하는 단계; 및
    상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하면, 상기 기하학적 파티셔닝 모드가 비활성화되지 않는 것으로 결정하는 단계
    를 추가로 포함하는, 방법.
  3. 제2항에 있어서,
    상기 블록 폭 및 상기 블록 높이에 기초하여 생성된 비율 파라미터를 결정하는 단계;
    상기 비율 파라미터를 비율 임계 값과 비교하는 단계;
    상기 비율 파라미터가 상기 비율 임계 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하는 단계; 및
    상기 비율 파라미터가 상기 비율 임계 값보다 작으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하는 것으로 결정하는 단계
    를 추가로 포함하는, 방법.
  4. 제3항에 있어서,
    상기 블록 폭이 상기 블록 높이보다 크면, 상기 비율 파라미터는 상기 블록 폭을 상기 블록 높이로 나눔으로써 결정되고,
    상기 블록 높이가 상기 블록 폭보다 크거나 같으면, 상기 비율 파라미터는 상기 블록 높이를 상기 블록 폭으로 나눔으로써 결정되는, 방법.
  5. 제3항에 있어서, 상기 비율 파라미터는 상기 블록 폭의 밑수-2인 로그(base-2 logarithm)로부터 상기 블록 높이의 밑수-2인 로그를 뺌으로써 생성된 차이 값의 절대 값과 동일한, 방법.
  6. 제2항에 있어서,
    상기 블록 폭을 상기 블록 높이와 상기 임계 값을 곱함으로써 생성된 제1 확대된 값과 비교하는 단계;
    상기 블록 높이를 상기 블록 폭과 상기 임계 값을 곱함으로써 생성된 제2 확대된 값과 비교하는 단계;
    상기 블록 폭이 상기 제1 확대된 값보다 작고 상기 블록 높이가 상기 제2 확대된 값보다 작으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하는 것으로 결정하는 단계;
    상기 블록 폭이 상기 제1 확대된 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하는 단계: 및
    상기 블록 높이가 상기 제2 확대된 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하는 단계
    를 추가로 포함하는, 방법.
  7. 제1항에 있어서,
    상기 블록 유닛이 상기 기하학적 파티셔닝 모드에 의해 예측될 때, 상기 블록 유닛의 파티션 인덱스, 제1 병합 인덱스 및 제2 병합 인덱스를 결정하는 단계;
    상기 파티션 인덱스에 기초하여 상기 블록 유닛을 분할하여 제1 서브-블록 및 제2 서브-블록을 생성하는 단계; 및
    상기 제1 병합 인덱스에 기초하여 복수의 병합 후보들로부터 선택된 제1 병합 모드에 의해 상기 제1 서브-블록을 예측하고, 상기 제2 병합 인덱스에 기초하여 상기 복수의 병합 후보들로부터 선택된 제2 병합 모드에 의해 상기 제2 서브-블록을 예측하여, 상기 예측된 블록을 생성하는 단계
    를 추가로 포함하는, 방법.
  8. 전자 디바이스에 의해 비트스트림을 디코딩하는 방법으로서,
    상기 비트스트림의 이미지 프레임을 수신하는 단계;
    상기 수신된 이미지 프레임으로부터 블록 폭 및 블록 높이를 갖는 블록 유닛을 결정하는 단계;
    상기 블록 폭과 상기 블록 높이 사이의 비교를 결정하는 단계;
    상기 비교가 상기 블록 폭과 상기 블록 높이 사이의 비율 값이 임계 값보다 크거나 같다고 표시하면, 기하학적 파티셔닝 모드와 상이한 제1 예측 모드에 기초하여 상기 블록 유닛을 예측함으로써 예측된 블록을 생성하는 단계 - 상기 기하학적 파티셔닝 모드가 상기 블록 유닛에 적용될 때, 상기 블록 유닛은 상기 블록 유닛의 상이한 병합 후보들에 의해 예측된 복수의 서브-블록들을 생성하도록 분할됨 -; 및
    상기 예측된 블록에 기초하여 상기 블록 유닛을 재구성하는 단계
    를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 블록 폭 및 상기 블록 높이에 기초하여 생성된 비율 파라미터를 결정하는 단계;
    상기 비율 파라미터를 비율 임계 값과 비교하는 단계; 및
    상기 비율 파라미터가 상기 비율 임계 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하는 단계
    를 추가로 포함하는, 방법.
  10. 제9항에 있어서,
    상기 블록 폭이 상기 블록 높이보다 크면, 상기 비율 파라미터는 상기 블록 폭을 상기 블록 높이로 나눔으로써 결정되고,
    상기 블록 높이가 상기 블록 폭보다 크거나 같으면, 상기 비율 파라미터는 상기 블록 높이를 상기 블록 폭으로 나눔으로써 결정되는, 방법.
  11. 제9항에 있어서, 상기 비율 파라미터는 상기 블록 폭의 밑수-2인 로그로부터 상기 블록 높이의 밑수-2인 로그를 뺌으로써 생성된 차이 값의 절대 값과 동일한, 방법.
  12. 제9항에 있어서,
    상기 비율 파라미터가 상기 비율 임계 값보다 작으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하는 것으로 결정하는 단계; 및
    상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하면, 상기 기하학적 파티셔닝 모드를 포함하는 복수의 후보 모드들로부터 선택된 제2 예측 모드에 기초하여 상기 블록 유닛을 예측함으로써 상기 예측된 블록을 생성하는 단계
    를 추가로 포함하는, 방법.
  13. 제8항에 있어서,
    상기 블록 폭을 상기 블록 높이와 상기 임계 값을 곱함으로써 생성된 제1 확대된 값과 비교하는 단계;
    상기 블록 높이를 상기 블록 폭과 상기 임계 값을 곱함으로써 생성된 제2 확대된 값과 비교하는 단계;
    상기 블록 폭이 상기 제1 확대된 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하는 단계; 및
    상기 블록 높이가 상기 제2 확대된 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하는 단계
    를 추가로 포함하는, 방법.
  14. 제13항에 있어서,
    상기 블록 폭이 상기 제1 확대된 값보다 작고 상기 블록 높이가 상기 제2 확대된 값보다 작으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하는 것으로 결정하는 단계; 및
    상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표현할 때, 상기 기하학적 파티셔닝 모드를 포함하는 복수의 후보 모드들로부터 선택된 제2 예측 모드를 사용함으로써 상기 블록 유닛을 예측하여 상기 예측된 블록을 생성하는 단계
    를 추가로 포함하는, 방법.
  15. 비트스트림을 디코딩하기 위한 전자 디바이스로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 커플링되고, 프로그램을 저장하는 스토리지 디바이스
    를 포함하고,
    상기 프로그램은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
    상기 비트스트림의 이미지 프레임을 수신하게 하고,
    상기 수신된 이미지 프레임으로부터 블록 폭 및 블록 높이를 갖는 블록 유닛을 결정하게 하고,
    상기 블록 폭과 상기 블록 높이 사이의 비교를 결정하게 하고,
    상기 비교가 상기 블록 폭과 상기 블록 높이 사이의 비율 값이 임계 값보다 크거나 같다고 표시하면, 기하학적 파티셔닝 모드와 상이한 제1 예측 모드에 기초하여 상기 블록 유닛을 예측함으로써 예측된 블록을 생성하게 하고 - 상기 기하학적 파티셔닝 모드가 상기 블록 유닛에 적용될 때, 상기 블록 유닛은 상기 블록 유닛의 상이한 병합 후보들에 의해 예측된 복수의 서브-블록들을 생성하도록 분할됨 -,
    상기 예측된 블록에 기초하여 상기 블록 유닛을 재구성하게 하는, 전자 디바이스.
  16. 제15항에 있어서, 상기 프로그램은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금, 추가로
    상기 블록 폭 및 상기 블록 높이에 기초하여 생성된 비율 파라미터를 결정하게 하고,
    상기 비율 파라미터를 비율 임계 값과 비교하게 하고,
    상기 비율 파라미터가 상기 비율 임계 값보다 크거나 같을 때, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하게 하는, 전자 디바이스.
  17. 제16항에 있어서,
    상기 블록 폭이 상기 블록 높이보다 크면, 상기 비율 파라미터는 상기 블록 폭을 상기 블록 높이로 나눔으로써 결정되고,
    상기 블록 높이가 상기 블록 폭보다 크거나 같으면, 상기 비율 파라미터는 상기 블록 높이를 상기 블록 폭으로 나눔으로써 결정되는, 전자 디바이스.
  18. 제16항에 있어서, 상기 비율 파라미터는 상기 블록 폭의 밑수-2인 로그로부터 상기 블록 높이의 밑수-2인 로그를 뺌으로써 생성된 차이 값의 절대 값과 동일한, 전자 디바이스.
  19. 제16항에 있어서, 상기 프로그램은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금, 추가로
    상기 비율 파라미터가 상기 비율 임계 값보다 작으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하는 것으로 결정하게 하고,
    상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표현할 때, 상기 기하학적 파티셔닝 모드를 포함하는 복수의 후보 모드들로부터 선택된 제2 예측 모드에 기초하여 상기 블록 유닛을 예측함으로써 상기 예측된 블록을 생성하게 하는, 전자 디바이스.
  20. 제15항에 있어서, 상기 프로그램은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금, 추가로
    상기 블록 폭을 상기 블록 높이와 상기 임계 값을 곱함으로써 생성된 제1 확대된 값과 비교하게 하고,
    상기 블록 높이를 상기 블록 폭과 상기 임계 값을 곱함으로써 생성된 제2 확대된 값과 비교하게 하고,
    상기 블록 폭이 상기 제1 확대된 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하게 하고,
    상기 블록 높이가 상기 제2 확대된 값보다 크거나 같으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 크거나 같다고 표시하는 것으로 결정하게 하고,
    상기 블록 폭이 상기 제1 확대된 값보다 작고 상기 블록 높이가 상기 제2 확대된 값보다 작으면, 상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하는 것으로 결정하게 하고,
    상기 비교가 상기 비율 값이 상기 임계 값보다 작다고 표시하면, 상기 기하학적 파티셔닝 모드를 포함하는 복수의 후보 모드들로부터 선택된 제2 예측 모드에 기초하여 상기 블록 유닛을 예측함으로써 상기 예측된 블록을 생성하게 하는, 전자 디바이스.
KR1020227025262A 2019-12-30 2020-12-30 비디오 데이터를 코딩하기 위한 디바이스 및 방법 KR20220113533A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962955228P 2019-12-30 2019-12-30
US62/955,228 2019-12-30
PCT/CN2020/141275 WO2021136349A1 (en) 2019-12-30 2020-12-30 Device and method for coding video data

Publications (1)

Publication Number Publication Date
KR20220113533A true KR20220113533A (ko) 2022-08-12

Family

ID=76545708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227025262A KR20220113533A (ko) 2019-12-30 2020-12-30 비디오 데이터를 코딩하기 위한 디바이스 및 방법

Country Status (7)

Country Link
US (3) US11284078B2 (ko)
EP (1) EP4055826A4 (ko)
JP (1) JP7499854B2 (ko)
KR (1) KR20220113533A (ko)
CN (1) CN114902663A (ko)
MX (1) MX2022007973A (ko)
WO (1) WO2021136349A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220070530A (ko) * 2019-10-10 2022-05-31 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519005B2 (en) * 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
JP4015934B2 (ja) * 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US20090196342A1 (en) * 2006-08-02 2009-08-06 Oscar Divorra Escoda Adaptive Geometric Partitioning For Video Encoding
CN101731012B (zh) * 2007-04-12 2013-10-16 汤姆森特许公司 用于视频编码器中的快速几何模式判定的方法和设备
KR101579394B1 (ko) * 2007-10-16 2015-12-21 톰슨 라이센싱 기하학적으로 분할된 수퍼 블록들의 비디오 인코딩 및 디코딩 방법 및 장치
EP2093699A1 (en) * 2008-02-19 2009-08-26 British Telecommunications Public Limited Company Movable object status determination
JP5422168B2 (ja) * 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
KR102521802B1 (ko) * 2010-05-04 2023-04-13 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
JP2012023597A (ja) * 2010-07-15 2012-02-02 Sony Corp 画像処理装置及び画像処理方法
US20120147961A1 (en) * 2010-12-09 2012-06-14 Qualcomm Incorporated Use of motion vectors in evaluating geometric partitioning modes
US9532066B2 (en) * 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
US9736489B2 (en) * 2011-09-17 2017-08-15 Qualcomm Incorporated Motion vector determination for video coding
CN108881903B (zh) * 2011-10-19 2022-01-04 太阳专利托管公司 图像编码方法及装置、图像解码方法及装置、编解码装置
US20130114717A1 (en) * 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9532057B2 (en) * 2012-12-28 2016-12-27 Qualcomm Incorporated Inter-layer prediction using sample-adaptive adjustments for bit depth scalable video coding
US9826244B2 (en) * 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
KR102179383B1 (ko) 2013-08-09 2020-11-16 삼성전자주식회사 병합 모드 결정 방법 및 장치
WO2018037853A1 (ja) 2016-08-26 2018-03-01 シャープ株式会社 画像復号装置及び画像符号化装置
WO2019001734A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. ENCODER, DECODER, COMPUTER PROGRAM, AND COMPUTER PROGRAM PRODUCT FOR PROCESSING A FRAME OF A VIDEO SEQUENCE
US11159793B2 (en) 2017-10-16 2021-10-26 Digitalinsights Inc. Method, device, and recording medium storing bit stream, for encoding/decoding image
WO2019151279A1 (ja) * 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2019201203A1 (en) 2018-04-16 2019-10-24 Mediatek Inc. Methods and apparatuses of video processing with overlapped block motion compensation in video coding systems
EP3811611A4 (en) * 2018-06-22 2022-06-15 OP Solutions, LLC BLOCK LEVEL GEOMETRIC PARTITIONING
CN112823514A (zh) * 2018-11-08 2021-05-18 Oppo广东移动通信有限公司 图像信号编码/解码方法及其设备
CN113647104A (zh) * 2019-01-28 2021-11-12 Op方案有限责任公司 在以自适应区域数量进行的几何分区中的帧间预测
KR20220024773A (ko) * 2019-06-24 2022-03-03 알리바바 그룹 홀딩 리미티드 동영상 코딩시 모션 필드 저장 방법 및 장치
EP4008108A4 (en) * 2019-09-01 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. ALIGNMENT OF PREDICTION WEIGHTS IN VIDEO ENCODING
WO2021104433A1 (en) * 2019-11-30 2021-06-03 Beijing Bytedance Network Technology Co., Ltd. Simplified inter prediction with geometric partitioning
WO2021129694A1 (en) * 2019-12-24 2021-07-01 Beijing Bytedance Network Technology Co., Ltd. High level syntax for inter prediction with geometric partitioning

Also Published As

Publication number Publication date
JP7499854B2 (ja) 2024-06-14
MX2022007973A (es) 2022-07-05
US20220166978A1 (en) 2022-05-26
US20210203931A1 (en) 2021-07-01
US11284078B2 (en) 2022-03-22
WO2021136349A1 (en) 2021-07-08
US20240089432A1 (en) 2024-03-14
JP2023501726A (ja) 2023-01-18
EP4055826A4 (en) 2023-11-22
CN114902663A (zh) 2022-08-12
EP4055826A1 (en) 2022-09-14

Similar Documents

Publication Publication Date Title
US11272197B2 (en) Device and method for coding video data
US11350082B2 (en) Device and method for coding video data in multiple reference line prediction
US11405648B2 (en) Device and method for coding video data
WO2019210840A1 (en) Device and method for coding video data based on different reference sets in linear model prediction
KR102391834B1 (ko) 조정된 인트라 모드 목록에 기초한 비디오 데이터를 코딩하기 위한 디바이스 및 방법
US20240089432A1 (en) Device and method for coding video data for geometric partitioning mode
WO2021204063A1 (en) Device and method for coding video data
US11051029B2 (en) Device and method for coding video data
US11272199B2 (en) Device and method for coding video data
US11272179B2 (en) Device and method for coding video data
US12003780B2 (en) Device and method for decoding video data using maximum bit-depth constraint information
US11622122B2 (en) Video coding device and method for determining an MVP candidate list
WO2022105721A1 (en) Device and method for coding video data