KR20240049364A - 디코더측 인트라 모드 도출을 위한 방법 및 디바이스 - Google Patents

디코더측 인트라 모드 도출을 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR20240049364A
KR20240049364A KR1020247010016A KR20247010016A KR20240049364A KR 20240049364 A KR20240049364 A KR 20240049364A KR 1020247010016 A KR1020247010016 A KR 1020247010016A KR 20247010016 A KR20247010016 A KR 20247010016A KR 20240049364 A KR20240049364 A KR 20240049364A
Authority
KR
South Korea
Prior art keywords
mode
intra
video
pdpc
dimd
Prior art date
Application number
KR1020247010016A
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 KR20240049364A publication Critical patent/KR20240049364A/ko

Links

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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

인트라 예측 코딩 모드를 이용한 비디오 코딩을 위한 방법, 장치 및 컴퓨터가 판독 가능한 비일시적 저장 매체가 제공된다. 하나의 방법에서, 디코더는 인트라 예측 코딩 모드에서 PDPC(position-dependent intra prediction combination) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 PDPC 작동에 기반하여 하나 이상의 비디오 블록의 예측 샘플 값을 결정하며; DC(direct current) 모드 또는 평면 모드가 하나 이상의 비디오 블록의 하나 이상의 인트라 예측으로 적용된다는 결정에 응답하여, 디코더는 인트라 예측 코딩 모드에서 PDPC 작동을 통합하기 위해 DC 모드 및 평면 모드에 대한 PDPC 작동을 디세이블할 수 있다.

Description

디코더측 인트라 모드 도출을 위한 방법 및 디바이스
본 출원은 2021년 9월 29일에 출원된 임시 출원 번호 제63/250,186호에 기반하고 이에 대한 우선권을 주장하는 바이며, 그 전체 내용이 모든 목적을 위해 참조로 여기에 포함된다.
본 개시는 비디오 코딩 및 압축에 관한 것이다. 보다 구체적으로, 본 개시는 디코더측 인트라 모드 도출(decoder-side intra mode derivation, DIMD)을 이용한 인코더 및 디코더에 관한 것이다.
디지털 비디오는 디지털 텔레비전, 랩톱 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, 디지털 카메라, 디지털 리코딩 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 스마트폰, 비디오 회의 디바이스, 비디오 스트리밍 디바이스 등과 같은 다양한 전자 디바이스에 의해 지원된다. 전자 디바이스는 통신 네트워크를 통해 디지털 비디오 데이터를 전송 및 수신하거나 그렇지 않으면 통신하거나, 및/또는 디지털 비디오 데이터를 저장 디바이스에 저장한다. 통신 네트워크의 제한된 대역폭 용량과 저장 디바이스의 제한된 메모리 자원으로 인해, 비디오 코딩은 비디오 데이터가 통신되거나 저장되기 전에 하나 이상의 비디오 코딩 표준에 따라 비디오 데이터를 압축하는 데 사용될 수 있다. 예를 들어 비디오 코딩 표준은, VVC(Versatile Video Coding), JEM(Joint Exploration Test Model), HEVC(High-Efficiency Video Coding)/H.265, AVC(Advanced Video Coding)/H.264, MPEG(Moving Picture Expert Group) 코딩 등을 포함한다. 비디오 코딩은 일반적으로 비디오 데이터에 내재된 중복성을 활용하는 예측 방법(예: 인터 예측, 인트라 예측 등)을 활용한다. 비디오 코딩은 비디오 품질 저하를 피하거나 최소화하면서 더 낮은 비트 레이트를 사용하는 형태로 비디오 데이터를 압축하는 것을 목표로 한다.
본 개시의 예는 인트라 예측 코딩 모드를 이용한, 비디오 디코딩을 위한 방법 및 장치를 제공한다.
본 개시의 제1 측면에 따르면, 인트라 예측 코딩 모드를 이용한 비디오 디코딩 방법이 제공된다. 이 방법은, 디코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동(operation)을 통합하기(unify) 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 PDPC 작동에 기반하여, 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 - PDPC 작동은 경계 참조 샘플(boundary reference sample)의 조합(combination)에 기반하여 하나 이상의 인트라 예측의 결과를 수정함 -; 및 DC(direct current) 모드 또는 평면(planar) 모드가 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 디코더가, 인트라 예측 코딩 모드에서 PDPC 작동을 통합하기 위해 DC 모드 또는 평면 모드에 대한 PDPC 작동을 디세이블하는(disabling) 단계를 포함한다.
본 개시의 제2 측면에 따르면, 인트라 예측 코딩 모드를 이용한 비디오 디코딩 방법이 제공된다. 이 방법은 디코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 PDPC 작동에 기반하여, 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 - PDPC 작동은 경계 참조 샘플의 조합에 기반하여 하나 이상의 인트라 예측의 결과를 수정함 -; 및 각도(angular) 모드가 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 디코더가, 인트라 예측 코딩 모드에서 PDPC 작동을 통합하기 위해 각도 모드에 대한 PDPC 작동을 디세이블하는 단계를 포함한다.
본 개시의 제3 측면에 따르면, 인트라 예측 코딩 모드를 이용한 비디오 디코딩 방법이 제공된다. 이 방법은, 디코더가, 융합 방식(fusion scheme)이 DIMD 모드에서 적용되는지를 판정하는 단계 - 융합 방식은 DIMD 모드에서 예측자의 가중 평균(weighted average)으로 적용됨 -; 디코더가, DIMD 모드에서 이용 가능한 지향성 모드(available directional mode)에 오프셋을 적용하여 오프셋 지향성 모드를 획득하는 단계; 및 디코더가, 융합 방식이 DIMD 모드에서 적용되는지에 기반하여, 오프셋 지향성 모드를 MPM(Most Probable Mode)의 리스트에 추가할지를 판정하는 단계를 포함한다.
본 개시의 제4 측면에 따르면, 인트라 예측 코딩 모드를 이용한 비디오 코딩 방법이 제공된다. 이 방법은 인코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 PDPC 작동에 기반하여, 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 - PDPC 작동은 경계 참조 샘플의 조합에 기반하여 하나 이상의 인트라 예측의 결과를 수정함 -; 및 DC(direct current) 모드 또는 평면 모드가 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 인코더가, 인트라 예측 코딩 모드에서 PDPC 작동을 통합하기 위해 DC 모드 또는 평면 모드에 대한 PDPC 작동을 디세이블하는 단계를 포함한다.
본 개시의 제5 측면에 따르면, 인트라 예측 코딩 모드를 이용한 비디오 코딩 방법이 제공된다. 이 방법은 인코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 PDPC 작동에 기반하여, 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 - PDPC 작동은 경계 참조 샘플의 조합에 기반하여 하나 이상의 인트라 예측의 결과를 수정함 -; 및 각도 모드가 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 인코더가, 인트라 예측 코딩 모드에서 PDPC 작동을 통합하기 위해 각도 모드에 대한 PDPC 작동을 디세이블하는 단계를 포함한다.
본 개시의 제6 측면에 따르면, 인트라 예측 코딩 모드를 이용한 비디오 코딩 방법이 제공된다. 이 방법은, 인코더가, 융합 방식이 DIMD 모드에서 적용되는지를 판정하는 단계 - 융합 방식은 DIMD 모드에서 예측자의 가중 평균으로 적용됨 -; 인코더가, DIMD 모드에서 이용 가능한 지향성 모드에 오프셋을 적용하여 오프셋 지향성 모드를 획득하는 단계; 및 인코더가, 융합 방식이 DIMD 모드에서 적용되는지에 기반하여 오프셋 지향성 모드를 MPM(Most Probable Mode)의 리스트에 추가할지를 판정하는 단계를 포함한다.
위의 일반적인 설명과 아래의 상세한 설명은 예시적이고 설명적일 뿐이며 본 개시를 제한하려는 의도가 없다는 것이 이해되어야 한다.
본 명세서에 통합되고 본 명세서의 일부를 구성하는 첨부 도면은 본 개시와 일치하는 예를 예시하고, 설명과 함께 본 개시의 원리를 설명하는 역할을 한다.
도 1은 본 개시의 일부 구현에 따라 비디오 블록을 인코딩 및 디코딩하기 위한 예시적인 시스템을 예시하는 블록도이다.
도 2는 본 개시의 일부 구현에 따른 예시적인 비디오 인코더를 예시하는 블록도이다.
도 3은 본 개시의 일부 구현에 따른 예시적인 비디오 디코더를 예시하는 블록도이다.
도 4a 내지 도 4e는 본 개시의 일부 구현에 따라 프레임이 서로 다른 크기 및 형상의 다수의 비디오 블록으로 재귀적으로 파티셔닝되는 방법을 예시하는 블록도이다.
도 5a는 본 개시의 일부 구현에 따라 예측 모드에 적용되는 PDPC에 의해 사용되는 샘플의 정의를 예시한다.
도 5b는 본 개시의 일부 구현에 따라 예측 모드에 적용되는 PDPC에 의해 사용되는 샘플의 정의를 예시한다.
도 5c는 본 개시의 일부 구현에 따라 예측 모드에 적용되는 PDPC에 의해 사용되는 샘플의 정의를 예시한다.
도 5d는 본 개시의 일부 구현에 따라 예측 모드에 적용되는 PDPC에 의해 사용되는 샘플의 정의를 예시한다.
도 6은 본 개시의 일부 구현에 따른 허용된 GPM 파티션의 예를 예시한다.
도 7은 본 개시의 일부 구현에 따라 그레이디언트 분석이 수행되는 선택된 픽셀의 예를 예시한다.
도 8은 본 개시의 일부 구현에 따른 콘볼루션 프로세스를 예시한다.
도 9는 본 개시의 일부 구현에 따른 2개의 HoG 모드와 1개의 평면 모드의 가중 평균화에 의한 예측 융합을 예시한다.
도 10은 본 개시의 일부 구현에 따라 TIMD에서 사용되는 템플릿 및 그 참조 샘플을 예시한다.
도 11a는 본 개시의 일부 구현에 따른 TIMD를 이용한 비디오 디코딩 프로세스를 도시하는 블록도이다.
도 11b는 본 개시의 일부 구현에 따른 TIMD를 이용한 비디오 디코딩 프로세스를 도시하는 블록도이다.
도 11c는 본 개시의 일부 구현에 따른 TIMD를 이용한 비디오 디코딩 프로세스를 도시하는 블록도이다.
도 11d는 본 개시의 일부 구현에 따른 TIMD를 이용한 비디오 디코딩 프로세스를 도시하는 블록도이다.
도 11e는 본 개시의 일부 구현에 따른 TIMD를 이용한 비디오 코딩 프로세스를 도시하는 블록도이다.
도 11f는 본 개시의 일부 구현에 따른 TIMD를 이용한 비디오 코딩 프로세스를 도시하는 블록도이다.
도 12a는 본 개시의 일부 구현에 따른 DIMD를 이용한 비디오 디코딩 프로세스를 도시하는 블록도이다.
도 12b는 본 개시의 일부 구현에 따른 DIMD를 이용한 비디오 디코딩 프로세스를 도시하는 블록도이다.
도 12c는 본 개시의 일부 구현에 따른 DIMD를 이용한 비디오 디코딩 프로세스를 도시하는 블록도이다.
도 12d는 본 개시의 일부 구현에 따른 DIMD를 이용한 비디오 코딩 프로세스를 도시하는 블록도이다.
도 13은 본 개시의 일부 구현에 따라 제안된 정수화 방식에 사용되는 분수 비트를 예시한다.
도 14는 본 개시의 일부 구현에 따른 사용자 인터페이스와 결합된 컴퓨팅 환경을 예시하는 블록도이다.
도 15는 본 개시의 일부 구현에 따른 비디오 디코딩을 도시하는 블록도이다.
도 16은 본 개시의 일부 구현에 따른 비디오 디코딩을 도시하는 블록도이다.
도 17은 본 개시의 일부 구현에 따른 비디오 디코딩을 도시하는 블록도이다.
이제 예시적인 실시예를 상세히 참조할 것이며, 그 예는 첨부 도면에 도시되어 있다. 다음의 설명은 달리 표현되지 않는 한 서로 다른 도면에서의 동일한 번호가 동일하거나 유사한 엘리먼트를 나타내는 첨부 도면을 참조한다. 예시적인 실시예의 다음 설명에 설명된 구현은 본 개시와 일치하는 모든 구현을 나타내는 것은 아니다. 대신에, 이들은 첨부된 청구 범위에 인용된 바와 같은 개시와 관련된 측면과 일치하는 장치 및 방법의 예일뿐이다.
본 개시에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 본 개시 및 첨부된 청구범위에 사용된 바와 같이, 단수형 "a", "an" 및 "상기(the)"는 문맥상 명백히 달리 나타내지 않는 한 복수형도 포함하도록 의도된다. 또한, 본 명세서에 사용된 용어 "및/또는"은 관련된 나열된 항목 중 하나 이상의 임의의 또는 모든 가능한 조합을 의미하고 포함하도록 의도된 것으로 이해되어야 한다.
여기에서 "제1", "제2", "제3" 등의 용어가 다양한 정보를 설명하기 위해 사용될 수 있지만, 그 정보가 이러한 용어에 의해 제한되어서는 안 된다는 점을 이해해야 한다. 이러한 용어는 정보의 한 범주를 다른 범주와 구별하는 데에만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서, 제1 정보는 제2 정보로 명명될 수 있으며; 유사하게, 제2 정보는 제1 정보라고도 명명될 수 있다. 여기에서 사용된 용어 "~면"은 문맥에 따라 "~때", "~시(upon)" 또는 "판단에 응답하여"를 의미하는 것으로 이해될 수 있다.
비디오 데이터를 압축하기 위해 다양한 비디오 코딩 기술이 사용될 수 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준에 따라 수행된다. 예를 들어, 오늘날 잘 알려진 일부 비디오 코딩 표준은 VVC(Versatile Video Coding), HEVC(High Efficiency Video Coding)(H.265 또는 MPEG-H Part2라고도 함) 및 AVC(Advanced Video Coding)(H.264 또는 MPEG-4 Part 10이라고도 함)를 포함하며, 이들은 ISO/IEC MPEG 및 ITU-T VECG가 공동으로 개발한 것이다. AV1(AOMedia Video 1)은 AOM(Alliance for Open Media)에 의해 이전 표준 VP9의 후속 제품으로 개발되었다. 디지털 오디오 및 디지털 비디오 압축 표준을 지칭하는 AVS(Audio Video Coding)은 중국의 오디오 및 비디오 코딩 표준 작업 그룹에 의해 개발된 또 다른 비디오 압축 표준 시리즈이다. 기존 비디오 코딩 표준의 대부분은 유명한 하이브리드 비디오 코딩 프레임워크 즉, 비디오 이미지나 시퀀스에 존재하는 중복성을 줄이기 위해 블록 기반 예측 방법(예: 인터 예측, 인트라 예측)을 사용하고 예측 에러(error)의 에너지를 압축하기 위해 변환 코딩을 사용하여 구축된다. 비디오 코딩 기술의 중요한 목표는 비디오 품질 저하를 피하거나 최소화하면서 더 낮은 비트 레이트를 사용하는 형태로 비디오 데이터를 압축하는 것이다.
1세대 AVS 표준에는 중국 국가 표준 "정보 기술, 고급 오디오 비디오 코딩, 파트 2: 비디오"(AVS1로 알려짐) 및 "정보 기술, 고급 오디오 비디오 코딩 파트 16: 라디오 텔레비전 비디오"(AVS+로 알려짐)가 포함된다. MPEG-2 표준과 비교하여 동일한 인식 품질에서 약 50%의 비트 레이트 절감 효과를 제공할 수 있다. AVS1 표준 비디오 파트는 2006년 2월에 중국 국가 표준으로 공포되었다. 2세대 AVS 표준에는, 주로 엑스트라 HD TV 프로그램의 전송을 목표로 하는 중국 국가 표준 "정보 기술, 효율적인 멀티미디어 코딩"(AVS2로 알려짐) 시리즈가 포함된다. AVS2의 코딩 효율성은 AVS+의 효율성의 두 배이다. 2016년 5월에, AVS2가 중국 국가 표준으로 발행되었다. 한편, AVS2 표준 비디오 파트는 국제 전기 전자 공학회(Institute of Electrical and Electronics Engineer, IEEE)에 의해, 애플리케이션에 대한 하나의 국제 표준으로 제출되었다. AVS3 표준은 최신 국제 표준 HEVC의 코딩 효율성을 능가하는 것을 목표로 하는 UHD 비디오 애플리케이션을 위한 하나의 차세대 비디오 코딩 표준이다. 2019년 3월에, 제68차 AVS 회의에서 AVS3-P2 기준선(baseline)이 완성되어, HEVC 표준에 비해 비트 레이트가 약 30% 절감된다. 현재, AVS3 표준의 참조 구현을 보여주기 위해 AVS 그룹에 의해 유지 관리되는 HPM(high performance model)이라는 하나의 참조 소프트웨어가 있다.
도 1은 본 개시의 일부 구현에 따라 비디오 블록을 병렬로 인코딩 및 디코딩하기 위한 예시적인 시스템(10)을 예시하는(illustrating) 블록도이다. 도 1에 도시된 바와 같이, 시스템(10)은 목적지(destination) 디바이스(14)에 의해 나중에 디코딩될 비디오 데이터를 생성하고 인코딩하는 소스(source) 디바이스(12)를 포함한다. 소스 디바이스(12) 및 목적지 디바이스(14)는 데스크톱 또는 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 셋톱 박스, 디지털 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스 등을 포함하는 다양한 전자 디바이스 중 임의의 것을 포함할 수 있다. 일부 구현에서, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신 능력을 갖추고 있다.
일부 구현에서, 목적지 디바이스(14)는 링크(16)를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수 있다. 링크(16)는 인코딩된 비디오 데이터를 소스 디바이스(12)로부터 목적지 디바이스(14)로 이동시킬 수 있는 임의의 유형의 통신 매체 또는 디바이스를 포함할 수 있다. 일 예에서, 링크(16)는 소스 디바이스(12)가 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스(14)에 직접 전송할 수 있게 하는 통신 매체를 포함할 수 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되어 목적지 디바이스(14)로 전송될 수 있다. 통신 매체는 무선 주파수(Radio Frequency, RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수 있다. 통신 매체는 근거리 통신망, 광역 통신망, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 라우터, 스위치, 기지국, 또는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 용이하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다.
일부 다른 구현에서, 인코딩된 비디오 데이터는 출력 인터페이스(22)로부터 저장 디바이스(32)로 전송될 수 있다. 이어서, 저장 디바이스(32)에 있는 인코딩된 비디오 데이터는 입력 인터페이스(28)를 통해 목적지 디바이스(14)에 의해 액세스될 수 있다. 저장 디바이스(32)는 하드 드라이브, 블루레이 디스크, DVD(Digital Versatile Disk), CD-ROM(Compact Disc Read-Only Memory), 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 기타 적합한 디지털 저장 매체와 같은, 다양한 분산된 또는 로컬 액세스되는 데이터 저장 매체 중 임의의 것을 포함할 수 있다. 추가 예에서, 저장 디바이스(32)는 소스 디바이스(12)에 의해 생성된 인코딩된 비디오 데이터를 보유할 수 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수 있다. 목적지 디바이스(14)는 스트리밍 또는 다운로딩을 통해 저장 디바이스(32)로부터의 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 디바이스(14)로 전송할 수 있는 임의의 유형의 컴퓨터일 수 있다. 예시적인 파일 서버에는 웹 서버(예: 웹 사이트용), FTP(File Transfer Protocol) 서버, NAS(Network Attached Storage) 디바이스 또는 로컬 디스크 드라이브가 포함된다. 목적지 디바이스(14)는 무선 채널(예를 들어, Wi-Fi(Wireless Fidelity) 연결), 유선 연결(예: DSL(Digital Subscriber Line), 케이블 모뎀 등) 또는 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 적합한 이 둘의 조합을 포함하는, 임의의 표준 데이터 연결을 통해 인코딩된 비디오 데이터를 액세스할 수 있다. 저장 디바이스(32)로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송, 또는 이 둘의 조합일 수 있다.
도 1에 도시된 바와 같이, 소스 디바이스(12)는 비디오 소스(18), 비디오 인코더(20) 및 출력 인터페이스(22)를 포함한다. 비디오 소스(18)는 예를 들어 비디오 카메라, 이전에 캡처한 비디오를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스, 및/또는 컴퓨터 그래픽 데이터를 소스 비디오로 생성하는 컴퓨터 그래픽 시스템과 같은 소스 또는 이러한 소스의 조합을 포함할 수 있다. 일 예에서, 비디오 소스(18)가 보안 감시 시스템의 비디오 카메라이면, 소스 디바이스(12)와 목적지 디바이스(14)는 카메라 폰 또는 비디오 폰을 형성할 수 있다. 그러나, 본 출원에서 설명된 구현은 일반적인 비디오 코딩에 적용될 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다.
캡처된, 사전 캡처된 또는 컴퓨터 생성된 비디오는 비디오 인코더(20)에 의해 인코딩될 수 있다. 인코딩된 비디오 데이터는 소스 디바이스(12)의 출력 인터페이스(22)를 통해 목적지 디바이스(14)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 또한(또는 다르게는) 디코딩 및/또는 재생을 위해 목적지 디바이스(14) 또는 다른 디바이스에 의한 나중의 액세스를 위해 저장 디바이스(32)에 저장될 수 있다. 출력 인터페이스(22)는 모뎀 및/또는 송신기를 더 포함할 수 있다.
목적지 디바이스(14)는 입력 인터페이스(28), 비디오 디코더(30), 및 디스플레이 디바이스(34)를 포함한다. 입력 인터페이스(28)는 수신기 및/또는 모뎀을 포함할 수 있고, 링크(16)를 통해 인코딩된 비디오 데이터를 수신할 수 있다. 링크(16)를 통해 통신되거나 저장 디바이스(32)에 제공되는 인코딩된 비디오 데이터는, 비디오 데이터를 디코딩하는 데 있어서 비디오 디코더(30)에 의한 사용을 위해 비디오 인코더(20)에 의해 생성된 다양한 신택스(syntax) 엘리먼트를 포함할 수 있다. 이러한 신택스 엘리먼트는 통신 매체를 통해 전송되거나, 저장 매체에 저장되거나, 파일 서버에 저장되는, 인코딩된 비디오 데이터 내에 포함될 수 있다.
일부 구현에서, 목적지 디바이스(14)는 통합 디스플레이 디바이스일 수 있는 디스플레이 디바이스(34) 및 목적지 디바이스(14)와 통신하도록 구성되는 외부 디스플레이 디바이스를 포함할 수 있다. 디스플레이 디바이스(34)는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, LCD(Liquid Crystal Display), 플라즈마 디스플레이, OLED(Organic Light Emitting Diode) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스 중 임의의 것을 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 VVC, HEVC, MPEG-4, Part 10, AVC, 또는 그러한 표준의 확장과 같은 독점적 또는 산업 표준에 따라 작동할 수 있다. 본 출원은 특정 비디오 인코딩/디코딩 표준에 제한되지 않고 다른 비디오 인코딩/디코딩 표준에도 적용될 수 있다는 것을 이해해야 한다. 일반적으로 소스 디바이스(12)의 비디오 인코더(20)는 이들 현재 또는 미래의 표준 중 임의의 것에 따라 비디오 데이터를 인코딩하도록 구성될 수 있다는 것이 고려된다. 유사하게, 목적지 디바이스(14)의 비디오 디코더(30)는 이들 현재 또는 미래의 표준 중 임의의 것에 따라 비디오 데이터를 디코딩하도록 구성될 수 있다는 것이 또한 일반적으로 고려된다.
비디오 인코더(20) 및 비디오 디코더(30) 각각은, 하나 이상의 마이크로프로세서, DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합과 같은 다양한 적합한 인코더 및/또는 디코더 회로 중 임의의 것으로 구현될 수 있다. 부분적으로 소프트웨어로 구현될 때, 전자 디바이스는 소프트웨어에 대한 명령어를 적합한 컴퓨터가 판독 가능한 비일시적 매체에 저장하고, 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어를 실행하여 본 개시에 개시된 비디오 인코딩/디코딩 작동을 수행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수도 있고, 이들 중 어느 하나는 개개의 디바이스에서 조합된 인코더/디코더(CODEC)의 일부로서 통합될 수도 있다.
도 2는 본 출원에 설명된 일부 구현에 따른 예시적인 비디오 인코더(20)를 예시하는 블록도이다. 비디오 인코더(20)는 비디오 프레임 내의 비디오 블록의 인트라 및 인터 예측 코딩을 수행할 수 있다. 인트라 예측 코딩은 주어진 비디오 프레임이나 픽처 내에서 비디오 데이터의 공간 중복성을 줄이거나 제거하기 위해 공간 예측에 의존한다. 인터 예측 코딩은 비디오 시퀀스의 인접한 비디오 프레임이나 픽처 내 비디오 데이터의 시간적 중복성을 줄이거나 제거하기 위해 시간적 예측에 의존한다. "프레임"이라는 용어는 비디오 코딩 분야에서 "이미지" 또는 "픽처"라는 용어와 동의어로 사용될 수 있다는 점에 유의해야 한다.
도 2에 도시된 바와 같이, 비디오 인코더(20)는 비디오 데이터 메모리(40), 예측 처리 유닛(41), 디코딩된 픽처 버퍼(Decoded Picture Buffer, DPB)(64), 합산기(50), 변환 처리 유닛(52), 양자화 유닛(54) 및 엔트로피 인코딩 유닛(56)을 포함한다. 예측 처리 유닛(41)은 모션(motion) 추정 유닛(42), 모션 보상 유닛(44), 파티션 유닛(45), 인트라 예측 처리 유닛(46) 및 인트라 블록 복사(Block Copy, BC) 유닛(48)을 더 포함한다. 일부 구현에서, 비디오 인코더(20)는 또한 역 양자화 유닛(58), 역 변환 처리 유닛(60), 및 비디오 블록 재구성을 위한 합산기(62)를 포함한다. 디블로킹 필터와 같은 인루프(in-loop) 필터(63)는 합산기(62)와 DPB(64) 사이에 배치되어 블록 경계를 필터링하여 재구성된 비디오로부터 블록성 아티팩트(blockiness artifact)를 제거할 수 있다. 샘플 적응적 오프셋(Sample Adaptive Offset, SAO) 필터 및/또는 적응적 인루프 필터(Adaptive in-Loop Filter, ALF)와 같은 또 다른 인루프 필터가 또한 디블로킹 필터 이외에 추가로 사용되어 합산기(62)의 출력을 필터링할 수 있다. 일부 예에서, 인루프 필터는 생략될 수 있고, 디코딩된 비디오 블록은 합산기(62)에 의해 DPB(64)에 직접 제공될 수 있다. 비디오 인코더(20)는 고정된 또는 프로그래밍 가능한 하드웨어 유닛의 형태를 취할 수도 있고, 예시된 고정된 또는 프로그래밍 가능한 하드웨어 유닛 중 하나 이상으로 나뉠 수 있다.
비디오 데이터 메모리(40)는 비디오 인코더(20)의 컴포넌트에 의해 인코딩될 비디오 데이터를 저장할 수 있다. 비디오 데이터 메모리(40)의 비디오 데이터는 예를 들어 도 1에 도시된 바와 같이 비디오 소스(18)로부터 획득될 수 있다. DPB(64)는 (예: 인트라 또는 인터 예측 코딩 모드에서) 비디오 인코더(20)에 의해 비디오 데이터를 인코딩하는 데 사용하기 위한 참조 비디오 데이터(예를 들어, 참조 프레임 또는 픽처)를 저장하는 버퍼이다. 비디오 데이터 메모리(40) 및 DPB(64)는 다양한 메모리 디바이스 중 임의의 것에 의해 형성될 수 있다. 다양한 예에서, 비디오 데이터 메모리(40)는 비디오 인코더(20)의 다른 컴포넌트들과 함께 온칩(on-chip)일 수도 있고, 그러한 컴포넌트들에 비해 오프칩(off-chip)일 수도 있다.
도 2에 도시된 바와 같이, 비디오 데이터를 수신한 후, 예측 처리 유닛(41) 내의 파티션 유닛(45)은 비디오 데이터를 비디오 블록으로 파티셔닝한다. 이러한 파티셔닝은 또한 비디오 데이터와 연관된 QT(Quad-Tree) 구조와 같은 미리 정의된 분할(splitting) 구조에 따라 비디오 프레임을 슬라이스, 타일(예: 비디오 블록 세트) 또는 기타 더 큰 코딩 유닛(Coding Unit, CU)으로 파티셔닝하는 것을 포함할 수 있다. 비디오 프레임은 샘플 값을 갖는 샘플의 2차원 어레이 또는 행렬이거나 그렇게 간주될 수 있다. 어레이의 샘플은 픽셀 또는 펠(pel)이라고도 할 수 있다. 어레이나 픽처의 수평 및 수직 방향(또는 축)의 샘플 수는 비디오 프레임의 크기 및/또는 해상도를 정의한다. 비디오 프레임은 예를 들어 QT 파티셔닝을 사용하여 다수의 비디오 블록으로 나뉠 수 있다. 비디오 블록은 비디오 프레임보다 차원이 작지만, 샘플 값을 갖는 샘플의 2차원 어레이 또는 행렬로 간주될 수도 있다. 비디오 블록의 수평 및 수직 방향(또는 축)의 샘플 수는 비디오 블록의 크기를 정의한다. 비디오 블록은 또한 예를 들어 QT 파티셔닝, BT(Binary-Tree) 파티셔닝 또는 TT(Triple-Tree) 파티셔닝 또는 이들의 조합을 반복적으로 사용하는 것에 의해, 하나 이상의 블록 파티션 또는 서브블록(이는 다시 블록을 형성할 수 있음)으로 파티셔닝될 수 있다. 여기에서 사용된 용어 "블록" 또는 "비디오 블록"은 프레임 또는 픽처의 부분, 특히 직사각형(정사각형 또는 비정사각형) 부분일 수 있다는 점에 유의해야 한다. 예를 들어, HEVC 및 VVC를 참조하면, 블록 또는 비디오 블록은 코딩 트리 유닛(Coding Tree Unit, CTU), CU, 예측 유닛(Prediction Unit, PU) 또는 변환 유닛(Transform Unit, TU)이거나 이에 대응할 수 있거나, 및/또는 대응하는 블록 예를 들어, 코딩 트리 블록(Coding Tree Block, CTB), 코딩 블록(Coding Block, CB), 예측 블록(Prediction Block, PB) 또는 변환 블록(Transform Block, TB) 및/또는 서브블록에 대응할 수 있다.
예측 처리 유닛(41)은 에러 결과(예: 코딩 레이트 및 왜곡의 레벨)에 기반하여 현재 비디오 블록에 대해 복수의 인트라 예측 코딩 모드 중 하나 또는 복수의 인터 예측 코딩 모드 중 하나와 같은 복수의 가능한 예측 코딩 모드 중 하나를 선택할 수 있다. 예측 처리 유닛(41)은 결과적인 인트라 또는 인터 예측 코딩된 블록을, 잔차 블록을 생성하기 위해 합산기(50)에 제공하고, 이후 참조 프레임의 일부로서 사용하기 위한 인코딩된 블록을 재구성하기 위해 합산기(62)에 제공할 수 있다. 예측 처리 유닛(41)은 또한 모션 벡터, 인트라 모드 지시자(indicator), 파티션 정보 및 기타 이러한 신택스 정보와 같은 신택스 엘리먼트를 엔트로피 인코딩 유닛(56)에 제공한다.
현재 비디오 블록에 대한 적절한 인트라 예측 코딩 모드를 선택하기 위해, 예측 처리 유닛(41) 내의 인트라 예측 처리 유닛(46)은 공간적 예측을 제공하기 위해 코딩될 현재 블록과 동일한 프레임에 있는 하나 이상의 이웃 블록을 기준으로 현재 비디오 블록의 인트라 예측 코딩을 수행할 수 있다. 예측 처리 유닛(41) 내의 모션 추정 유닛(42) 및 모션 보상 유닛(44)은 시간적 예측을 제공하기 위해 하나 이상의 참조 프레임에서의 하나 이상의 예측 블록을 기준으로 현재 비디오 블록의 인터 예측 코딩을 수행한다. 비디오 인코더(20)는 예를 들어, 비디오 데이터의 각각의 블록에 대해 적절한 코딩 모드를 선택하기 위해 다수의 코딩 패스를 수행할 수도 있다.
일부 구현에서, 모션 추정 유닛(42)은 비디오 프레임의 시퀀스 내에서 미리 결정된 패턴에 따라, 참조 비디오 프레임 내의 예측 블록을 기준으로 현재 비디오 프레임 내의 비디오 블록의 변위를 지시하는 모션 벡터를 생성하는 것에 의해, 현재 비디오 프레임에 대한 인터 예측 모드를 결정한다. 모션 추정 유닛(42)에 의해 수행되는 모션 추정은 비디오 블록에 대한 모션을 추정하는 모션 벡터를 생성하는 프로세스이다. 예를 들어, 모션 벡터는 현재 프레임 내에서 코딩되고 있는 현재 블록에 관하여 참조 프레임 내의 예측 블록을 기준으로 현재 비디오 프레임 또는 픽처 내의 비디오 블록의 변위를 지시할 수 있다. 미리 결정된 패턴은 시퀀스의 비디오 프레임을 P 프레임 또는 B 프레임으로 지정할 수 있다. 인트라 BC 유닛(48)은 인터 예측을 위한 모션 추정 유닛(42)에 의한 모션 벡터의 결정과 유사한 방식으로 인트라 BC 코딩을 위한 벡터, 예를 들어 블록 벡터를 결정할 수 있거나, 모션 추정 유닛(42)을 활용하여 블록 벡터를 결정할 수 있다.
비디오 블록에 대한 예측 블록은 SAD(Sum of Absolute Difference), SSD(Sum of Square Difference) 또는 기타 차이 메트릭(metric)에 의해 결정될 수 있는, 픽셀 차이 측면에서의 코딩될 비디오 블록과 밀접하게 매칭되는 것으로 간주되는 참조 프레임의 블록 또는 참조 블록이거나 이에 대응할 수 있다. 일부 구현에서, 비디오 인코더(20)는 DPB(64)에 저장된 참조 프레임의 서브 정수(sub-integer) 픽셀 위치(pixel position)에 대한 값을 계산할 수 있다. 예를 들어, 비디오 인코더(20)는 참조 프레임의 1/4 픽셀 위치, 1/8 픽셀 위치, 또는 다른 분수 픽셀 위치의 값을 보간할 수도 있다. 그러므로, 모션 추정 유닛(42)은 전체 픽셀 위치 및 분수 픽셀 위치를 기준으로 모션 검색을 수행하고 분수 픽셀 정밀도를 갖는 모션 벡터를 출력할 수 있다.
모션 추정 유닛(42)은 각각 DPB(64)에 저장된 하나 이상의 참조 프레임을 식별하는 제1 참조 프레임 리스트(리스트 0) 또는 제2 참조 프레임 리스트(리스트 1)로부터 선택된 참조 프레임의 예측 블록의 위치와 비디오 블록의 위치를 비교하여 인터 예측 코딩된 프레임에서의 비디오 블록에 대한 모션 벡터를 계산한다. 모션 추정 유닛(42)은 계산된 모션 벡터를 모션 보상 유닛(44)으로 송신한 다음 엔트로피 인코딩 유닛(56)으로 송신한다.
모션 보상 유닛(44)에 의해 수행되는 모션 보상은 모션 추정 유닛(42)에 의해 결정된 모션 벡터에 기반하여 예측 블록을 페치(fetch)하거나 생성하는 것을 수반(involve)할 수 있다. 현재 비디오 블록에 대한 모션 벡터를 수신하면, 모션 보상 유닛(44)은 참조 프레임 리스트 중 하나에서 모션 벡터가 가리키는 예측 블록의 위치를 찾고, DPB(64)로부터 예측 블록을 검색하며, 예측 블록을 합산기(50)로 전달할 수 있다. 합산기(50)는 코딩되고 있는 현재 비디오 블록의 픽셀 값에서 모션 보상 유닛(44)에 의해 제공되는 예측 블록의 픽셀 값을 감산함으로써 픽셀 차이 값의 잔차 비디오 블록을 형성한다. 잔차 비디오 블록을 형성하는 픽셀 차이 값은 루마 차이 컴포넌트 또는 크로마 차이 컴포넌트 또는 둘 다를 포함할 수 있다. 모션 보상 유닛(44)은 또한 비디오 프레임의 비디오 블록을 디코딩하는 데 있어서 비디오 디코더(30)에 의해 사용하기 위해 비디오 프레임의 비디오 블록과 연관된 신택스 엘리먼트를 생성할 수도 있다. 신택스 엘리먼트는 예를 들어 예측 블록을 식별하는 데 사용되는 모션 벡터를 정의하는 신택스 엘리먼트, 예측 모드를 지시하는 임의의 플래그, 또는 여기서 설명된 임의의 기타 신택스 정보를 포함할 수 있다. 모션 추정 유닛(42)과 모션 보상 유닛(44)은 고도로 통합될 수 있지만 개념적 목적을 위해 별도로 예시된다는 점에 유의한다.
일부 구현에서, 인트라 BC 유닛(48)은 모션 추정 유닛(42) 및 모션 보상 유닛(44)과 관련하여 위에서 설명된 것과 유사한 방식으로 벡터를 생성하고 예측 블록을 페치할 수 있지만, 예측 블록은 코딩되고 있는 현재 블록과 동일한 프레임에 있으며, 벡터는 모션 벡터와 반대로 블록 벡터로서 참조된다. 특히, 인트라 BC 유닛(48)은 현재 블록을 인코딩하는 데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예에서, 인트라 BC 유닛(48)은 예를 들어 별도의 인코딩 패스 동안 다양한 인트라 예측 모드를 사용하여 현재 블록을 인코딩하고, 레이트-왜곡 분석을 통해 그 성능을 테스트할 수 있다. 다음으로, 인트라 BC 유닛(48)은 테스트된 다양한 인트라 예측 모드 중에서 사용하기 위한 적절한 인트라 예측 모드를 선택하고 그에 따라 인트라 모드 지시자를 생성할 수 있다. 예를 들어, 인트라 BC 유닛(48)은 테스트된 다양한 인트라 예측 모드에 대해 레이트-왜곡 분석을 사용하여 레이트-왜곡 값을 계산하고, 테스트된 모드들 중 레이트-왜곡 특성이 가장 좋은 인트라 예측 모드를 사용할 인트라 예측 모드로서 선택한다. 레이트-왜곡 분석은 일반적으로 인코딩된 블록과 인코딩된 블록을 생성하기 위해 인코딩된 원래의 인코딩되지 않은 블록 사이의 왜곡(또는 에러)의 양뿐만 아니라 인코딩된 블록을 생성하는 데 사용된 비트레이트(즉, 비트 수)을 결정한다. 인트라 BC 유닛(48)은 어느 인트라 예측 모드가 블록에 대해 최상의 레이트 왜곡 값을 나타내는지를 결정하기 위해, 다양한 인코딩된 블록에 대한 왜곡 및 레이트로부터 비율을 계산할 수 있다.
다른 예에서, 인트라 BC 유닛(48)은 여기에서 설명된 구현에 따라 인트라 BC 예측을 위한 이러한 기능을 수행하기 위해 모션 추정 유닛(42) 및 모션 보상 유닛(44)을 전체적으로 또는 부분적으로 사용할 수 있다. 두 경우 모두, 인트라 블록 복사의 경우, 예측 블록은 SAD, SSD 또는 기타 차이 메트릭에 의해 결정될 수 있는 픽셀 차이 측면에서의 코딩될 블록과 밀접하게 매칭되는 것으로 간주되는 블록일 수 있으며, 예측 블록의 식별은 서브 정수 픽셀 위치에 대한 값의 계산을 포함할 수 있다.
예측 블록이 인트라 예측에 따라 동일한 프레임으로부터의 것이든 또는 인터 예측에 따라 상이한 프레임으로부터의 것이든, 비디오 인코더(20)는 코딩되는 현재 비디오 블록의 픽셀 값에서 예측 블록의 픽셀 값을 감산하여 픽셀 차이 값을 형성하는 것에 의해 잔차 비디오 블록을 형성할 수 있다. 잔차 비디오 블록을 형성하는 픽셀 차이 값은 루마 컴포넌트 차이 및 크로마 컴포넌트 차이를 모두 포함할 수 있다.
인트라 예측 처리 유닛(46)은 위에서 설명한 바와 같이, 모션 추정 유닛(42)와 모션 보상 유닛(44)에 의해 수행되는 인터 예측이나 인트라 BC 유닛(48)에 의해 수행되는 인트라 블록 복사 예측에 대한 대안으로, 현재 비디오 블록을 인트라 예측할 수 있다. 특히, 인트라 예측 처리 유닛(46)은 현재 블록을 인코딩하는 데 사용할 인트라 예측 모드를 결정할 수 있다. 그렇게 하기 위해, 인트라 예측 처리 유닛(46)은 예를 들어 별도의 인코딩 패스 동안 다양한 인트라 예측 모드를 사용하여 현재 블록을 인코딩할 수 있으며, 인트라 예측 처리 유닛(46)(또는 일부 예에서 모드 선택 유닛)은 테스트된 인트라 예측 모드 중에서 사용할 적절한 인트라 예측 모드를 선택할 수 있다. 인트라 예측 처리 유닛(46)은 블록에 대해 선택된 인트라 예측 모드를 지시하는 정보를 엔트로피 인코딩 유닛(56)에 제공할 수 있다. 엔트로피 인코딩 유닛(56)은 선택된 인트라 예측 모드를 지시하는 정보를 비트스트림에서 인코딩할 수 있다.
예측 처리 유닛(41)이 인터 예측 또는 인트라 예측을 통해 현재 픽처 블록에 대한 예측 블록을 결정한 후, 합산기(50)는 현재 픽처 블록에서 예측 블록을 감산하여 잔차 픽처 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU에 포함될 수 있고 변환 처리 유닛(52)에 제공된다. 변환 처리 유닛(52)은 DCT(Discrete Cosine Transform) 또는 개념적으로 유사한 변환과 같은 변환을 사용하여 잔차 비디오 데이터를 잔차 변환 계수로 변환한다.
변환 처리 유닛(52)은 결과적인 변환 계수를 양자화 유닛(54)에 송신할 수 있다. 양자화 유닛(54)은 변환 계수를 양자화하여 비트 레이트를 더욱 감소시킨다. 양자화 프로세스는 또한 계수의 일부 또는 전부와 연관된 비트 심도(bit depth)를 감소시킬 수도 있다. 양자화 파라미터를 조정하는 것에 양자화 정도(degree of quantization)를 수정할 수 있다. 일부 예에서, 양자화 유닛(54)은 양자화된 변환 계수를 포함하는 행렬의 스캔을 수행할 수 있다. 다르게는, 엔트로피 인코딩 유닛(56)이 스캔을 수행할 수도 있다.
양자화 후에, 엔트로피 인코딩 유닛(56) 엔트로피는 예를 들어 CAVLC(Context Adaptive Variable Length Coding), CABAC(Context Adaptive Binary Arithmetic Coding), SBAC(Syntax-based context-adaptive Binary Arithmetic Coding), PIPE(Probability Interval Partitioning Entropy) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기술을 사용하여 양자화된 변환 계수를 비디오 비트스트림으로 인코딩한다. 인코딩된 비트스트림은 그런 다음 도 1에 도시된 바와 같이 비디오 디코더(30)로 전송되거나, 비디오 디코더(30)로의 추후 전송 또는 검색을 위해 도 1에 도시된 바와 같이 저장 디바이스(32)에 보관될 수 있다. 엔트로피 인코딩 유닛(56)은 또한 코딩되고 있는 현재 비디오 프레임에 대한 모션 벡터 및 다른 신택스 엘리먼트를 엔트로피 인코딩할 수 있다.
역 양자화 유닛(58)과 역 변환 처리 유닛(60)은 다른 비디오 블록의 예측을 위한 참조 블록을 생성하기 위해 픽셀 도메인에서 잔차 비디오 블록을 재구성하기 위해 각각 역 양자화 및 역 변환을 적용한다. 전술한 바와 같이, 모션 보상 유닛(44)은 DPB(64)에 저장된 프레임의 하나 이상의 참조 블록으로부터 모션 보상된 예측 블록을 생성할 수 있다. 모션 보상 유닛(44)은 또한 하나 이상의 보간 필터를 예측 블록에 적용하여 모션 추정에 사용하기 위한 서브 정수 픽셀 값을 계산할 수 있다.
합산기(62)는 재구성된 잔차 블록을 모션 보상 유닛(44)에 의해 생성된 모션 보상된 예측 블록에 추가하여 DPB(64)에 저장하기 위한 참조 블록을 생성한다. 참조 블록은 그 다음 인트라 BC 유닛(48), 모션 추정 유닛(42) 및 모션 보상 유닛(44)에 의해, 후속 비디오 프레임에서 또 다른 비디오 블록을 인터 예측하기 위한 예측 블록으로서 사용될 수 있다.
도 3은 본 출원의 일부 구현에 따른 예시적인 비디오 디코더(30)를 예시하는 블록도이다. 비디오 디코더(30)는 비디오 데이터 메모리(79), 엔트로피 디코딩 유닛(80), 예측 처리 유닛(81), 역 양자화 유닛(86), 역 변환 처리 유닛(88), 합산기(90) 및 DPB(92)를 포함한다. 예측 처리 유닛(81)은 모션 보상 유닛(82), 인트라 예측 유닛(84) 및 인트라 BC 유닛(85)을 더 포함한다. 비디오 디코더(30)는 도 2 와 관련하여 비디오 인코더(20)에 대해 위에서 설명된 인코딩 프로세스와 일반적으로 상반되는 디코딩 프로세스를 수행할 수도 있다. 예를 들어, 모션 보상 유닛(82)은 엔트로피 디코딩 유닛(80)으로부터 수신된 모션 벡터에 기반하여 예측 데이터를 생성할 수 있고, 인트라 예측 유닛(84)은 엔트로피 디코딩 유닛(80)으로부터 수신된 인트라 예측 모드 지시자에 기반하여 예측 데이터를 생성할 수 있다.
일부 예에서, 비디오 디코더(30)의 유닛은 본 출원의 구현을 수행하도록 임무를 받을 수 있다. 또한, 일부 예에서, 본 개시의 구현은 비디오 디코더(30)의 유닛들 중 하나 이상으로 나뉠 수 있다. 예를 들어, 인트라 BC 유닛(85)은 단독으로, 또는 모션 보상 유닛(82), 인트라 예측 유닛(84) 및 엔트로피 디코딩 유닛(80)과 같은 비디오 디코더(30)의 다른 유닛들과 조합하여 본 출원의 구현을 수행할 수 있다. 일부 예에서, 비디오 디코더(30)는 인트라 BC 유닛(85)을 포함하지 않을 수 있으며, 인트라 BC 유닛(85)의 기능은 모션 보상 유닛(82)과 같은 예측 처리 유닛(81)의 다른 컴포넌트에 의해 수행될 수 있다.
비디오 데이터 메모리(79)는 비디오 디코더(30)의 다른 컴포넌트에 의해 디코딩될, 인코딩된 비디오 비트스트림과 같은 비디오 데이터를 저장할 수 있다. 비디오 데이터 메모리(79)에 저장된 비디오 데이터는 예를 들어 저장 디바이스(32)로부터, 또는 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해 카메라와 같은 로컬 비디오 소스로부터, 또는 물리적 데이터 저장 미디어(예: 플래시 드라이브 또는 하드 디스크)에 액세스하는 것에 의해 획득될 수 있다. 비디오 데이터 메모리(79)는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼(Coded Picture Buffer, CPB)를 포함할 수 있다. 비디오 디코더(30)의 DPB(92)는 (예: 인트라 또는 인터 예측 코딩 모드에서) 비디오 디코더(30)에 의해 비디오 데이터를 디코딩하는데 사용하기 위한 참조 비디오 데이터를 저장한다. 비디오 데이터 메모리(79) 및 DPB(92)는 SDRAM(Synchronous dynamic random access memory), MRAM(Magneto-resistive RAM), RRAM(Resistive RAM) 또는 기타 유형의 메모리 디바이스를 포함하는, DRAM(dynamic random access memory)과 같은 다양한 메모리 디바이스 중 임의의 것에 의해 형성될 수 있다. 설명을 위해, 비디오 데이터 메모리(79) 및 DPB(92)는 도 3에서 비디오 디코더(30)의 2개의 별개의 컴포넌트로서 도시된다. 그러나 비디오 데이터 메모리(79)와 DPB(92)가 동일한 메모리 디바이스 또는 별개의 메모리 디바이스에 의해 제공될 수 있다는 것은 당업자에게 명백할 것이다. 일부 예에서, 비디오 데이터 메모리(79)는 비디오 디코더(30)의 다른 컴포넌트와 함께 온칩일 수도 있고, 이들 컴포넌트에 대해 오프칩일 수도 있다.
디코딩 프로세스 동안, 비디오 디코더(30)는 인코딩된 비디오 프레임의 비디오 블록 및 연관된 신택스 엘리먼트를 나타내는 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더(30)는 비디오 프레임 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트를 수신할 수 있다. 비디오 디코더(30)의 엔트로피 디코딩 유닛(80)은 비트스트림을 엔트로피 디코딩하여 양자화된 계수, 모션 벡터 또는 인트라 예측 모드 지시자 및 기타 신택스 엘리먼트를 생성한다. 그런 다음, 엔트로피 디코딩 유닛(80)은 모션 벡터 또는 인트라 예측 모드 지시자 및 기타 신택스 엘리먼트를 예측 처리 유닛(81)에 전달한다.
비디오 프레임이 인트라 예측 코딩된(I) 프레임으로 코딩되거나, 다른 유형의 프레임에서의 인트라 코딩된 예측 블록에 대해 코딩될 때, 예측 처리 유닛(81)의 인트라 예측 유닛(84)은 시그널링된 인트라 예측 모드 및 현재 프레임의 이전에 디코딩된 블록으로부터의 참조 데이터에 기반하여, 현재 비디오 프레임의 비디오 블록에 대한 예측 데이터를 생성할 수 있다.
비디오 프레임이 인터 예측 코딩된(즉, B 또는 P) 프레임으로 코딩될 때, 예측 처리 유닛(81)의 모션 보상 유닛(82)은 엔트로피 디코딩 유닛(80)으로부터 수신된 기타 신택스 엘리먼트 및 모션 벡터에 기반하여, 현재 비디오 프레임의 비디오 블록에 대한 하나 이상의 예측 블록을 생성한다. 예측 블록 각각은 참조 프레임 리스트 중 하나 내의 참조 프레임으로부터 생성될 수 있다. 비디오 디코더(30)는 DPB(92)에 저장된 참조 프레임에 기반한 디폴트 구성 기술을 사용하여 참조 프레임 리스트인 리스트 0 및 리스트 1을 구성할 수 있다.
일부 예에서, 비디오 블록이 여기에서 설명된 인트라 BC 모드에 따라 코딩될 때, 예측 처리 유닛(81)의 인트라 BC 유닛(85)은 엔트로피 디코딩 유닛(80)으로부터 수신된 기타 신택스 엘리먼트 및 블록 벡터에 기반하여, 현재 비디오 블록에 대한 예측 블록을 생성한다. 예측 블록은 비디오 인코더(20)에 의해 정의된 현재 비디오 블록과 동일한 픽처의 재구성된 영역 내에 있을 수도 있다.
모션 보상 유닛(82) 및/또는 인트라 BC 유닛(85)은 모션 벡터 및 기타 신택스 엘리먼트를 파싱하여 현재 비디오 프레임의 비디오 블록에 대한 예측 정보를 결정하고, 예측 정보를 이용하여 코딩되고 있는 현재 비디오 블록에 대한 예측 블록을 생성한다. 예를 들어, 모션 보상 유닛(82)은 수신된 신택스 엘리먼트 중 일부를 사용하여, 비디오 프레임의 비디오 블록을 코딩하는 데 사용되는 예측 모드(예: 인트라 또는 인터 예측), 인터 예측 프레임 유형(예: B 또는 P), 프레임에 대한 참조 프레임 리스트 중 하나 이상에 대한 구성 정보, 프레임의 각 인터 예측 인코딩된 비디오 블록에 대한 모션 벡터, 프레임의 각 인터 예측 코딩된 비디오 블록에 대한 인터 예측 상태, 및 현재 비디오 프레임의 비디오 블록을 디코딩하기 위한 기타 정보를 결정한다.
유사하게, 인트라 BC 유닛(85)은 수신된 신택스 엘리먼트의 일부, 예를 들어 플래그를 사용하여, 현재 비디오 블록이 인트라 BC 모드를 사용하여 예측되었다는 것, 프레임의 어떤 비디오 블록이 재구성된 영역 내에 있으며 DPB(92)에 저장되어야 하는지에 대한 구성 정보, 프레임의 각 인트라 BC 예측된 비디오 블록에 대한 블록 벡터, 프레임의 각 인트라 BC 예측된 비디오 블록에 대한 인트라 BC 예측 상태 및 현재 비디오 프레임의 비디오 블록을 디코딩하기 위한 기타 정보를 결정할 수 있다.
모션 보상 유닛(82)은 또한 비디오 블록의 인코딩 동안 비디오 인코더(20)에 의해 사용되는 보간 필터를 사용하여 보간을 수행하여, 참조 블록의 서브 정수 픽셀에 대한 보간된 값을 계산할 수도 있다. 이 경우, 모션 보상 유닛(82)은 수신된 신택스 엘리먼트로부터 비디오 인코더(20)에 의해 사용되는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다.
역 양자화 유닛(86)은 비디오 프레임에서 각 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 동일한 양자화 파라미터를 이용하여, 비트스트림에 제공되고 엔트로피 디코딩 유닛(80)에 의해 엔트로피 디코딩된, 양자화된 변환 계수를 역양자화하여 양자화 정도를 결정한다. 역 변환 처리 유닛(88)은 픽셀 도메인에서 잔차 블록을 재구성하기 위해, 역 변환, 예를 들어 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스를 변환 계수에 적용한다.
모션 보상 유닛(82) 또는 인트라 BC 유닛(85)이 벡터 및 기타 신택스 엘리먼트에 기반하여 현재 비디오 블록에 대한 예측 블록을 생성한 후, 합산기(90)는 역 변환 처리 유닛(88)으로부터의 잔차 블록과 모션 보상 유닛(82) 및 인트라 BC 유닛(85)에 의해 생성된 대응하는 예측 블록을 합산하는 것에 의해 현재 비디오 블록에 대한 디코딩된 비디오 블록을 재구성한다. 디블로킹 필터, SAO 필터 및/또는 ALF와 같은 인루프 필터(91)는 디코딩된 비디오 블록을 추가로 처리하기 위해 합산기(90)와 DPB(92) 사이에 배치될 수 있다. 일부 예에서, 인루프 필터(91)는 생략될 수 있으며, 디코딩된 비디오 블록은 합산기(90)에 의해 DPB(92)에 직접 제공될 수 있다. 주어진 프레임의 디코딩된 비디오 블록은 다음 비디오 블록의 후속 모션 보상에 사용되는 참조 프레임을 저장하는 DPB(92)에 저장된다. DPB(92) 또는 DPB(92)와는 분리된 메모리 디바이스는 또한 도 1의 디스플레이 디바이스(34)와 같은 디스플레이 디바이스에 나중에 프레젠테이션하기 위해 디코딩된 비디오를 저장할 수 있다.
일반적인 비디오 코딩 프로세스에서, 비디오 시퀀스에는 일반적으로 순서가 지정된 프레임 또는 픽처 세트가 포함된다. 각 프레임은 SL, SCb, SCr로 표시된 3개의 샘플 어레이를 포함할 수 있다. SL은 루마 샘플의 2차원 어레이이다. SCb는 Cb 크로마 샘플의 2차원 어레이이다. SCr은 Cr 크로마 샘플의 2차원 어레이이다. 다른 경우에는 프레임이 단색(monochrome)일 수 있으므로, 루마 샘플의 2차원 어레이가 하나만 포함된다.
도 4a에 도시된 바와 같이, 비디오 인코더(20)(또는 더 구체적으로 파티션 유닛(45))는 먼저 프레임을 CTU 세트로 파티셔닝함으로써 프레임의 인코딩된 표현(representation)을 생성한다. 비디오 프레임은 좌측에서 우측으로 그리고 상단(top)에서 하단(bottom)의 래스터 스캔 순서로 연속적으로 정렬된 정수 개의 CTU를 포함할 수 있다. 각각의 CTU는 가장 큰 논리 코딩 유닛이며, CTU의 너비와 높이는 비디오 시퀀스의 모든 CTU가 128×128, 64×64, 32×32 및 16×16 중 하나인 동일한 크기를 갖도록, 시퀀스 파라미터 세트에서 비디오 인코더(20)에 의해 시그널링된다. 그러나 본 출원이 반드시 특정 크기로 제한되는 것은 아니라는 점에 유의해야 한다. 도 4b에 도시된 바와 같이, 각 CTU는 루마 샘플의 하나의 CTB, 크로마 샘플의 대응하는 2개의 코딩 트리 블록, 그리고 코딩 트리 블록의 샘플을 코딩하는 데 사용되는 신택스 엘리먼트를 포함할 수 있다. 신택스 엘리먼트는 인터 또는 인트라 예측, 인트라 예측 모드, 모션 벡터 및 기타 파라미터를 포함하여, 픽셀의 코딩된 블록의 서로 다른 유형의 유닛의 속성 및 비디오 시퀀스가 비디오 디코더(30)에서 재구성될 수 있는 방법을 설명한다. 단색 픽처 또는 3개의 개별 색상 평면을 갖는 픽처에서, CTU는 단일 코딩 트리 블록 및 코딩 트리 블록의 샘플을 코딩하는 데 사용되는 신택스 엘리먼트를 포함할 수 있다. 코딩 트리 블록은 샘플의 N×N 블록일 수 있다.
더 나은 성능을 달성하기 위해, 비디오 인코더(20)는 CTU의 코딩 트리 블록에 대해 이진 트리(binary-tree) 파티셔닝, 터너리 트리(ternary-tree) 파티셔닝, 쿼드 트리(quad-tree) 파티셔닝 또는 이들의 조합과 같은 트리 파티셔닝을 반복적으로 수행하고 CTU를 더 작은 CU로 나눌 수도 있다. 도 4c에 도시된 바와 같이, 64×64 CTU(400)는 먼저 4개의 더 작은 CU로 나뉘며, 각각은 32×32의 블록 크기를 갖는다. 4개의 작은 CU 중 CU(410)와 CU(420)는 각각 블록 크기에 따라 16×16의 4개의 CU로 나뉜다. 2개의 16×16 CU(430 및 440)는 각각 블록 크기에 따라 8×8의 4개 CU로 더 나뉜다. 도 4d는 도 4c에 도시된 CTU(400) 파티셔닝 프로세스의 최종 결과를 예시하는 쿼드 트리 데이터 구조를 도시하며, 쿼드 트리의 각 리프 노드는 32×32에서 8×8 범위의 개개의 크기를 갖는 하나의 CU에 대응한다. 도 4b에 도시된 CTU와 같이, 각각의 CU는 루마 샘플의 CB 및 동일한 크기의 프레임의 크로마 샘플의 대응하는 2개의 코딩 블록, 및 코딩 블록의 샘플을 코딩하는데 사용되는 신택스 엘리먼트를 포함할 수 있다. 단색 픽처 또는 3개의 개별 색상 평면을 갖는 픽처에서, CU는 단일 코딩 블록 및 코딩 블록의 샘플을 코딩하는 데 사용되는 신택스 구조를 포함할 수 있다. 도 4c 및 도 4d에 도시된 쿼드 트리 파티셔닝은 설명 목적으로만 제공되며 하나의 CTU는 쿼드/터너리/이진 트리 파티션에 기반하여 다양한 로컬 특성에 적응하기 위해 CU로 분할될 수 있음을 유의해야 한다. 멀티 유형 트리 구조에서는 하나의 CTU가 쿼드 트리 구조로 파티셔닝되고, 각각의 쿼드 트리 리프 CU가 이진 및 터너리 트리 구조로 추가로 파티셔닝될 수 있다. 도 4e에 도시된 바와 같이, 너비 W 및 높이 H를 갖는 코딩 블록의 가능한 5개의 파티셔닝 유형, 즉 쿼터(quaternary) 파티셔닝, 수평 이진 파티셔닝, 수직 이진 파티셔닝, 수평 터너리 파티셔닝 및 수직 터너리 파티셔닝이 있다.
일부 구현에서, 비디오 인코더(20)는 CU의 코딩 블록을 하나 이상의 M×N PB로 추가로 파티셔닝할 수 있다. PB는 동일한 예측(인터 또는 인트라)이 적용되는 샘플의 직사각형(정사각형 또는 비정사각형) 블록이다. CU의 PU는 루마 샘플의 PB, 크로마 샘플의 대응하는 2개의 PB, 및 PB를 예측하는 데 사용되는 신택스 엘리먼트를 포함할 수 있다. 단색 픽처 또는 3개의 개별 색상 평면을 갖는 픽처에서, PU는 단일 PB 및 PB를 예측하는 데 사용되는 신택스 구조를 포함할 수 있다. 비디오 인코더(20)는 CU의 각각의 PU의 루마, Cb 및 Cr PB에 대한 예측 루마, Cb 및 Cr 블록을 생성할 수도 있다.
비디오 인코더(20)는 인트라 예측 또는 인터 예측을 사용하여 PU에 대한 예측 블록을 생성할 수 있다. 비디오 인코더(20)가 인트라 예측을 사용하여 PU의 예측 블록을 생성하면, 비디오 인코더(20)는 PU와 연관된 프레임의 디코딩된 샘플에 기반하여 PU의 예측 블록을 생성할 수 있다. 비디오 인코더(20)가 인터 예측을 사용하여 PU의 예측 블록을 생성하면, 비디오 인코더(20)는 PU와 연관된 프레임 이외의 하나 이상의 프레임의 디코딩된 샘플에 기반하여 PU의 예측 블록을 생성할 수 있다.
비디오 인코더(20)가 CU의 하나 이상의 PU에 대해 예측 루마, Cb 및 Cr 블록을 생성한 후에, 비디오 인코더(20)는 CU의 루마 잔차 블록의 각 샘플이 CU의 예측 루마 블록 중 하나의 루마 샘플과 CU의 원래 루마 코딩 블록의 대응하는 샘플 간의 차이를 지시하도록, 그 원래의 루마 코딩 블록으로부터 CU의 예측 루마 블록을 감산하는 것에 의해 CU에 대한 루마 잔차 블록을 생성할 수 있다. 유사하게, 비디오 인코더(20)는 CU의 Cb 잔차 블록의 각 샘플이 CU의 예측 Cb 블록 중 하나의 Cb 샘플과 CU의 원래 Cb 코딩 블록의 대응하는 샘플 간의 차이를 지시하고, CU의 Cr 잔차 블록의 각 샘플이 CU의 예측 Cr 블록 중 하나의 Cr 샘플과 CU의 원래 Cr 코딩 블록의 대응하는 샘플 간의 차이를 지시하도록, CU에 대한 Cb 잔차 블록 및 Cr 잔차 블록을 각각 생성할 수 있다.
또한, 도 4c에 도시된 바와 같이, 비디오 인코더(20)는 쿼드트리 파티셔닝을 사용하여, CU의 루마 잔차 블록, Cb 잔차 블록 및 Cr 잔차 블록을 각각 하나 이상의 루마 변환 블록, Cb 변환 블록 및 Cr 변환 블록으로 분해할 수 있다. 변환 블록은 동일한 변환이 적용되는 직사각형(정사각형 또는 비정사각형) 샘플 블록이다. CU의 TU는 루마 샘플의 변환 블록, 크로마 샘플의 대응하는 2개의 변환 블록, 및 변환 블록 샘플을 변환하는데 사용되는 신택스 엘리먼트를 포함할 수 있다. 따라서, CU의 각각의 TU는 루마 변환 블록, Cb 변환 블록 및 Cr 변환 블록과 연관될 수 있다. 일부 예에서, TU와 연관된 루마 변환 블록은 CU의 루마 잔차 블록의 서브블록일 수 있다. Cb 변환 블록은 CU의 Cb 잔차 블록의 서브블록일 수 있다. Cr 변환 블록은 CU의 Cr 잔차 블록의 서브블록일 수 있다. 단색 픽처 또는 3개의 개별 색상 평면을 갖는 픽처에서, TU는 단일 변환 블록 및 변환 블록의 샘플을 변환하는 데 사용되는 신택스 구조를 포함할 수 있다.
비디오 인코더(20)는 하나 이상의 변환을 TU의 루마 변환 블록에 적용하여 TU에 대한 루마 계수 블록을 생성할 수 있다. 계수 블록은 변환 계수의 2차원 어레이일 수 있다. 변환 계수는 스칼라 수량일 수 있다. 비디오 인코더(20)는 하나 이상의 변환을 TU의 Cb 변환 블록에 적용하여 TU에 대한 Cb 계수 블록을 생성할 수 있다. 비디오 인코더(20)는 하나 이상의 변환을 TU의 Cr 변환 블록에 적용하여 TU에 대한 Cr 계수 블록을 생성할 수 있다.
계수 블록(예: 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록)을 생성한 후, 비디오 인코더(20)는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로 변환 계수를 표현하는 데 사용되는 데이터의 양을 줄이기 위해 변환 계수를 양자화하여 추가 압축을 제공하는 프로세스를 의미한다. 비디오 인코더(20)가 계수 블록을 양자화한 후, 비디오 인코더(20)는 양자화된 변환 계수를 지시하는 신택스 엘리먼트를 엔트로피 인코딩할 수 있다. 예를 들어, 비디오 인코더(20)는 양자화된 변환 계수를 지시하는 신택스 엘리먼트에 대해 CABAC를 수행할 수 있다. 마지막으로, 비디오 인코더(20)는 코딩된 프레임의 표현 및 연관된 데이터를 형성하는 비트 시퀀스를 포함하는 비트스트림을 출력할 수 있으며, 이는 저장 디바이스(32)에 저장되거나 목적지 디바이스(14)에 전송된다.
비디오 인코더(20)에 의해 생성된 비트스트림을 수신한 후, 비디오 디코더(30)는 비트스트림을 파싱하여 비트스트림으로부터 신택스 엘리먼트를 획득할 수 있다. 비디오 디코더(30)는 비트스트림으로부터 획득된 신택스 엘리먼트에 적어도 부분적으로 기반하여 비디오 데이터의 프레임을 재구성할 수 있다. 비디오 데이터를 재구성하는 프로세스는 일반적으로 비디오 인코더(20)에 의해 수행되는 인코딩 프로세스와 상반된다. 예를 들어, 비디오 디코더(30)는 현재 CU의 TU와 연관된 계수 블록에 대해 역 변환을 수행하여, 현재 CU의 TU와 연관된 잔차 블록을 재구성할 수 있다. 비디오 디코더(30)는 또한 현재 CU의 PU에 대한 예측 블록의 샘플을 현재 CU의 TU의 변환 블록의 대응하는 샘플에 추가하는 것에 의해 현재 CU의 코딩 블록을 재구성한다. 프레임의 각각의 CU에 대한 코딩 블록을 재구성한 후에, 비디오 디코더(30)는 프레임을 재구성할 수 있다.
위에서 언급한 바와 같이, 비디오 코딩은 주로 두 가지 모드, 즉 인트라 프레임 예측(또는 인트라 예측)과 인터 프레임 예측(또는 인터 예측)을 사용하여 비디오 압축을 달성한다. IBC는 인트라 프레임 예측 또는 세 번째 모드로 간주될 수 있다. 두 모드 사이에서 인터 프레임 예측은 참조 비디오 블록으로부터 현재 비디오 블록을 예측하기 위해 모션 벡터를 사용하기 때문에, 인트라 프레임 예측보다 코딩 효율성에 더 많이 기여한다.
그러나 계속해서 발전하는 비디오 데이터 캡처 기술과 비디오 데이터의 세부 사항을 보존하기 위한 더욱 정제된 비디오 블록 크기로 인해, 현재 프레임에 대한 모션 벡터를 표현하는 데 필요한 데이터의 양도 크게 증가한다. 이 문제를 극복하는 한 가지 방법은, 공간적 및 시간적 도메인 모두에서 이웃 CU 그룹이 예측 목적을 위해 유사한 비디오 데이터를 가질 뿐만 아니라 이러한 이웃 CU 간의 모션 벡터도 유사하다는 사실을 활용하는 것이다. 따라서 공간적, 시간적 상관 관계를 탐색함으로써 공간적으로 이웃하는 CU 및/또는 시간적으로 동일 위치에 있는(co-located) CU의 모션 정보를 현재 CU의 모션 정보(예: 모션 벡터)의 근사치로 사용하는 것이 가능하며, 이를 현재 CU의 "모션 벡터 예측자(Motion Vector Predictor, MVP)"라고 한다.
도 2와 관련하여 전술한 바와 같이 모션 추정 유닛(42)에 의해 결정된 현재 CU의 실제 모션 벡터를 비디오 비트스트림으로 인코딩하는 대신에, 현재 CU의 모션 벡터 예측자를 현재 CU의 실제 모션 벡터로부터 감산하여, 현재 CU에 대한 모션 벡터 차이(Motion Vector Difference, MVD)를 생성한다. 이를 통해, 프레임의 각 CU에 대해 모션 추정 유닛(42)에 의해 결정된 모션 벡터를 비디오 비트스트림으로 인코딩할 필요가 없으며, 비디오 비트스트림에서 모션 정보를 표현하기 위해 사용되는 데이터의 양을 획기적으로 줄일 수 있다.
코드 블록의 인터 프레임 예측 동안 참조 프레임에서 예측 블록을 선택하는 프로세스와 마찬가지로, 현재 CU의 공간적으로 이웃하는 CU 및/또는 시간적으로 동일 위치에 있는 CU와 연관된 잠재적 후보 모션 벡터를 사용하고 모션 벡터 후보 리스트로부터 하나의 멤버를 현재 CU에 대한 모션 벡터 예측자로 선택하여 현재 CU에 대한 모션 벡터 후보 리스트(또한 "병합 리스트"이라고 함)를 구성하기 위해 비디오 인코더(20)와 비디오 디코더(30) 모두에 의해 일련의 규칙이 채택되어야 한다. 이렇게 하면, 모션 벡터 후보 리스트 자체를 비디오 인코더(20)에서 비디오 디코더(30)로 전송할 필요가 없으며, 모션 벡터 후보 리스트 내 선택된 모션 벡터 예측자의 인덱스가 비디오 인코더(20)와 비디오 디코더(30)가 현재 CU를 인코딩 및 디코딩하기 위해 모션 벡터 후보 리스트 내의 동일한 모션 벡터 예측자를 사용하기에 충분하다.
위치 의존적 인트라 예측 조합
VVC에서 DC, 평면 및 여러 각도 모드의 인트라 예측 결과는 위치 의존적 인트라 예측 조합(position dependent intra prediction combination, PDPC) 방법에 의해 추가로 수정된다. PDPC는 필터링된 경계 참조 샘플을 사용하여 경계 참조 샘플과 HEVC 스타일 인트라 예측의 조합을 호출하는 인트라 예측 방법이다. PDPC는 시그널링 없이 다음의 인트라 모드: 평면, DC, 수평보다 작거나 같은 인트라 각도, 수직보다 크거나 같으며 80보다 작거나 같은 인트라 각도에 적용된다. 현재 블록이 Bdpcm 모드이거나 MRL 인덱스가 0보다 크면, PDPC가 적용되지 않는다.
예측 샘플 pred(x',y')는 다음과 같은 수식에 따라 인트라 예측 모드(DC, 평면, 각도)와 참조 샘플의 선형 조합을 사용하여 예측된다:
pred(x',y')= Clip(0,(1 << BitDepth ) - 1,(wL×R-1,y' + wT×Rx',-1 +(64 - wL - wT)×pred(x',y') + 32 )>>6)
여기서 Rx,-1, R-1,y는 각각 현재 샘플(x, y)의 상단 경계 및 좌측 경계에 위치된 참조 샘플을 나타낸다.
DC 인트라 모드, 평면 인트라 모드, 수평 인트라 모드, 수직 인트라 모드에 PDPC를 적용하면, HEVC DC 모드 경계 필터나 수평/수직 모드 에지 필터의 경우에서 요구되는 바와 같이, 추가적인 경계 필터가 필요하지 않다. DC 모드 및 평면 모드의 PDPC 프로세스는 동일하다. 각도 모드의 경우, 현재 각도 모드가 HOR_IDX 또는 VER_IDX이면, 좌측 참조 샘플 또는 상단 참조 샘플이 각각 사용되지 않는다. PDPC 가중치와 스케일 팩터(scale factor)는 예측 모드와 블록 크기에 따라 달라진다. PDPC는 너비와 높이가 모두 4보다 크거나 같은 블록에 적용된다.
도 5a-도 5d는 다양한 예측 모드에 걸쳐 적용된 PDPC에 대한 참조 샘플(Rx,-1 및 R-1,y)의 정의를 도시한다. 도 5a는 대각선 상단 우측 모드의 예를 도시한다. 도 5b는 대각선 좌측 하단 모드의 예를 도시한다. 도 5c는 인접한 대각선 상단 우측 모드의 예를 도시한다. 도 5d는 인접한 대각선 좌측 하단 모드의 예를 도시한다. 예측 샘플 pred(x', y')는 예측 블록 내 (x', y')에 위치된다. 예를 들어, 참조 샘플 Rx,-1의 좌표 x는 x = x'+y'+1로 주어지며, 참조 샘플 R-1,y의 좌표 y는 유사하게 대각선 모드에 대해 y = x'+y'+1이다. 다른 각도 모드의 경우, 참조 샘플 Rx,-1 및 R-1,y는 분수 샘플 위치(fractional sample position)에 위치될 수 있다. 이 경우, 가장 가까운 정수 샘플 위치의 샘플 값이 사용된다.
앞서 언급한 바와 같이, 인트라 예측 샘플은 이웃 참조 샘플의 필터링되지 않거나 필터링된 세트로부터 생성되며, 이는 현재 코딩 블록과 그 이웃 사이의 블록 경계를 따라 불연속성을 유발할 수 있다. 이러한 문제를 해결하기 위해, DC 예측 모드, 수평(즉, 모드 18) 예측 모드 및 수직(즉, 모드 50) 예측 모드의 예측 샘플의 제1 행/열을, 2-탭 필터(DC 모드의 경우) 또는 그레이디언트 기반 평활화 필터(gradient-based smoothing filter)(수평 및 수직 예측 모드의 경우)를 활용하여 필터링되지 않은 참조 샘플과 조합하는 것에 의해 경계 필터링이 HEVC에 적용된다.
그레이디언트 PDPC
VVC에서는 몇 가지 시나리오의 경우, 보조 참조 샘플(secondary reference sample)을 사용할 수 없어서 PDPC가 적용되지 않을 수 있다. 수평/수직 모드에서 확장된 그레이디언트 기반의 PDPC가 적용된다. 좌측/상단 경계로부터의 거리에 대한 PDPC 가중치의 감쇠(decay)를 결정하기 위한 PDPC 가중치(wT/wL) 및 nScale 파라미터는 각각 수평/수직 모드에서 대응하는 파라미터와 동일하게 설정된다. 보조 참조 샘플이 분수 샘플 위치에 있을 때, 이중 선형 보간(bilinear interpolation)이 적용된다.
기하학적 파티션 모드(Geometric partition mode, GPM)
VVC에서는 인터 예측을 위해 기하학적 파티셔닝 모드를 지원한다. 기하학적 파티셔닝 모드는 하나의 CU 레벨 플래그에 의해 하나의 특수 병합 모드로서 시그널링된다. 현재 GPM 설계에서는 8×64 및 64×8을 제외하고 너비와 높이가 모두 8보다 작지 않고 64보다 크지 않은 각각의 가능한 CU 크기에 대해 GPM 모드에 의해 총 64개의 파티션이 지원된다.
이 모드를 사용할 때, CU는 도 6에 도시된 바와 같이 기하학적으로 위치된 직선에 의해 두 부분으로 분할된다. 분할선(splitting line)의 위치는 특정 파티션의 각도 및 오프셋 파라미터로부터 수학적으로 도출된다. CU의 기하학적 파티션의 각 부분은 자체 모션을 사용하여 상호 예측되며; 각 파티션에 대해 단일 예측(uni-prediction)만 허용되고, 즉, 각 부분은 하나의 모션 벡터와 하나의 참조 인덱스를 갖는다. 단일 예측 모션 제약 조건(constraint)은 기존의 이중 예측(bi-prediction)과 동일하게 각 CU에 대해 두 개의 모션 보상 예측만 필요하도록 적용된다. 현재 CU에 대해 기하학적 파티션 모드가 사용되면, 기하학적 파티션의 파티션 모드(각도 및 오프셋)를 지시하는 기하학적 파티션 인덱스와 두 개의 병합 인덱스(각 파티션에 대해 하나씩)가 추가로 시그널링된다. 최대 GPM 후보 크기의 수는 시퀀스 레벨에서 명시적으로 시그널링된다.
기하학적 파티션 에지를 따른 블렌딩(blending)
자체 모션을 사용하여 각 기하학적 파티션을 획득한 후, 두 개의 단일 예측 신호에 블렌딩을 적용하여 기하학적 파티션 에지 주변의 샘플을 추출한다. CU의 각 위치에 대한 블렌딩 가중치는 각 개별 샘플 위치에서 대응하는 파티션 에지까지의 거리에 기반하여 도출된다.
GPM 시그널링 설계
현재 GPM 설계에 따르면, GPM의 사용은 CU 레벨에서 하나의 플래그를 시그널링하는 것에 의해 지시된다. 플래그는 현재 CU가 병합 모드 또는 스킵(skip) 모드로 코딩될 때에만 시그널링된다. 구체적으로, 플래그가 1과 같을 때, 현재 CU가 GPM에 의해 예측된다는 것을 지시한다. 그렇지 않으면(플래그가 0과 같음), CU는 정규 병합(regular merge) 모드, 모션 벡터 차이가 있는 병합 모드, 조합된 인터 및 인트라 예측 등과 같은 다른 병합 모드에 의해 코딩된다. GPM이 현재 CU에 대해 이네이블될 때, 하나의 신택스 엘리먼트, 즉 merge_gpm_partition_idx가 추가로 시그널링되어, 적용된 기하학적 파티션 모드(도 6에 도시된 바와 같이 CU를 두 개의 파티션으로 분할하는 CU 중심으로부터의 직선의 방향과 오프셋을 지정함)를 지시한다. 그 후 두 개의 신택스 엘리먼트 merge_gpm_idx0 및 merge_gpm_idx1이 시그널링되어, 제1 GPM 파티션 및 제2 GPM 파티션에 사용되는 단일 예측 병합 후보의 인덱스를 지시한다. 보다 구체적으로, 이러한 두 개의 신택스 엘리먼트는 "단일 예측 병합 리스트 구성" 섹션에 설명된 대로 단일 예측 병합 리스트로부터 두 개의 GPM 파티션의 단일 지향성(uni-directional) MV를 결정하는 데 사용된다. 현재 GPM 설계에 따르면, 두 개의 단일 지향성 MV를 더 상이하게 만들기 위해, 두 개의 인덱스가 동일할 수 없다. 이러한 사전 지식에 기반하여, 제1 GPM 파티션의 단일 예측 병합 인덱스를 먼저 시그널링하고 예측자로 사용하여, 제2 GPM 파티션의 단일 예측 병합 인덱스의 시그널링 오버헤드를 감소시킨다. 구체적으로, 제2 단일 예측 병합 인덱스가 제1 단일 예측 병합 인덱스보다 작으면, 그 원래 값을 직접 시그널링한다. 그렇지 않으면(제2 단일 예측 병합 인덱스가 제1 단일 예측 병합 인덱스보다 크면), 비트스트림에 시그널링되기 전에 대응하는 값에서 1을 뺀다. 디코더측에서, 제1 단일 예측 병합 인덱스는 첫째로 디코더이다. 그 후, 제2 단일 예측 병합 인덱스의 디코딩을 위해, 파싱된 값이 제1 단일 예측 병합 인덱스보다 작으면, 제2 단일 예측 병합 인덱스는 파싱 값과 동일하게 설정되고; 그렇지 않으면(파싱된 값이 제1 단일 예측 병합 인덱스보다 크거나 같음), 제2 단일 예측 병합 인덱스는 파싱된 값에 1을 더한 것과 같게 설정된다. 표 1은 현재 VVC 사양에서 GPM 모드에 사용되는 기존 신택스 엘리먼트를 예시한다.
VVC 사양의 병합 데이터 신택스 테이블에 있는 기존 GPM 신택스 엘리먼트
merge_data( x0, y0, cbWidth, cbHeight, chType ) { 디스크립터
......
if( !ciip_flag[ x0 ][ y0 ] ) {
merge_gpm_partition_idx[ x0 ][ y0 ] ae(v)
merge_gpm_idx0[ x0 ][ y0 ] ae(v)
if( MaxNumGpmMergeCand > 2 )
merge_gpm_idx1[ x0 ][ y0 ] ae(v)
}
......
}
반면, 현재 GPM 설계에서는 두 개의 단일 예측 병합 인덱스, 즉 merge_gpm_idx0 및 merge_gpm_idx1의 이진화를 위해 잘린 단항 코드(truncated unary code)가 사용된다. 추가적으로, 두 개의 단일 예측 병합 인덱스는 동일할 수 없기 때문에, 서로 다른 최대값을 사용하여 두 개의 단일 예측 병합 인덱스의 코드 워드를 자르는데, 이는 merge_gpm_idx0 및 merge_gpm_idx1에 대해 각각 MaxGPMMergeCand - 1 및 MaxGPMMergeCand -2와 같게 설정된다. MaxGPMMergeCand는 단일 예측 병합 리스트의 후보 수이다.
GPM/AWP 모드가 적용될 때, 두 가지 서로 다른 이진화 방법이 적용되어 merge_gpm_partition_idx 신택스를 이진 비트 문자열로 변환한다. 구체적으로, 신택스 엘리먼트는 VVC 및 AVS3 표준에서 각각 고정 길이 코드와 잘린 이진 코드로 이진화된다. 한편, AVS3의 AWP 모드에서는 이진화에 서로 다른 최대값이 사용된다.
공간 각도 가중 예측(spatial angular weighted prediction, SAWP)
AVS에서는 GPM 모드를 인트라 블록으로 확장하는 SAWP(Spatial Angle Weighted Prediction) 모드를 사용한다. SAWP 모드에서는 두 개의 인터 예측 블록에 가중치를 부여하는 대신에, 두 개의 인트라 예측 블록에 가중치를 부여한다. 두 개의 인트라 예측 블록은 인트라 예측 모드들로부터 선택된 서로 다른 두 개의 인트라 예측 모드를 이용하여 예측된다. 인트라 예측 모드는 각도 모드 5 내지 30 중에서 선택된다. 최대 크기는 32×32이다. 정규 인트라 모드의 2개의 MPM(most probable mode)이 SAWP 모드의 MPM 도출에 사용된다.
SAWP와 동일한 설계 정신을 따르지만 특정 설계 세부 사항에 약간의 차이가 있는 다중 방향 내부 예측 설계(Multi-direction intra prediction design, MDIP)이다.
디코더측 인트라 모드 도출(Decoder-side Intra Mode Derivation, DIMD)
DIMD는 루마 인트라 예측 모드(intra prediction mode, IPM)가 비트스트림을 통해 전송되지 않는 인트라 코딩 도구이다. 대신, 인코더와 디코더에서 동일한 방식으로 이전에 인코딩/디코딩된 픽셀을 사용하여 도출된다. DIMD 방법은 텍스처 그레이디언트 처리를 수행하여 2개의 최상의 모드를 도출한다. 그런 다음 이 2개의 모드와 평면 모드가 블록에 적용되고 그의 예측 변수가 가중 평균된다. DIMD의 선택은 플래그를 사용하여 인트라 코딩된 블록에 대한 비트스트림에서 시그널링된다. 디코더에서, DIMD 플래그가 참(true)이면, 인트라 예측 모드는 이전에 인코딩된 동일한 이웃 픽셀을 사용하여 재구성 프로세스에서 도출된다. 그렇지 않으면, 인트라 예측 모드는 기존 인트라 코딩 모드에서와 같이 비트스트림으로부터 파싱된다.
블록에 대한 인트라 예측 모드를 도출하기 위해, 먼저 그레이디언트 분석을 수행할 이웃 픽셀의 세트를 선택해야 한다. 규범화 목적을 위해 이러한 픽셀은 디코딩된/재구성된 픽셀 풀(pool)에 있어야 한다. 도 7에 도시된 바와 같이, 현재 블록을 좌측으로 T 픽셀만큼, 위쪽으로 T 픽셀만큼 둘러싸는 템플릿(template)을 선택한다. 다음에, 템플릿의 픽셀에 대한 그레이디언트 분석을 수행한다. 이를 통해 템플릿에 대한 주요 각도 방향을 결정할 수 있으며, 이는 현재 블록 중 하나와 동일할 가능성이 높다고 가정한다(이것이 본 방법의 핵심 전제이다). 따라서 템플릿과 콘볼루트(convolute)될 다음 행렬로 정의된 간단한 3×3 소벨(Sobel) 그레이디언트 필터를 사용한다:
템플릿의 각 픽셀에 대해, 이 두 행렬 각각을, 현재 픽셀을 중심으로 하고 8개의 직접 이웃으로 구성된 3×3 윈도(window)와 포인트별로 곱하고 그 결과를 합산한다. 따라서 현재 픽셀에서의 그레이디언트에 대응하는 2개의 값 Gx(Mx와의 곱셈으로부터)와 Gy(My와의 곱셈으로부터)를 각각 수평 방향 및 수직 방향으로 획득한다.
도 8은 콘볼루션 프로세스를 도시한다. 파란색 픽셀은 현재 픽셀이다. 빨간색 픽셀(파란색 포함)은 그레이디언트 분석이 가능한 픽셀이다. 회색 픽셀은 일부 이웃이 부족하여 그레이디언트 분석이 가능하지 않은 픽셀이다. 보라색 픽셀은 빨간색 픽셀의 그레이디언트 분석에 사용되는 고려된 템플릿 외부의 이용 가능한(재구성된) 픽셀이다. 보라색 픽셀이 이용 가능하지 않은 경우(예를 들어 블록이 픽처의 경계에 너무 가까워서), 이 보라색 픽셀을 사용하는 모든 빨간색 픽셀의 그레이디언트 분석이 수행되지 않는다. 각 빨간색 픽셀에 대해, 다음과 같이 Gx 및 Gy를 사용하여 그레이디언트의 강도(intensity)(G)와 방향(O)을 계산한다:
그런 다음 그레이디언트의 배향(orientation)은 히스토그램(먼저 0으로 초기화됨)을 인덱싱하는 데 사용되는 인트라 각도 예측 모드로 변환된다. 이 인트라 각도 모드에서의 히스토그램 값은 G만큼 증가한다. 템플릿의 빨간색 픽셀이 모두 처리되면, 히스토그램에는 각 인트라 각도 모드에 대한 그레이디언트 강도의 누적 값이 포함된다. 현재 블록에 대해 가장 높은 두 개의 히스토그램 막대(bar)에 대응하는 IPM이 선택된다. 히스토그램의 최대값이 0이면(그레이디언트 분석을 할 수 없거나 템플릿을 구성하는 영역이 평평함을 의미함), 현재 블록에 대한 인트라 예측 모드로 DC 모드가 선택된다.
가장 높은 HoG 막대 2개에 대응하는 2개의 IPM가 평면 모드와 조합된다. 하나 이상의 예에서, 예측 융합(prediction fusion)은 위의 3개 예측자의 가중 평균으로 적용된다. 이를 위해, 평면의 가중치는 21/64(~1/3)로 고정된다. 그런 다음 43/64(~2/3)의 나머지 가중치는 HoG 막대의 진폭(amplitude)에 비례하여 2개의 HoG IPM 간에 공유된다. 도 9는 이 프로세스를 시각화한 것이다.
도출된 인트라 모드는 인트라 MPM(most probable mode)의 주요 리스트(primary list)에 포함되므로, MPM 리스트가 구성되기 전에 DIMD 프로세스가 수행된다. DIMD 블록의 1차(primary) 도출된 인트라 모드가 블록과 함께 저장되며, 이웃 블록의 MPM 리스트 구성에 사용된다.
템플릿 기반 인트라 모드 도출(Template-based intra mode derivation, TIMD)
MPM의 각 인트라 모드에 대해, 도 10에 도시된 템플릿 영역의 예측 샘플과 재구성 샘플 간의 절대 변환 차이(absolute transformed difference, SATD)의 합이 계산되며, SATD 코스트(cost)가 가장 작은 처음 2개의 모드를 갖는 인트라 모드를 선택한 후 이를 가중치와 융합하고, 이러한 가중 인트라 예측을 사용하여 현재 CU를 코딩한다.
선택된 2개의 모드의 코스트는 임계값과 비교되며, 테스트에서는 2의 코스트 팩터가 다음과 같이 적용된다:
costMode2 < 2*costMode1.
이 조건이 참이면, 융합(fusion)이 적용되고, 그렇지 않으면 mode1만 사용된다.
모드의 가중치는 다음과 같이 SATD 코스트로부터 계산된다:
weight1 = costMode2/(costMode1+ costMode2)
weight2 = 1 - weight1.
DIMD 모드는 인트라 예측 효율성을 향상시킬 수 있지만, 그 성능을 더욱 향상시킬 여지가 있다. 한편, 기존 DIMD 모드의 일부 부분도 효율적인 코덱 하드웨어 구현을 위해 단순화되거나 더 나은 코딩 효율성을 위해 개선될 필요가 있다. 또한 구현 복잡성과 코딩 효율성 이점 간의 균형(tradeoff)을 더욱 개선해야 한다.
VVC가 완료된 후 JVET 그룹은 VVC 이상의 압축 효율성을 계속해서 탐구했다. 향상된 압축 모델(enhanced compression model, ECM)이라는 하나의 참조 소프트웨어는 VVC 테스트 모델(VVC test model, VTM) 위에 여러 추가 코딩 도구를 통합하는 것에 의해 JVET에 의해 유지되었다. 현재 ECM에서는 인트라 모드에 따라 PDPC를 사용한다. DIMD 모드의 경우, 각 인트라 모드에 따라 PDPC가 사용된다. 도 11d에 도시된 바와 같이, PDPC 방식의 두 가지 서로 다른 위치가 DIMD 모드에서 각 인트라 모드에 대해 사용되고 적용된다. DIMD 모드에서 각도 모드가 사용되는 인트라 예측의 경우, 예측 융합 이전에 PDPC가 적용된다. DIMD 모드에서 DC 모드 또는 평면 모드를 사용하는 인트라 예측의 경우, 예측 융합 이후에 PDPC가 적용된다. 이러한 비통합된 설계는 표준화 관점에서 볼 때 최적이 아닐 수 있다.
유사하게, 두 가지 서로 다른 융합 방식 설계가 이용 가능하며 각각 DIMD와 TIMD에 적용된다. 각각의 서로 다른 융합 설계는 서로 다른 후보 및 가중치 계산과 연관된다. DIMD가 적용된 블록의 경우, 평면 모드와 가장 높은 HoG 막대 2개에 대응하는 2개의 IPM이 융합을 위해 선택된다. 그리고 평면(planar)의 가중치는 21/64(~1/3)로 고정된다. 그런 다음 43/64(~2/3)의 나머지 가중치가 HoG 막대의 진폭에 비례하여 두 HoG IPM 간에 공유된다. TIMD가 적용된 블록의 경우, SATD 코스트가 가장 작은 처음 2개의 모드를 포함하는 인트라 모드가 선택되고, 이 모드의 가중치가 그의 SATD 코스트로부터 계산된다. 이러한 비통합된 설계는 표준화 관점에서 볼 때 최적이 아닐 수 있다. 이외에도, 서로 다른 융합 방식을 통해 성능을 더욱 향상시킬 여지가 있다.
현재 ECM 설계에서, 도출된 인트라 모드가 DIMD에서 이미 사용되는지에 관계없이, DIMD로부터의 도출된 인트라 모드가 인트라 MPM(most probable mode)의 주요 리스트에 포함된다. 성능을 더욱 향상시킬 여지가 있다.
DIMD 및 TIMD의 기존 설계에서는 최적의 인트라 예측 모드 도출 및 하나의 현재 DIMD/TIMD 코딩 블록의 대응하는 예측 샘플 생성에 사용되는 파라미터를 계산하기 위해 다수의 부동 소수점 연산(덧셈, 곱셈 및 나눗셈 포함)이 포함된다. 특히 ECM의 기존 DIMD 및 TIMD 설계에는 다음과 같은 부동 소수점 연산이 적용된다.
1) DIMD에서 그레이디언트 방향의 도출: 앞서 설명한 것처럼 DIMD 모드에서는 현재 블록에 대해 위쪽 및 좌측의 이웃하는 재구성된 샘플(즉, 템플릿)에 대한 그레이디언트의 히스토그램(HoG) 분석에 기반하여, 2개의 최적의 인트라 예측 모드가 선택된다. 이러한 분석 중에, 각 템플릿 샘플의 그레이디언트 방향을 계산해야 하며 이는 기존 각도 인트라 예측 방향 중 하나로 추가로 변환된다. ECM에서는 각 템플릿 샘플에서 한 쌍의 부동 소수점 나눗셈 및 곱셈이 적용되어, 수평 및 수직 그레이디언트에 기반하여 이러한 배향을 계산한다. 즉,
이다.
2) DIMD에서 예측 샘플의 블렌딩: 기존 DIMD 설계에서는 그레이디언트 히스토그램 진폭이 가장 큰 각도 인트라 예측 모드와 그레이디언트 히스토그램 진폭이 두 번째로 큰 각도 인트라 예측 모드를 사용하여 생성된 예측 샘플을, 평면 모드의 예측 샘플과 블렌딩하여 현재 블록의 최종 예측 샘플을 형성한다. 또한 두 각도 인트라 예측의 가중치는 그의 그레이디언트의 히스토그램 진폭에 기반하여 결정되며, 여기서 다음과 같이 부동 소수점 덧셈, 곱셈 및 나눗셈의 한 그룹이 도입된다:
3) TIMD에서 예측 샘플의 블렌딩: 기존 TIMD 설계에서는 선택된 두 인트라 모드의 SATD가 충분히 근접할 때, 두 인트라 모드로부터 생성된 예측 샘플들을 함께 블렌딩하여 현재 블록의 최종 예측 샘플을 생성한다. 현재 설계에 따르면, 2개의 인트라 모드에 적용되는 가중치는 그의 개개의 SATD 값에 따라 계산되며, 여기서는 다음과 같이 한 쌍의 부동 소수점 곱셈과 나눗셈이 포함된다:
위의 부동 소수점 연산들 모두는 하드웨어와 소프트웨어 모두에서 실제 코덱 구현에 코스트가 많이 든다.
본 개시에서는, 이전에 지적된 문제를 해결하기 위해, DIMD 모드의 기존 설계를 단순화 및/또는 추가로 개선하는 방법이 제공된다. 일반적으로 본 개시에서 제안하는 기술의 주요 특징을 요약하면 다음과 같다.
1). 예측 융합 이전에 PDPC를 모든 인트라 예측에 적용하는 것에 의해 DIMD 모드에서 각도 모드와 DC/평면 모드 하에서 사용된 PDPC를 통합한다. 이러한 방법의 한 예가 도 12a에서와 같은 블록도에 도시되어 있다.
2). 예측 융합 이후에 PDPC를 모든 인트라 예측에 적용하는 것에 의해, DIMD 모드에서 각도 모드와 DC/평면 모드 하에서 사용된 PDPC를 통합한다. 이러한 방법의 한 예가 도 12b에서와 같은 블록도에 도시되어 있다.
3). DIMD 모드에서 모든 인트라 예측에 대해 PDPC를 디세이블하는 것에 의해, DIMD 모드에서 각도 모드와 DC/평면 모드 하에서 사용된 PDPC를 통합한다. 이러한 방법의 한 예가 도 12c에서와 같은 블록도에 도시되어 있다.
4). TIMD 또는 DIMD 모드에서 DC/평면 인트라 예측을 위해 PDPC를 디세이블하는 것에 의해, TIMD 또는 DIMD 모드에서 각도 모드 및 DC/평면 모드 하에서 사용된 PDPC를 통합한다. 예를 들어, DC 모드 또는 평면 모드가 적용된다고 결정하는 것에 응답하여, 인코더 또는 디코더는 도 11e에 도시된 바와 같이 TIMD에서 융합 이후 DC 또는 평면 모드에 대한 PDPC를 디세이블할 수 있다. 다른 예에서, DC 또는 평면 모드가 적용된다고 결정하는 것에 응답하여, 인코더 또는 디코더는 도 12c에 도시된 바와 같이 DIMD에서 융합 이전에 DC 또는 평면 모드에 대한 PDPC를 디세이블할 수 있다. 또 다른 예로서, 도 12d에서 평면 모드가 제1 인트라 예측 모드와 제2 인트라 예측 모드에 적용된다고 결정하는 것에 응답하여, 인코더 또는 디코더는 DIMD 모드에서 융합 이전에 평면 인트라 예측에 대한 PDPC를 디세이블할 수 있다.
5). TIMD 또는 DIMD 모드에서 각도 인트라 예측을 위해 PDPC를 디세이블하는 것에 의해, TIMD 또는 DIMD 모드에서 각도 모드 및 DC/평면 모드 하에서 사용된 PDPC를 통합한다. 예를 들어, 각도 모드가 제1 인트라 예측 모드와 제2 인트라 예측 모드에서 적용된다고 결정하는 것에 응답하여, 인코더 또는 디코더가 도 12c에 도시된 바와 같이 DIMD 모드에서 융합 이전에 각도 인트라 예측에 대한 PDPC를 디세이블할 수 있다. 다른 예에서, 각도 모드가 적용된다고 결정하는 것에 응답하여, 인코더 또는 디코더는 도 11f에 도시된 바와 같이 TIMD에서 융합 이전에 각도 인트라 예측에 대한 PDPC를 디세이블한다.
6). DIMD 모드 하에서 사용된 융합 방식을 TIMD 모드에 적용하는 것에 의해, DIMD 모드와 TIMD 모드 하에서 사용된 융합 방식을 통합한다.
7). TIMD 모드 하에서 사용된 융합 방식을 DIMD 모드에 적용하는 것에 의해, DIMD 모드와 TIMD 모드 하에서 사용된 융합 방식을 통합한다.
8). 융합 방식의 선택을 시그널링하는 것에 의해, DIMD 모드와 TIMD 모드 하에서 사용된 융합 방식을 통합한다.
9). DIMD로부터의 인트라 모드를 인트라 MPM(most probable mode)의 리스트로 도출하고, 도출된 인트라 모드가 DIMD에서 이미 사용되었는지를 고려한다.
10). TIMD로부터의 인트라 모드를 인트라 MPM(most probable mode)의 리스트로 도출한다.
제안된 방법은 인코더 또는 디코더에 의한 TIMD/MDIP와 같은 다른 인트라 예측 코딩 모드에도 적용될 수 있음에 유의한다. TIMD 모드에 적용된 또 다른 예의 세트가 도 11a ~ 도 11c의 블록도에 예시되어 있다. 도 11a는 TIMD의 융합 프로세스 이전에 모든 PDPC 프로세스를 적용한 예를 도시한다. 도 11b는 TIMD의 융합 프로세스 이후 모든 PDPC 프로세스를 적용한 예를 도시한다. 도 11c는 TIMD에서 모든 PDPC 프로세스를 디세이블하는 예를 도시한다.
제안된 방법은 CIIP(combined inter and intra prediction)와 같은 다른 조합된 인트라 및 인터 예측 코딩 모드에도 적용될 수 있다.
개시된 방법은 독립적으로 또는 공동으로 적용될 수 있다는 것을 유의한다.
DIMD에서 각도 모드와 DC/평면 모드에 사용되는 PDPC의 조화(harmonization)
본 개시의 하나 이상의 실시예에 따르면, DIMD 모드 하에서 각도 모드와 DC/평면 모드 모두에 동일한 PDPC 위치가 적용된다. 이 목표를 달성하기 위해 서로 다른 방법을 사용할 수 있다.
본 개시의 일 예에서, 도 12a에 예시된 바와 같이, DIMD 모드에서 예측 융합 이전에 PDPC 작동을 적용하는 것을 제안한다. 달리 말하면, 각 인트라 예측 모드는 DIMD 모드에서 예측 융합 이전의 인트라 모드에 기반하여 PDPC가 적용된다. 제안된 방법은 TIMD와 같은 다른 인트라 예측 코딩 모드에도 적용될 수 있다.
본 개시의 또 다른 예에서는 도 12b에 예시된 바와 같이 DIMD 모드에서 예측 융합 이후 PDPC 작동을 적용하는 것을 제안한다. 달리 말하면, 3개의 예측자의 가중치 조합은 특정 모드, 예를 들어 DC, 평면에 기반하여 PDPC가 적용된다. 일 예에서, 특정 모드는 평면 모드이고 평면 모드를 갖는 PDPC는 DIMD 모드에서 예측 융합 이후에 적용된다. 또 다른 예에서는 가장 높은 히스토그램 막대에 대응하는 IPM을 특정 모드로 선택한 다음 DIMD 모드에서 예측 융합 이후에 특정 모드를 갖는 PDPC를 적용한다. 또 다른 예에서, 두 번째로 높은 히스토그램 막대에 대응하는 IPM이 특정 모드로 선택되고 DIMD 모드에서 예측 융합 이후에 특정 모드를 갖는 PDPC가 적용된다.
본 개시의 또 다른 예에서는 DIMD 모드에서 PDPC 작동을 디세이블하는 것이 제안된다. 달리 말하면, 도 12c에 도시된 바와 같이 DIMD 모드에서는 PDPC 작동이 사용되지 않는다.
본 개시의 또 다른 예에서는 DIMD 모드에서 DC/평면 인트라 예측에 대한 PDPC 작동을 디세이블하는 것이 제안된다. 달리 말하면, PDPC 작동은 DIMD 모드에서 DC/평면 인트라 예측에 사용되지 않는다. 도 15에 예시된 바와 같은 하나의 예에서, 단계(1502)에서, 인코더 또는 디코더는 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 PDCP 작동에 기반하여 하나 이상의 비디오 블록의 예측 샘플 값을 결정할 수 있으며, PDPC 작동은 경계 참조 샘플의 조합에 기반하여 하나 이상의 인트라 예측의 결과를 수정한다. 단계(1504)에서, DC(direct current) 모드 또는 평면 모드가 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 인코더 또는 디코더는 인트라 예측 코딩 모드에서 PDPC 작동을 통합하기 위해 DC 모드 또는 평면 모드에 대한 PDPC 작동을 디세이블할 수 있다.
본 개시의 또 다른 예에서는, DIMD 모드에서 각도 인트라 예측에 대한 PDPC 작동을 디세이블하는 것이 제안된다. 달리 말하면, PDPC 작동은 DIMD 모드에서 각도 인트라 예측에 사용되지 않는다. 도 16에 예시된 바와 같은 하나의 예에서, 단계(1602)에서, 인코더 또는 디코더는 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 PDCP 작동에 기반하여 하나 이상의 비디오 블록의 예측 샘플 값을 결정할 수 있으며, PDPC 작동은 경계 참조 샘플의 조합에 기반하여 하나 이상의 인트라 예측의 결과를 수정한다. 단계(1604)에서, 각도 모드가 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 인코더 또는 디코더는 인트라 예측 코딩 모드에서 PDPC 작동을 통합하기 위해 각도 모드에 대한 PDPC 작동을 디세이블할 수 있다.
제안된 방법은 TIMD/MDIP와 같은 다른 인트라 예측 코딩 모드에도 적용될 수 있음을 유의한다.
DIMD 모드와 TIMD 모드에 사용되는 융합 방식의 조화
본 개시의 하나 이상의 실시예에 따르면, DIMD 모드와 TIMD 모드 모두에 동일한 융합 방식이 적용된다. 이 목표를 달성하기 위해 서로 다른 방법을 사용할 수 있다. 융합 방식은 DIMD 모드와 TIMD 모드에서 예측자의 가중 평균으로 적용된다.
본 개시의 일 예에서는 DIMD 모드 하에서 사용된 융합 방식을 TIMD 모드에 적용하는 것을 제안한다. 달리 말하면, TIMD 모드의 경우, SATD 코스트가 가장 작은 처음 두 모드와 평면 모드를 융합을 위한 예측자들로 선택하고 예측자들의 가중 평균을 계산한다. 그리고 평면의 가중치는 21/64(~1/3)로 고정된다. 그런 다음 43/64(~2/3)의 나머지 가중치는 SATD 코스트의 진폭에 비례하여 다른 두 모드 간에 공유된다.
본 개시의 또 다른 예에서는 TIMD 모드 하에서 사용된 융합 방식을 DIMD 모드에 적용하는 것을 제안한다. 달리 말하면, DIMD 모드의 경우, HoG 막대가 가장 큰 처음 두 모드가 융합을 위한 예측자들로 선택되고 이 모드들의 가중치가 HoG 막대의 진폭에 비례하여 HoG IPM로부터 계산된다. 히스토그램의 최대값이 0이면(그레이디언트 분석을 할 수 없거나 템플릿을 구성하는 영역이 편평함(flat)을 의미함), 하나의 디폴트 모드(예: DC, 평면)가 현재 블록에 대한 인트라 예측 모드로 선택된다.
본 개시의 또 다른 예에서는, TIMD 및/또는 DIMD 모드에서 융합 방식의 선택을 시그널링하는 것이 제안된다. 일 예에서, 주어진 CU에 대해, 블록이 DIMD 모드를 사용하는지의 여부를 지시하기 위해 플래그가 디코더에 시그널링된다. DIMD 모드를 사용하여 코딩되면, 예를 들어 위의 제1 융합 방법 또는 제2 융합 방법과 같이 어떤 융합 방식이 사용되는지를 지시하기 위해 하나의 플래그가 디코더에 추가로 시그널링된다.
MPM 리스트에 사용된 DIMD 모드를 수정
본 개시의 또 다른 측면에서는, 도출된 인트라 모드가 DIMD에서 이미 사용되고 있는지 여부에 따라, DIMD로부터의 인트라 모드를 인트라 MPM(most probable mode)의 리스트로 도출하는 것이 제안된다. 본 개시의 하나 이상의 실시예에 따르면, DIMD 모드에서 융합 방식을 사용하면, DIMD로부터 도출된 인트라 모드가 MPM 리스트에 대한 후보로 사용될 수 있다. 달리 말하면, DIMD 모드에서 융합 방식을 사용하지 않으면, DIMD로부터 도출된 인트라 모드를 MPM 리스트에 대한 후보로 사용할 수 없다.
본 개시의 다른 측면에서, DIMD의 이용 가능한 지향성 모드로부터 추가된 오프셋을 갖는 지향성 모드가 MPM 리스트에 대한 후보로서 사용될 수 있다. 하나의 구체적인 예에서, 오프셋은 1, -1, 2, -2, 3, -3, 4, -4일 수 있다.
도 17에 도시된 바와 같이, 일 예에서, 인코더 또는 디코더는 DIMD 모드에서 융합 방식이 적용되는지를 판정할 수 있으며, 여기서 융합 방식은 단계(1702)에서, DIMD 모드에서 예측자들의 가중 평균으로 적용된다. 단계(1704)에서, 인코더 또는 디코더는 DIMD 모드에서 이용 가능한 지향성 모드에 오프셋을 적용하여 오프셋 지향성 모드를 획득할 수 있다. 단계(1706)에서, 디코더는 융합 방식이 DIMD 모드에서 적용되는지에 기반하여, 오프셋 지향성 모드를 MPM(most probable mode)의 리스트에 추가할지를 판정할 수 있다.
한 가지 예를 들어, 22개의 엔트리가 있는 일반 MPM 리스트가 먼저 구성된 다음 이 일반 MPM 리스트의 처음 6개의 엔트리가 주요 MPM(primary MPM, PMPM) 리스트에 포함되고, 나머지 엔트리는 보조 MPM(secondary MPM, SMPM) 리스트를 형성한다. 일반 MPM 리스트의 제1 엔트리는 평면 모드이다. 나머지 엔트리는 좌측(L) 이웃 블록, 위(A) 이웃 블록, 좌측 아래(BL) 이웃 블록, 우측 위(AR) 이웃 블록, 좌측 위(AL) 이웃 블록의 인트라 모드들, DIMD 모드(파란색 부분), 이웃 블록의 처음 2개의 이용 가능한 지향성 모드와 DIMD 모드(빨간색 부분)으로부터의 추가된 오프셋을 갖는 지향성 모드, 및 디폴트 모드 {DC_IDX(1), VER_IDX(50), HOR_IDX(18), VER_IDX - 4(46), VER_IDX + 4(54), 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16}로 구성된다.
CU 블록이 수직 방향이면, 이웃 블록의 순서는 A, L, BL, AR, AL이며; 그렇지 않으면 L, A, BL, AR, AL이다.
이 예에서는 오프셋(파란색 부분)이 없는 DIMD 모드가 먼저 MPM 리스트에 추가된다. 리스트가 가득 차지 않으면, 오프셋(빨간색 부분)이 있는 DIMD 모드가 MPM 리스트에 추가된다.
MPM 리스트에 사용된 TIMD 모드
본 개시의 또 다른 측면에서, TIMD로부터의 인트라 모드를 인트라 MPM(most probable mode)의 리스트로 도출하는 것이 제안된다. 일반적으로 VVC에는 비지향성 모드(평면, DC)와 65개의 각도 모드를 포함하여 67개의 인트라 예측 모드가 있으며, 이는 비디오 및 이미지 콘텐츠에 일반적으로 존재하는 다양한 지향성 구조를 효율적으로 모델링한다. 본 개시의 하나 이상의 실시예에서, TIMD로부터 도출된 인트라 모드가 MPM 리스트에 대한 후보로서 사용될 수 있다. 일 예에서, DIMD로부터 도출된 인트라 모드는 MPM 리스트에 대한 후보로 사용될 수 없으며, TIMD로부터 도출된 인트라 모드는 MPM 리스트에 대한 후보로 사용될 수 있다.
본 개시의 또 다른 측면에서는, 도출된 인트라 모드가 TIMD에서 이미 사용되고 있는지 여부에 따라, TIMD로부터의 인트라 모드를 인트라 MPM(most probable mode)의 리스트로 도출하는 것이 제안된다. 본 개시의 하나 이상의 실시예에 따르면, TIMD 모드에서 융합 방식이 사용되면, TIMD로부터 도출된 인트라 모드가 MPM 리스트에 대한 후보로 사용될 수 있다. 달리 말하면, TIMD 모드에서 융합 방식을 사용하지 않으면, TIMD로부터 도출된 인트라 모드는 MPM 리스트에 대한 후보로 사용될 수 없다.
위의 방법은 주문형 집적 회로(application specific integrated circuit, ASIC), 디지털 신호 프로세서(digital signal processor, DSP), 디지털 신호 처리 디바이스(digital signal processing device, DSPD), 프로그래밍 가능한 논리 디바이스(programmable logic device, PLD), 필드 프로그래밍 가능 게이트 어레이(field programmable gate array, FPGA), 컨트롤러, 마이크로컨트롤러, 마이크로프로세서 또는 기타 전자 컴포넌트를 포함하는 하나 이상의 회로를 포함하는 장치를 사용하여 구현될 수 있다. 이 장치는 전술한 방법을 수행하기 위해 다른 하드웨어 또는 소프트웨어 컴포넌트와 조합하여 회로를 사용할 수 있다. 위에 개시된 각각의 모듈, 서브모듈, 유닛, 또는 서브유닛은 하나 이상의 회로를 사용하여 적어도 부분적으로 구현될 수 있다.
정수 연산으로 단순화된 DIMD 및 TIMD
앞서 지적한 바와 같이 DIMD 및 TIMD의 기존 설계에서는 소프트웨어와 하드웨어 모두에서 실제 코덱 구현에 허용되지 않는 DIMD/TIMD 파라미터를 도출하기 위해 다수의 부동 소수점 연산(예: 덧셈, 곱셈 및 나눗셈)이 포함된다. 본 절에서는 모든 부동 소수점 연산을 정수 덧셈과 곱셈으로 대체하여 DIMD와 TIMD의 구현을 단순화하기 위한 LUT(Look-up-table) 기반 방식을 제안한다. 일 예에서, 디코더는 DIMD 모드 또는 TIMD 모드에서 파라미터를 도출하기 위해 수행될 부동 소수점 나누기 연산을 식별하며; 디코더는 LUT(look-up-table)에 기반하여 부동 소수점 나누기 연산을 정수 덧셈 및 곱셈으로 대체함으로써, DIMD 또는 TIMD의 파라미터를 획득한다.
구체적으로, 도 13에 도시된 바와 같이, 다음과 같이 하나의 정수 L을 하나의 지수(exponent)와 K비트 유효 부분(지수 뒤에 K개의 최상위 비트(most significant bit, MSB)를 포함)으로 근사하는 것이 제안된다:
여기서, 는 0에서 -1 범위에 있는 MSB의 값이다. 이에 따라 정수 L로 나누는 것은 다음과 같이 쓸 수 있다:
1/L의 분수 부분을 M비트 정밀도로 양자화하면, 위 수식은 다음과 같다:
여기서 는 반올림 연산이다. 또한, 위 수식의 반올림 부분은 개의 엘리먼트를 포함하는 하나의 LUT로 표현될 수 있으며, 각 엘리먼트는 M비트 정밀도로 표현된다. 반면 의 값이 [0, -1] 범위에 있기 때문에, 반올림 부분은 항상 보다 작지 않다. 이러한 사전 지식이 주어지면, 각 엘리먼트의 제1 MSB(항상 1임)를 무시하고 나머지(M-1)비트 최하위 비트(least significant bit, LSB)를 저장하는 것에 의해 LUT 크기를 줄일 수 있으며, 즉, 각 엘리먼트는 (M-1) 비트만 필요하다. 이러한 설계에 기반하여, LUT 엘리먼트는 다음과 같이 계산될 수 있다:
여기서, 이다.
이에 따라 제안된 정수화 방식은 임의의 두 정수 사이의 나눗셈, 예를 들어, 는 다음과 같이 하나의 LUT 기반 정수 곱셈에 하나의 우측 시프트를 더한 것으로 대체될 수 있는 방식으로 달성될 수 있다:
여기서, 은 분자의 값을 나타내고 는 분모의 값을 지시한다. 본 개시의 일 예에서 분모는 정수값 L이고, 분자는 1이다.
실제로, LUT 크기(즉, K)와 파라미터 정밀도(즉, M)의 서로 다른 조합이 적용되어, 도출된 파라미터의 정확성과 구현 복잡성 사이의 다양한 균형을 달성할 수 있다. 예를 들어, 큰 LUT 크기와 더 높은 파라미터 정밀도를 사용하면 높은 파라미터 정확도를 유지하는 데 유리하지만, LUT를 유지하기 위한 스토리지 크기가 커지고 대응하는 정수 연산(예: 정수 곱셈, 덧셈 및 비트 단위 시프트(bit-wise shift))을 수행하기 위한 비트 심도가 증가한다는 코스트가 발생하게 된다. 이러한 고려에 기반하여, 하나의 구체적인 예에서는 K와 M의 값을 4로 설정하는 것이 제안된다. 이러한 설정에 기반하여 대응하는 LUT는 다음과 같이 도출된다:
DIMD 도출을 예로 사용하면, 위의 정수화 방식(K와 M이 모두 4로 설정된 경우)에서 각 템플릿 샘플의 그레이디언트 방향 도출은 다음과 같이 구현될 수 있다:
위의 예에 사용된 K와 M의 값은 단지 예시 목적으로 사용되었다. 실제로, K와 M의 서로 다른 값을 사용하는 제안된 LUT 기반 방식은 미래의 다른 코딩 기술 프로세스에서 부동 소수점 나눗셈을 정수 연산으로 변환하는 데 적용될 수 있다.
도 14는 사용자 인터페이스(1650)와 결합된 컴퓨팅 환경(1610)을 도시한다. 컴퓨팅 환경(1610)은 데이터 처리 서버의 일부일 수 있다. 컴퓨팅 환경(1610)은 프로세서(1620), 메모리(1630) 및 입력/출력(I/O) 인터페이스(1640)를 포함한다.
프로세서(1620)는 일반적으로 디스플레이, 데이터 획득, 데이터 통신 및 이미지 처리와 관련된 작동과 같은 컴퓨팅 환경(1610)의 전반적인 작동을 제어한다. 프로세서(1620)는 명령어를 실행하여 전술한 방법의 단계들 모두 또는 일부를 수행하는 하나 이상의 프로세서를 포함할 수 있다. 더욱이, 프로세서(1620)는 프로세서(1620)와 다른 컴포넌트 사이의 상호 작용을 용이하게 하는 하나 이상의 모듈을 포함할 수 있다. 프로세서는 중앙 처리 유닛(Central Processing Unit, CPU), 마이크로프로세서, 단일 칩 머신, 그래픽 처리 유닛(Graphical Processing Unit, GPU) 등일 수 있다.
메모리(1630)는 컴퓨팅 환경(1610)의 작동을 지원하기 위한 다양한 형태의 데이터를 저장하도록 구성된다. 메모리(1630)는 미리 결정된 소프트웨어(1632)를 포함할 수 있다. 그러한 데이터의 예에는 컴퓨팅 환경(1610)에서 작동되는 임의의 애플리케이션 또는 방법에 대한 명령어, 비디오 데이터세트, 이미지 데이터 등이 포함된다. 메모리(1630)는 SRAM(Static Random Access Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), EPROM(Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), ROM(Read-Only Memory), 자기 메모리, 플래시 메모리, 자기 또는 광 디스크 등과 같은 임의 유형의 휘발성 또는 비휘발성 메모리 디바이스 또는 이들의 조합을 사용하여 구현될 수 있다.
I/O 인터페이스(1640)는 키보드, 클릭 휠, 버튼 등과 같은 주변 인터페이스 모듈과 프로세서(1620) 사이의 인터페이스를 제공한다. 버튼은 홈 버튼, 스캔 시작 버튼, 스캔 중지 버튼을 포함할 수 있지만 이에 제한되지는 않는다. I/O 인터페이스(1640)는 인코더 및 디코더와 결합될 수 있다.
일 실시예에서, 전술한 방법들을 수행하기 위해 컴퓨팅 환경(1610)의 프로세서(1620)에 의해 실행 가능한, 예를 들어 메모리(1630)에서의 복수의 프로그램을 포함하는 컴퓨터가 판독 가능한 비일시적 저장 매체가 제공된다. 다르게는, 컴퓨터가 판독 가능한 비일시적 저장 매체가 예를 들어, 비디오 데이터를 디코딩하는 데 있어서 디코더(예를 들어, 도 3의 비디오 디코더(30))에 의해 사용하기 위해 위에서 설명된 인코딩 방법을 사용하여, 인코더(예를 들어, 도 2의 비디오 인코더(20))에 의해 생성된 인코딩된 비디오 정보(예를 들어, 하나 이상의 신택스 엘리먼트를 포함하는 비디오 정보)를 포함하는 비트스트림 또는 데이터 스트림을 저장할 수 있다. 컴퓨터가 판독 가능한 비일시적 저장 매체는, 예를 들어, ROM, RAM(Random Access Memory), CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 디바이스 등일 수 있다.
일 실시예에서, 하나 이상의 프로세서(예를 들어, 프로세서(1620)); 및 하나 이상의 프로세서에 의해 실행 가능한 복수의 프로그램이 저장되어 있는 컴퓨터가 판독 가능한 비일시적 저장 매체 또는 메모리(1630)를 포함하고, 하나 이상의 프로세서는 복수의 프로그램 실행 시, 위에 설명된 방법을 수행하도록 구성된다.
일 실시예에서, 위에서 설명된 방법을 수행하기 위해 컴퓨팅 환경(1610)의 프로세서(1620)에 의해 실행 가능한, 예를 들어 메모리(1630)에서의 복수의 프로그램을 포함하는 컴퓨터 프로그램 제품도 제공된다. 예를 들어, 컴퓨터 프로그램 제품은 컴퓨터가 판독 가능한 비일시적 저장 매체를 포함할 수 있다.
일 실시예에서, 컴퓨팅 환경(1610)은 위의 방법을 수행하기 위해, 하나 이상의 ASIC, DSP, DSPD(Digital Signal Processing Device), PLD(Programmable Logic Device), FPGA, GPU, 컨트롤러, 마이크로컨트롤러, 마이크로프로세서, 또는 기타 전자 컴포넌트로 구현될 수 있다.
본 개시의 설명은 예시의 목적으로 제시되었으며, 본 개시를 총망라하거나 제한하려는 의도는 아니다. 전술한 설명 및 관련 도면에 제시된 교시의 이점을 갖는 당업자에게는 많은 수정, 변형 및 대안적인 구현이 명백할 것이다.
달리 구체적으로 언급하지 않는 한, 본 개시에 따른 방법의 단계들의 순서는 예시일 뿐이며, 본 개시에 따른 방법의 단계들은 위에서 구체적으로 설명된 순서에 한정되지 않으며, 실제적인 조건에 따라 변경될 수 있다. 또한, 본 개시에 따른 방법의 단계 중 적어도 하나는 실제 요건에 따라 조정, 결합 또는 삭제될 수 있다.
본 개시의 원리를 설명하고, 당업자가 다양한 구현에 대한 개시를 이해하고 특정 용도에 적합한 다양한 수정을 통해 기본 원리 및 다양한 구현을 가장 잘 활용할 수 있도록 하기 위해 예를 선택하고 설명했다. 그러므로, 본 개시의 범위는 개시된 구현의 특정 예에 제한되어서는 안 되며, 수정 및 다른 구현도 본 개시의 범위 내에 포함되도록 의도된다는 것이 이해되어야 한다.

Claims (22)

  1. 인트라 예측 코딩 모드를 이용한 비디오 디코딩 방법으로서,
    디코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 상기 PDPC 작동에 기반하여 상기 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 - 상기 PDPC 작동은 경계 참조 샘플의 조합에 기반하여 상기 하나 이상의 인트라 예측의 결과를 수정함 -; 및
    DC(direct current) 모드 또는 평면 모드가 상기 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 상기 디코더가, 상기 인트라 예측 코딩 모드에서 상기 PDPC 작동을 통합하기 위해 상기 DC 모드 또는 상기 평면 모드에 대한 상기 PDPC 작동을 디세이블하는(disable) 단계
    를 포함하는 비디오 디코딩 방법.
  2. 제1항에 있어서,
    상기 인트라 예측 코딩 모드는 템플릿 기반 인트라 모드 도출(template-based intra mode derivation, TIMD) 모드, 디코더측 인트라 모드 도출(decoder-side intra mode derivation, DIMD) 모드, 또는 다중 방향 인트라 예측(multi-direction intra prediction, MDIP) 모드를 포함하는, 비디오 디코딩 방법.
  3. 제2항에 있어서,
    상기 디코더는 상기 TIMD 모드에서 융합(fusion) 이후에 상기 DC 모드 또는 상기 평면 모드에 대한 상기 PDPC 작동을 디세이블하는, 비디오 디코딩 방법.
  4. 제2항에 있어서,
    상기 디코더는 상기 DIMD 모드에서 융합 이전에 상기 평면 모드에 대한 상기 PDPC 작동을 디세이블하는, 비디오 디코딩 방법.
  5. 인트라 예측 코딩 모드를 이용한 비디오 디코딩 방법으로서,
    디코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 상기 PDPC 작동에 기반하여 상기 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 모드 - 상기 PDPC 작동은 경계 참조 샘플의 조합에 기반하여 상기 하나 이상의 인트라 예측의 결과를 수정함 -; 및
    각도 모드가 상기 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 상기 디코더가, 상기 인트라 예측 코딩 모드에서 상기 PDPC 작동을 통합하기 위해 상기 각도 모드에 대한 상기 PDPC 작동을 디세이블하는 단계
    를 포함하는 비디오 디코딩 방법.
  6. 제5항에 있어서,
    상기 인트라 예측 코딩 모드는 템플릿 기반 인트라 모드 도출(template-based intra mode derivation, TIMD) 모드, 디코더측 인트라 모드 도출(decoder-side intra mode derivation, DIMD) 모드, 또는 다중 방향 인트라 예측(multi-direction intra prediction, MDIP) 모드를 포함하는, 비디오 디코딩 방법.
  7. 제6항에 있어서,
    상기 디코더는 상기 DIMD 모드에서 융합 이전에 상기 각도 모드에 대한 상기 PDPC 작동을 디세이블하는, 비디오 디코딩 방법.
  8. 디코더측 인트라 모드 도출(decoder-side intra mode derivation, DIMD)을 이용한 비디오 디코딩 방법으로서,
    디코더가, 융합 방식이 상기 DIMD 모드에서 적용되는지를 판정하는 단계 - 상기 융합 방식은 상기 DIMD 모드에서 예측자의 가중 평균으로 적용됨 -;
    상기 디코더가, 상기 DIMD 모드에서 이용 가능한 지향성 모드에 오프셋을 적용하여 오프셋 지향성 모드를 획득하는 단계; 및
    상기 디코더가, 상기 융합 방식이 상기 DIMD 모드에서 적용되는지에 기반하여, 상기 오프셋 지향성 모드를 MPM(most probable mode)의 리스트에 추가할지를 판정하는 단계
    를 포함하는 비디오 디코딩 방법.
  9. 제8항에 있어서,
    상기 이용 가능한 지향성 모드에 적용되는 오프셋은 다음의 오프셋: 1, -1, 2, -2, 3, -3, 4, -4로부터 선택된 하나 이상의 오프셋을 포함하는, 비디오 디코딩 방법.
  10. 제8항에 있어서,
    상기 융합 방식이 상기 DIMD 모드에서 적용되는지에 기반하여, 상기 오프셋 지향성 모드를 MPM의 리스트에 추가할지를 판정하는 단계는,
    상기 융합 방식이 상기 DIMD 모드에서 적용되고 상기 MPM의 리스트가 비-오프셋 지향성 모드로 차 있지 않다고 결정하는 것에 응답하여, 상기 오프셋 지향성 모드를 상기 MPM의 리스트에 추가하는 단계
    를 더 포함하는, 비디오 디코딩 방법.
  11. 인트라 예측 코딩 모드를 이용한 비디오 코딩 방법으로서,
    인코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 상기 PDPC 작동에 기반하여 상기 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 - 상기 PDPC 작동은 경계 참조 샘플의 조합에 기반하여 상기 하나 이상의 인트라 예측의 결과를 수정함 -; 및
    DC(direct current) 모드 또는 평면 모드가 상기 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 상기 인코더가, 상기 인트라 예측 코딩 모드에서 상기 PDPC 작동을 통합하기 위해 상기 DC 모드 또는 상기 평면 모드에 대한 상기 PDPC 작동을 디세이블하는 단계
    를 포함하는 비디오 코딩 방법.
  12. 제11항에 있어서,
    상기 인트라 예측 코딩 모드는 템플릿 기반 인트라 모드 도출(template-based intra mode derivation, TIMD) 모드, 디코더측 인트라 모드 도출(decoder-side intra mode derivation, DIMD) 모드, 또는 다중 방향 인트라 예측(multi-direction intra prediction, MDIP) 모드를 포함하는, 비디오 코딩 방법.
  13. 제12항에 있어서,
    상기 인코더는 상기 TIMD 모드에서 융합 이후에 상기 DC 모드 또는 상기 평면 모드에 대한 상기 PDPC 작동을 디세이블하는, 비디오 코딩 방법.
  14. 제12항에 있어서,
    상기 인코더는 상기 DIMD 모드에서 융합 이전에 상기 평면 모드에 대한 상기 PDPC 작동을 디세이블하는, 비디오 코딩 방법.
  15. 인트라 예측 코딩 모드를 이용한 비디오 코딩 방법으로서,
    인코더가, 인트라 예측 코딩 모드에서 위치 의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 작동을 통합하기 위해 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에 대한 상기 PDPC 작동에 기반하여 상기 하나 이상의 비디오 블록의 예측 샘플 값을 결정하는 단계 모드 - 상기 PDPC 작동은 경계 참조 샘플의 조합에 기반하여 상기 하나 이상의 인트라 예측의 결과를 수정함 -; 및
    각도 모드가 상기 하나 이상의 비디오 블록의 하나 이상의 인트라 예측에서 적용된다는 결정에 응답하여, 상기 인코더가, 상기 인트라 예측 코딩 모드에서 상기 PDPC 작동을 통합하기 위해 상기 각도 모드에 대한 상기 PDPC 작동을 디세이블하는 단계
    를 포함하는 비디오 코딩 방법.
  16. 제15항에 있어서,
    상기 인트라 예측 코딩 모드는 템플릿 기반 인트라 모드 도출(template-based intra mode derivation, TIMD) 모드, 디코더측 인트라 모드 도출(decoder-side intra mode derivation, DIMD) 모드, 또는 다중 방향 인트라 예측(multi-direction intra prediction, MDIP) 모드를 포함하는, 비디오 코딩 방법.
  17. 제16항에 있어서,
    상기 인코더는 상기 DIMD 모드에서 융합 이전에 상기 각도 모드에 대한 상기 PDPC 작동을 디세이블하는, 비디오 코딩 방법.
  18. 디코더측 인트라 모드 도출(decoder-side intra mode derivation, DIMD)을 이용한 비디오 코딩 방법으로서,
    인코더가, 융합 방식이 상기 DIMD 모드에서 적용되는지를 판정하는 단계 - 상기 융합 방식은 상기 DIMD 모드에서 예측자의 가중 평균으로 적용됨 -;
    상기 인코더가, 상기 DIMD 모드에서 이용 가능한 지향성 모드에 오프셋을 적용하여 오프셋 지향성 모드를 획득하는 단계; 및
    상기 인코더가, 상기 융합 방식이 상기 DIMD 모드에서 적용되는지에 기반하여, 상기 오프셋 지향성 모드를 MPM(most probable mode)의 리스트에 추가할지를 판정하는 단계
    를 포함하는 비디오 코딩 방법.
  19. 제18항에 있어서,
    상기 이용 가능한 지향성 모드에 적용되는 오프셋은 다음의 오프셋: 1, -1, 2, -2, 3, -3, 4, -4로부터 선택된 하나 이상의 오프셋을 포함하는, 비디오 코딩 방법.
  20. 제18항에 있어서,
    상기 융합 방식이 상기 DIMD 모드에서 적용되는지에 기반하여, 상기 오프셋 지향성 모드를 MPM의 리스트에 추가할지를 판정하는 단계는,
    상기 융합 방식이 상기 DIMD 모드에서 적용되고 상기 MPM의 리스트가 비-오프셋 지향성 모드로 차 있지 않다고 결정하는 것에 응답하여, 상기 오프셋 지향성 모드를 상기 MPM의 리스트에 추가하는 단계
    를 더 포함하는, 비디오 코딩 방법.
  21. 장치로서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행 가능한 명령어를 저장하도록 구성된 메모리
    를 포함하고,
    상기 하나 이상의 프로세서는 상기 명령어 실행 시 제1항 내지 제20항 중 어느 한 항의 방법을 수행하도록 구성되는, 장치.
  22. 컴퓨터가 실행 가능한 명령어를 저장하는, 컴퓨터가 판독 가능한 비일시적 저장 매체로서,
    상기 컴퓨터가 실행 가능한 명령어는 하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 상기 하나 이상의 컴퓨터 프로세서가 제1항 내지 제20항 중 어느 한 항의 방법을 수행하게 하는, 컴퓨터가 판독 가능한 비일시적 저장 매체.
KR1020247010016A 2021-09-29 2022-09-29 디코더측 인트라 모드 도출을 위한 방법 및 디바이스 KR20240049364A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163250186P 2021-09-29 2021-09-29
US63/250,186 2021-09-29
PCT/US2022/045279 WO2023055968A1 (en) 2021-09-29 2022-09-29 Methods and devices for decoder-side intra mode derivation

Publications (1)

Publication Number Publication Date
KR20240049364A true KR20240049364A (ko) 2024-04-16

Family

ID=85783527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247010016A KR20240049364A (ko) 2021-09-29 2022-09-29 디코더측 인트라 모드 도출을 위한 방법 및 디바이스

Country Status (3)

Country Link
KR (1) KR20240049364A (ko)
CN (1) CN118044187A (ko)
WO (1) WO2023055968A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3453174A1 (en) * 2016-05-06 2019-03-13 VID SCALE, Inc. Method and system for decoder-side intra mode derivation for block-based video coding
US10674165B2 (en) * 2016-12-21 2020-06-02 Arris Enterprises Llc Constrained position dependent intra prediction combination (PDPC)
BR112021003679A2 (pt) * 2018-08-27 2021-05-18 Huawei Technologies Co., Ltd. método, codificador e decodificador para predição intra
WO2021037078A1 (en) * 2019-08-26 2021-03-04 Beijing Bytedance Network Technology Co., Ltd. Extensions of intra coding modes in video coding

Also Published As

Publication number Publication date
WO2023055968A1 (en) 2023-04-06
CN118044187A (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
EP3459245B1 (en) Confusion of multiple filters in adaptive loop filtering in video coding
CN110463202B (zh) 一种用于解码视频数据的方法、装置和设备
CN107211154B (zh) 用于译码视频数据的方法和装置以及计算机可读存储介质
EP2774360A1 (en) Differential pulse code modulation intra prediction for high efficiency video coding
CN113924776A (zh) 使用不同的色度格式的具有未经滤波的参考样本的视频译码
JP2022159392A (ja) ビデオ符号化のための位置依存の空間変化変換
WO2023009459A1 (en) Video coding using multi-direction intra prediction
WO2023023197A1 (en) Methods and devices for decoder-side intra mode derivation
KR20240049364A (ko) 디코더측 인트라 모드 도출을 위한 방법 및 디바이스
WO2023129744A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023114155A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023141238A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023091688A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023164245A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023049292A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023034152A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023158765A1 (en) Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order
WO2023200907A1 (en) Methods and devices for geometric partitioning mode with adaptive blending
WO2023154574A1 (en) Methods and devices for geometric partitioning mode with adaptive blending
WO2023081322A1 (en) Intra prediction modes signaling
WO2023141338A1 (en) Methods and devices for geometric partitioning mode with split modes reordering
WO2023034629A1 (en) Intra prediction modes signaling
CN117730531A (zh) 用于解码器侧帧内模式推导的方法和设备
CN118077196A (en) Method and apparatus for decoder-side intra mode derivation
WO2023154359A1 (en) Methods and devices for multi-hypothesis-based prediction

Legal Events

Date Code Title Description
A201 Request for examination