KR20240051257A - 디코더 측 인트라 모드 도출을 위한 방법 및 장치 - Google Patents

디코더 측 인트라 모드 도출을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20240051257A
KR20240051257A KR1020247010739A KR20247010739A KR20240051257A KR 20240051257 A KR20240051257 A KR 20240051257A KR 1020247010739 A KR1020247010739 A KR 1020247010739A KR 20247010739 A KR20247010739 A KR 20247010739A KR 20240051257 A KR20240051257 A KR 20240051257A
Authority
KR
South Korea
Prior art keywords
mode
intra
video
dimd
block
Prior art date
Application number
KR1020247010739A
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 KR20240051257A publication Critical patent/KR20240051257A/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/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
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

Landscapes

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

Abstract

비디오 디코딩을 위한 방법, 장치 및 비일시적 컴퓨터 판독 가능 저장 매체가 제공된다. 하나의 방법에서, 디코더는 디코더 측 인트라 모드 도출(DIMD) 모드 및 템플릿 기반 인트라 모드 도출(TIMD) 모드에서 적용되는 융합 방식을 결정하고, 융합 방식는 DIMD 모드 및 TIMD 모드에서 예측자의 가중치 평균으로 적용된다.

Description

디코더 측 인트라 모드 도출을 위한 방법 및 장치
본 출원은 2021년 8월 30일에 제출된 가출원 번호 63/238,774에 근거하여 우선권을 주장하며, 전체 내용은 모든 목적을 위해 본원에 참조로 통합되어 있다.
본 발명은 비디오 코딩 및 압축과 관련이 있다. 보다 구체적으로, 본 발명은 디코더 측 인트라 모드 도출(decoder-side intra mode derivation, DIMD)과 관련이 있다.
디지털 비디오는 디지털 텔레비전, 노트북 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, 디지털 카메라, 디지털 녹화 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 스마트폰, 화상 회의 장치, 비디오 스트리밍 장치 등과 같은 다양한 전자 장치에서 지원된다. 이러한 전자 기기는 통신 네트워크를 통해 디지털 비디오 데이터를 송수신하거나 달리 통신하고, 디지털 비디오 데이터를 저장 장치에 저장한다. 통신 네트워크의 제한된 대역폭 용량과 저장 장치의 제한된 메모리 리소스로 인해, 비디오 코딩이 비디오 데이터가 통신 또는 저장되기 전에 하나 이상의 비디오 코딩 표준에 따라 압축하는 데 사용될 수 있다. 예를 들어, 비디오 코딩 표준에는 다목적 비디오 코딩(VVC), 공동 탐색 테스트 모델(JEM), 고효율 비디오 코딩(HEVC/H.265), 고급 비디오 코딩(AVC/H.264), 이동 사진 전문가 그룹(MPEG) 코딩 등이 포함된다. 비디오 코딩은 일반적으로 비디오 데이터에 내재된 중복성을 활용하는 예측 방법(예: 인터 예측(inter-prediction), 인트라 예측(intra-prediction) 등)을 활용한다. 비디오 코딩은 비디오 품질 저하를 방지하거나 최소화하면서 더 낮은 비트 전송률을 사용하는 형태로 비디오 데이터를 압축하는 것을 목표로 한다.
본 발명의 예는 인트라 예측을 사용하는 비디오 코딩 방법 및 장치를 제공한다.
본 발명의 일 측면에 따르면, 비디오 디코딩 방법이 제공된다. 방법은 디코더에 의해 디코더 측 인트라 모드 도출(decoder-side intra mode derivation, DIMD) 모드 및 템플릿 기반 인트라 모드 도출(template-based intra mode derivation, TIMD) 모드에서 적용되는 융합 방식을 결정하는 단계를 포함할 수 있으며, 융합 방식은 DIMD 모드와 TIMD 모드에서 예측 변수의 가중치 평균으로 적용된다.
본 발명의 제2 측면에 따르면, 디코더측 인트라 모드 도출(DIMD)를 이용한 비디오 디코딩 방법이 제공된다. 방법은, 디코더에 의해, DIMD 모드에서 융합 방식이 적용되는지 여부를 결정하는 단계; 및 디코더에 의해, 인트라 모드를 DIMD 모드로부터 인트라 모드 확률 모드(MPMs)의 목록으로 도출할지 여부를 결정하는 단계를 포함할 수 있으며, 융합 방식은 DIMD 모드에서 예측 변수의 가중치 평균으로 적용된다.
본 발명의 제3 측면에 따르면, 템플릿 기반 인트라 모드 도출(TIMD)을 이용한 비디오 디코딩 방법이 제공된다. 방법은, 디코더에 의해, 인트라 모드를 TIMD 모드로부터 인트라 모드 확률 모드(MPMs)의 목록으로 도출할지 여부를 결정하는 단계를 포함할 수 있다.
일반적인 설명 및 이하의 상세한 설명은 예시적이고 설명적일 뿐이며 본 발명을 제한하려는 의도가 아니라는 것이 이해되어야 한다.
본원에 포함되고 본원의 일부를 구성하는 첨부 도면은 본 발명에 부합하는 실시예를 도시하며, 설명과 함께 본 발명의 원리를 설명하는 역할을 한다.
도 1은 본 발명의 일부 실시예에 따라 비디오 블록을 인코딩 및 디코딩하기 위한 예시적인 시스템을 도시하는 블록 다이어그램이다.
도 2는 본 발명의 일부 실시예에 따른 예시적인 비디오 인코더를 도시하는 블록 다이어그램이다.
도 3은 본 발명의 일부 실시예에 따른 예시적인 비디오 디코더를 예시하는 블록 다이어그램이다.
도 4a 내지 도 4e는 본 발명의 일부 실시예에 따라 프레임이 상이한 크기 및 형태의 복수의 비디오 블록으로 재귀적으로 분할되는 방법을 도시하는 블록 다이어그램이다.
도 5a는 본 발명의 일부 실시예에 따라 예측 모드에서 적용되는 PDPC에 의해 사용되는 샘플의 정의를 도시한다.
도 5b는 본 발명의 일부 실시예에 따라 예측 모드에서 적용되는 PDPC에 의해 사용되는 샘플의 정의를 도시한다.
도 5c는 본 발명의 일부 실시예에 따라 예측 모드에서 적용되는 PDPC에 의해 사용되는 샘플의 정의를 도시한다.
도 5d는 본 발명의 일부 실시예에 따라 예측 모드에서 적용되는 PDPC에 의해 사용되는 샘플의 정의를 도시한다.
도 6은 본 발명의 일부 구현에 따라 허용되는 GPM 파티션의 예를 도시한다.
도 7은 본 발명의 일부 실시예에 따라 그라디언트 분석이 수행되는 선택된 픽셀의 예를 도시한다.
도 8은 본 발명의 일부 구현에 따른 컨볼루션 프로세스(convolution process)를 도시한다.
도 9는 본 발명의 일부 구현에 따라 두 개의 HoG 모드와 하나의 평면 모드의 가중치 평균에 의한 예측 융합을 도시한다.
도 10은 본 발명의 일부 구현에 따라 TIMD에 사용되는 템플릿 및 그 참조 샘플을 도시한다.
도 11a는 본 발명의 일부 실시예에 따른 TIMD를 이용한 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
도 11b는 본 발명의 일부 실시예에 따른 TIMD를 이용한 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
도 11c는 본 발명의 일부 실시예에 따른 TIMD를 이용한 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
도 12a는 본 발명의 일부 실시예에 따른 DIMD를 이용한 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
도 12b는 본 발명의 일부 실시예에 따른 DIMD를 이용한 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
도 12c는 본 발명의 일부 실시예에 따른 DIMD를 이용한 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
도 13은 본 발명의 일부 실시예에 따라 사용자 인터페이스와 결합된 컴퓨팅 환경을 도시하는 블록 다이어그램이다.
도 14는 본 발명의 일부 실시예에 따른 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
도 15는 본 발명의 일부 실시예에 따른 DIMD를 이용한 비디오 디코딩 프로세스를 나타내는 블록 다이어그램이다.
이제 첨부된 도면에 예시적인 실시예를 상세히 참조할 것이며, 그 예는 첨부된 도면에 설명되어 있다. 다음의 설명은 첨부된 도면을 참조하며, 다른 도면에서 동일한 번호가 달리 표시되지 않는 한 동일하거나 유사한 요소를 나타낸다. 다음의 실시예 설명에 기재된 실시예들이 본 발명과 일치하는 모든 구현을 나타내는 것은 아니다. 대신, 이들은 첨부된 청구범위에 기재된 바와 같이 본 발명과 관련된 측면과 일치하는 장치 및 방법의 예시일 뿐이다.
본 발명에서 사용된 용어는 특정 실시예를 설명하기 위한 것이며, 본 발명을 제한하기 위한 것이 아니다. 본 발명 및 첨부된 청구항에서 사용된 바와 같이, 문맥에서 달리 명시되지 않는 한, 단수 형태인 "a", "an" 및 "the"는 복수 형태도 포함하도록 의도되었다. 또한 본원에 사용된 "및/또는"이라는 용어는 관련 나열된 항목 중 하나 이상의 가능한 조합 중 일부 또는 전부를 의미하고 포함하도록 의도된 것으로 이해되어야 한다.
본원에서 "1차," "2차," "3차" 등의 용어가 다양한 정보를 설명하기 위해 사용될 수 있지만, 해당 정보가 이러한 용어에 의해 제한되어서는 안 된다는 점을 이해해야 한다. 이러한 용어는 한 범주의 정보를 다른 범주의 정보와 구별하기 위한 용도로만 사용된다. 예를 들어, 본 발명의 범위를 벗어나지 않는 범위 내에서, 제1 정보는 제2 정보로 지칭될 수 있으며, 유사하게 제2 정보도 제1 정보로 지칭될 수 있다. 본원에서 사용된 "만약"이라는 용어는 문맥에 따라 "~할 경우" 또는 "~시에" 또는 "판단에 따라"를 의미하는 것으로 이해될 수 있다.
동영상 데이터를 압축하기 위해 다양한 동영상 코딩 기술이 사용될 수 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준에 따라 수행된다. 예를 들어, 오늘날 잘 알려진 비디오 코딩 표준으로는 ISO/IEC MPEG와 ITU-T VECG가 공동으로 개발한 다목적 비디오 코딩(VVC), 고효율 비디오 코딩(HEVC, H.265 또는 MPEG-H 파트2라고도 함) 및 고급 비디오 코딩(AVC, H.264 또는 MPEG-4 파트10이라고도 함)이 있다. AOM미디어 비디오 1(AV1)은 이전 표준인 VP9의 후속으로 오픈 미디어를 위한 연합(AOM)에서 개발했다. 디지털 오디오 및 디지털 비디오 압축 표준을 지칭하는 오디오 비디오 코딩(AVS)은 중국의 오디오 및 비디오 코딩 표준 작업 그룹에서 개발한 또 다른 비디오 압축 표준 시리즈이다. 기존의 비디오 코딩 표준은 대부분 유명한 하이브리드 비디오 코딩 프레임워크, 즉 블록 기반 예측 방법(예: 인터 예측, 인트라 예측)을 사용하여 비디오 이미지 또는 시퀀스에 존재하는 중복을 줄이고 변환 코딩을 사용하여 예측 오류의 에너지를 감소시키는 방식으로 구축되어 있다. 비디오 코딩 기술의 중요한 목표는 비디오 품질 저하를 방지하거나 최소화하면서 더 낮은 비트 전송률을 사용하는 형태로 비디오 데이터를 압축하는 것이다.
1세대 AVS 표준에는 중국 국가 표준인 "정보 기술, 고급 오디오 비디오 코딩 파트 2: 비디오"(AVS1이라고 함)와 "정보 기술, 고급 오디오 비디오 코딩 파트 16: 라디오 텔레비전 비디오"(AVS+라고 함)가 포함된다. MPEG-2 표준에 비해 동일한 체감 품질에서 약 50%의 비트 전송률 절감을 제공할 수 있다. AVS1 표준 비디오 부분은 2006년 2월에 중국 국가 표준으로 공표되었다. 2세대 AVS 표준에는 중국 국가 표준인 "정보 기술, 효율적인 멀티미디어 코딩"(AVS2로 알려짐) 시리즈가 포함되어 있으며, 이는 주로 엑스트라 HD TV 프로그램 전송을 목표로 한다. AVS2의 코딩 효율은 AVS+의 두 배이다. 2016년 5월, AVS2는 중국 국가 표준으로 발표되었다. 한편, AVS2 표준 비디오 부분은 국제 전기 전자 기술자 협회(IEEE)에서 애플리케이션을 위한 국제 표준 중 하나로 제출되었다. AVS3 표준은 최신 국제 표준인 HEVC의 코딩 효율을 능가하는 것을 목표로 하는 UHD 비디오 애플리케이션을 위한 차세대 비디오 코딩 표준 중 하나이다. 2019년 3월, 제68차 AVS 회의에서 HEVC 표준 대비 약 30%의 비트레이트 절감을 제공하는 AVS3-P2 기준이 완성되었다. 현재 AVS 그룹은 AVS3 표준의 레퍼런스 구현을 시연하기 위해 고성능 모델(HPM)이라는 하나의 레퍼런스 소프트웨어를 유지 관리하고 있다.
도 1은 본 발명의 일부 실시예에 따라 비디오 블록을 병렬로 인코딩 및 디코딩하기 위한 예시적인 시스템(10)을 예시하는 블록 다이어그램이다. 도 1에 도시된 바와 같이, 시스템(10)은 나중에 목적지 장치(14)에 의해 디코딩될 비디오 데이터를 생성 및 인코딩하는 소스 장치(12)를 포함한다. 소스 장치(12) 및 목적지 장치(14)는 데스크톱 또는 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 셋톱 박스, 디지털 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 장치 등을 포함하는 다양한 전자 장치 중 임의의 것을 포함할 수 있다. 일부 실시예에서, 소스 장치(12) 및 목적지 장치(14)는 무선 통신 기능을 구비한다.
일부 실시예에서, 목적지 장치(14)는 링크(16)를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수 있다. 링크(16)는 인코딩된 비디오 데이터를 소스 장치(12)로부터 목적지 장치(14)로 이동시킬 수 있는 임의의 유형의 통신 매체 또는 장치를 포함할 수 있다. 일 실시예에서, 링크(16)는 소스 장치(12)가 인코딩된 비디오 데이터를 실시간으로 목적지 장치(14)로 직접 전송할 수 있도록 하는 통신 매체를 포함할 수 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되어 목적지 장치(14)로 전송될 수 있다. 통신 매체는 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(12)로부터 목적지 장치(14)로의 통신을 용이하게 하는 데 유용할 수 있는 기타 장비를 포함할 수 있다.
일부 다른 실시예에서, 인코딩된 비디오 데이터는 출력 인터페이스(22)로부터 저장 장치(32)로 전송될 수 있다. 이어서, 저장 장치(32) 내의 인코딩된 비디오 데이터는 입력 인터페이스(28)를 통해 목적지 장치(14)에 의해 액세스될 수 있다. 저장 장치(32)는 하드 드라이브, 블루레이 디스크, 디지털 다목적 디스크(DVD), 컴팩트 디스크 판독 전용 메모리(CD-ROM), 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체와 같은 다양한 분산 또는 로컬 액세스 데이터 저장 매체 중 임의의 것을 포함할 수 있다. 추가 예에서, 저장 장치(32)는 소스 장치(12)에 의해 생성된 인코딩된 비디오 데이터를 보유할 수 있는 파일 서버 또는 다른 중간 저장 장치에 대응할 수 있다. 목적지 장치(14)는 스트리밍 또는 다운로드를 통해 저장 장치(32)로부터 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 장치(14)로 전송할 수 있는 임의의 유형의 컴퓨터일 수 있다. 예시적인 파일 서버에는 웹 서버(예를 들어, 웹사이트용), 파일 전송 프로토콜(FTP) 서버, 네트워크 연결 스토리지(NAS) 장치 또는 로컬 디스크 드라이브가 포함된다. 목적지 장치(14)는 무선 채널(예를 들어, 무선 충실도(Wi-Fi) 연결), 유선 연결(예를 들어, 디지털 가입자 회선(DSL), 케이블 모뎀 등), 또는 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 이 둘의 조합을 포함하는 임의의 표준 데이터 연결을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 저장 장치(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)에 제공되는 인코딩된 비디오 데이터는 비디오 인코더(20)에 의해 생성된 다양한 구문 요소를 포함하여 비디오 디코더(30)가 비디오 데이터를 디코딩하는 데 사용할 수 있다. 이러한 구문 요소는 통신 매체 상에서 전송되거나, 저장 매체 상에 저장되거나, 파일 서버 상에 저장되는 인코딩된 비디오 데이터 내에 포함될 수 있다.
일부 실시예에서, 목적지 장치(14)는 디스플레이 장치(34)를 포함할 수 있으며, 이는 통합 디스플레이 장치 및 목적지 장치(14)와 통신하도록 구성되는 외부 디스플레이 장치일 수 있다. 디스플레이 장치(34)는 디코딩된 비디오 데이터를 사용자에게 표시하며, 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이 또는 다른 유형의 디스플레이 장치와 같은 다양한 디스플레이 장치 중 어느 하나를 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 독점적 또는 산업 표준, 예를 들어, VVC, HEVC, MPEG-4, 파트 10, AVC 또는 그러한 표준의 확장에 따라 작동할 수 있다. 본원은 특정 비디오 인코딩/디코딩 표준에 제한되지 않으며, 다른 비디오 인코딩/디코딩 표준에 적용될 수 있음을 이해해야 한다. 소스 장치(12)의 비디오 인코더(20)는 이러한 현재 또는 미래의 표준 중 어느 하나에 따라 비디오 데이터를 인코딩하도록 구성될 수 있는 것이 일반적으로 고려된다. 마찬가지로, 목적지 장치(14)의 비디오 디코더(30)는 이러한 현재 또는 미래의 표준 중 어느 하나에 따라 비디오 데이터를 디코딩하도록 구성될 수 있다는 것도 일반적으로 고려된다.
비디오 인코더(20) 및 비디오 디코더(30)는 각각 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(DSP), 애플리케이션 특정 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합과 같은 다양한 적합한 인코더 및/또는 디코더 회로 중 어느 것으로서 구현될 수 있다. 부분적으로 소프트웨어로 구현되는 경우, 전자 장치는 소프트웨어에 대한 명령어를 적절한 비일시적 컴퓨터 판독 가능 매체에 저장하고, 본 원에 개시된 비디오 인코딩/디코딩 동작을 수행하기 위해 하나 이상의 프로세서를 사용하여 하드웨어에서 명령어를 실행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 이들 중 하나는 각각의 장치에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
도 2는 본원에 설명된 일부 실시예에 따른 예시적인 비디오 인코더(20)를 도시하는 블록 다이어그램이다. 비디오 인코더(20)는 비디오 프레임 내의 비디오 블록의 인트라 및 인터 예측 코딩을 수행할 수 있다. 인트라 예측 코딩은 공간 예측에 의존하여 주어진 비디오 프레임 또는 사진 내의 비디오 데이터에서 공간 중복을 줄이거나 제거한다. 인터 예측 코딩은 시간 예측에 의존하여 인접한 비디오 프레임 또는 비디오 시퀀스의 사진 내에서 비디오 데이터의 시간적 중복을 줄이거나 제거한다. 비디오 코딩 분야에서 '프레임'이라는 용어는 '이미지' 또는 '영상'이라는 용어와 동의어로 사용될 수 있다는 점에 주의해야 한다.
도 2에 나타난 바와 같이, 비디오 인코더(20)는 비디오 데이터 메모리(40), 예측 처리 유닛(41), 디코딩된 영상 버퍼(DPB)(64), 합산기(50), 변환 처리 유닛(52), 양자화 유닛(54), 엔트로피 인코딩 유닛(56)을 포함한다. 예측 처리 유닛(41)은 이동 추정 유닛(42), 이동 보정 유닛(44), 파티션 유닛(45), 인트라 예측 처리 유닛(46) 및 인트라 블록 복사(BC) 유닛(48)을 더 포함한다. 일부 구현에서, 비디오 인코더(20)는 또한 역 양자화 유닛(58), 역 변환 처리 유닛(60), 및 비디오 블록 재구성을 위한 합산기(62)를 포함한다. 디블로킹 필터와 같은 인루프 필터(63)는, 재구성된 비디오로부터 블록 아티팩트를 제거하도록 블록 경계를 필터링하기 위해, 합산기(62)와 DPB(64) 사이에 배치될 수 있다. 샘플 적용형 오프셋(SAO) 필터 및/또는 적용형 인루프 필터(ALF)와 같은 다른 인루프 필터도 디블로킹 필터에 추가하여 합산기(62)의 출력을 필터링하는 데 사용될 수 있다. 일부 예들에서, 인루프 필터들은 생략될 수 있고, 디코딩된 비디오 블록은 합산기(62)에 의해 DPB(64)에 직접 제공될 수 있다. 비디오 인코더(20)는 고정 또는 프로그램 가능한 하드웨어 유닛의 형태를 취할 수도 있고, 또는 예시된 고정 또는 프로그램 가능한 하드웨어 유닛 중 하나 이상으로 분할될 수도 있다.
비디오 데이터 메모리(40)는 비디오 인코더(20)의 구성요소들에 의해 인코딩될 비디오 데이터를 저장할 수 있다. 비디오 데이터 메모리(40)의 비디오 데이터는 예를 들어, 도 1에 도시된 바와 같이 비디오 소스(18)로부터 획득될 수 있다. DPB(64)는 비디오 인코더(20)에 의해 비디오 데이터를 인코딩하는 데(예를 들어, 인트라 또는 인터 예측 코딩 모드에서) 사용하기 위한 참조 비디오 데이터(예를 들어, 참조 프레임 또는 사진)를 저장하는 버퍼이다. 비디오 데이터 메모리(40) 및 DPB(64)는 다양한 메모리 장치 중 임의의 것에 의해 형성될 수 있다. 다양한 예들에서, 비디오 데이터 메모리(40)는 비디오 인코더(20)의 다른 구성요소들과 함께 온칩일 수도 있고, 또는 그러한 컴포넌트들에 대해 오프칩일 수도 있다.
도 2에 도시된 바와 같이, 비디오 데이터를 수신한 후, 예측 처리 유닛(41) 내의 파티션 유닛(45)은 비디오 데이터를 비디오 블록으로 분할한다. 이러한 분할은 비디오 데이터와 관련된 쿼드 트리(QT) 구조와 같은 미리 정의된 분할 구조에 따라 비디오 프레임을 슬라이스, 타일(예를 들어, 비디오 블록의 세트) 또는 다른 더 큰 코딩 유닛(CU)으로 분할하는 것을 포함할 수도 있다. 비디오 프레임은 샘플 값이 있는 샘플의 2차원 배열 또는 행렬로 간주되거나 또는 간주될 수 있다. 배열의 샘플은 픽셀 또는 펠(pel)이라고도 한다. 배열 또는 영상의 수평 및 수직 방향(또는 축)에 있는 복수의 샘플은 비디오 프레임의 크기 및/또는 해상도를 정의한다. 비디오 프레임은, 예를 들어, QT 파티셔닝을 사용하여 여러 개의 비디오 블록으로 분할될 수 있다. 비디오 블록은 다시 비디오 프레임보다 크기는 작지만 샘플 값이 있는 샘플의 2차원 배열 또는 행렬로 간주될 수 있다. 비디오 블록의 수평 및 수직 방향(또는 축)에 있는 복수의 샘플은 비디오 블록의 크기를 정의한다. 비디오 블록은, 예를 들어, QT 파티셔닝, 이진 트리(BT) 파티셔닝 또는 삼중 트리(TT) 파티셔닝 또는 이들의 조합을 반복적으로 사용하여 하나 이상의 블록 파티션 또는 하위 블록(다시 블록을 형성할 수 있음)으로 더 분할될 수 있다. 본원에서 사용되는 "블록" 또는 "비디오 블록"이라는 용어는 프레임 또는 사진의 일부, 특히 직사각형(정사각형 또는 비정사각형) 부분일 수 있음에 주의해야 한다. 예를 들어, HEVC 및 VVC와 관련하여, 블록 또는 비디오 블록은 코딩 트리 유닛(CTU), CU, 예측 유닛(PU) 또는 변환 유닛(TU)이거나 이에 대응할 수 있고/하거나 대응하는 블록, 예를 들어 코딩 트리 블록(CTB), 코딩 블록(CB), 예측 블록(PB) 또는 변환 블록(TB)이거나 이에 대응하는 서브 블록이거나 이에 대응할 수 있다.
예측 처리 유닛(41)은 오류 결과(예를 들어, 코딩 속도 및 왜곡 레벨)에 기초하여 현재 비디오 블록에 대해 복수의 가능한 예측 코딩 모드들 중 하나, 예를 들어, 복수의 인트라 예측 코딩 모드들 중 하나 또는 복수의 인터 예측 코딩 모드들 중 하나를 선택할 수 있다. 예측 처리 유닛(41)은 잔여 블록을 생성하기 위해 합산기(50)에 결과적인 인트라 또는 인터 예측 코딩된 블록을 제공할 수 있고, 이후 기준 프레임의 일부로 사용하기 위해 인코딩된 블록을 재구성하기 위해 합산기(62)에 제공할 수 있다. 예측 처리 유닛(41)은 또한 이동 벡터, 모드 내 표시기, 파티션 정보 및 기타 그러한 구문 정보와 같은 구문 요소를 엔트로피 인코딩 유닛(56)에 제공한다.
현재 비디오 블록에 대한 적절한 인터 예측 부호화 모드를 선택하기 위해, 예측 처리 유닛(41) 내의 인트라 예측 처리 유닛(46)은 공간 예측을 제공하기 위해 부호화될 현재 블록과 동일한 프레임 내의 하나 이상의 이웃 블록에 대하여 현재 비디오 블록의 인트라 예측 코딩을 수행할 수 있다. 예측 처리 유닛(41) 내의 이동 추정 유닛(42) 및 이동 보정 유닛(44)은 시간적 예측을 제공하기 위해 하나 이상의 참조 프레임에서 하나 이상의 예측 블록에 대해 현재 비디오 블록의 인터 예측 코딩을 수행할 수 있다. 비디오 인코더(20)는, 예를 들어, 비디오 데이터의 각 블록에 대해 적절한 코딩 모드를 선택하기 위해 복수의 코딩 패스를 수행할 수 있다.
일부 실시예에서, 이동 추정 유닛(42)은 일련의 비디오 프레임 내의 미리 결정된 패턴에 따라, 기준 비디오 프레임 내의 예측 블록에 대한 현재 비디오 프레임 내의 비디오 블록의 변위를 나타내는 이동 벡터를 생성함으로써 현재 비디오 프레임에 대한 인터 예측 모드를 결정한다. 이동 추정 유닛(42)에 의해 수행되는 이동 추정은 비디오 블록의 이동을 추정하는 이동 벡터를 생성하는 프로세스이다. 예를 들어, 이동 벡터는 현재 프레임 내에서 코딩되는 현재 블록에 대한 참조 프레임 내의 예측 블록에 대하여 현재 비디오 프레임 또는 영상 내의 비디오 블록의 변위를 나타낼 수 있다. 미리 결정된 패턴은 시퀀스 내의 비디오 프레임을 P 프레임 또는 B 프레임으로 지정할 수 있다. 인트라 BC 유닛(48)은, 인터 예측을 위한 이동 추정 유닛(42)에 의한 이동 벡터의 결정과 유사한 방식으로, 인트라 BC 코딩을 위한 벡터, 예를 들어 블록 벡터를 결정할 수도 있고, 이동 추정 유닛(42)을 이용하여 블록 벡터를 결정할 수도 있다.
비디오 블록에 대한 예측 블록은 픽셀 차이의 관점에서 코딩될 비디오 블록과 거의 일치하는 것으로 간주되는 참조 프레임의 블록이거나 또는 참조 블록과 일치할 수 있으며, 이는 절대 차이의 합계(SAD), 제곱 차이의 합계(SSD) 또는 다른 차이 메트릭에 의해 결정될 수 있다. 일부 구현에서, 비디오 인코더(20)는 DPB(64)에 저장된 기준 프레임의 서브정수 픽셀 위치에 대한 값을 계산할 수 있다. 예를 들어, 비디오 인코더(20)는 기준 프레임의 1/4 픽셀 위치, 1/8 픽셀 위치, 또는 다른 분수 픽셀 위치의 값을 보간할 수 있다. 따라서, 이동 추정 유닛(42)은 전체 픽셀 위치 및 분수 픽셀 위치를 기준으로 이동 검색을 수행하고 분수 픽셀 정밀도를 갖는 이동 벡터를 출력할 수 있다.
이동 추정 유닛(42)은 비디오 블록의 위치를 제1 참조 프레임 리스트(리스트 0) 또는 제2 참조 프레임 리스트(리스트 1)에서 선택된 참조 프레임의 예측 블록의 위치와 비교하여, 각각 DPB(64)에 저장된 하나 이상의 참조 프레임을 식별하는 인터 예측 코딩된 프레임의 비디오 블록에 대한 이동 벡터를 계산한다. 이동 추정 유닛(42)은 계산된 이동 벡터를 이동 보정 유닛(44)으로 전송한 다음 엔트로피 인코딩 유닛(56)으로 전송한다.
이동 보정 유닛(44)에 의해 수행되는 이동 보정은 이동 추정 유닛(42)에 의해 결정된 이동 벡터에 기초하여 예측 블록을 가져오거나 생성하는 것을 포함할 수 있다. 현재 비디오 블록에 대한 이동 벡터를 수신하면, 이동 보정 유닛(44)은 기준 프레임 리스트 중 하나에서 이동 벡터가 가리키는 예측 블록을 찾고, DPB(64)에서 예측 블록을 검색하며, 예측 블록을 합산기(50)로 전달할 수 있다. 그 후, 합산기(50)는 코딩 중인 현재 비디오 블록의 픽셀 값에서 이동 보정 유닛(44)에 의해 제공된 예측 블록의 픽셀 값을 차감하여 픽셀 차이 값의 잔여 비디오 블록을 형성한다. 잔여 비디오 블록을 형성하는 픽셀 차이 값은 루마(luma) 또는 크로마(chroma) 차이 성분 또는 양자를 포함할 수 있다. 이동 보정 유닛(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)은 블록에 대해 선택된 인트라 예측 모드를 나타내는 정보를 엔트로피 인코딩 유닛(56)에 제공할 수 있다. 엔트로피 인코딩 유닛(56)은 선택된 인트라 예측 모드를 나타내는 정보를 비트 스트림에서 인코딩할 수 있다.
예측 처리 유닛(41)이 인터 예측 또는 인트라 예측을 통해 현재 비디오 블록에 대한 예측 블록을 결정한 후, 합산기(50)는 현재 비디오 블록에서 예측 블록을 차감하여 잔여 비디오 블록을 형성한다. 잔여 비디오 블록의 잔여 비디오 데이터는 하나 이상의 TU에 포함될 수 있으며, 변환 처리 유닛(52)으로 제공된다. 변환 처리 유닛(52)은 이산 코사인 변환(DCT) 또는 개념적으로 유사한 변환과 같은 변환을 사용하여 잔여 비디오 데이터를 잔여 변환 계수로 변환한다.
변환 처리 유닛(52)은 결과 변환 계수를 양자화 유닛(54)으로 전송할 수 있다. 양자화 유닛(54)은 변환 계수를 양자화하여 비트 전송률을 더욱 감소시킨다. 양자화 프로세스는 또한 계수의 일부 또는 전체와 관련된 비트 깊이를 감소시킬 수 있다. 양자화 정도는 양자화 파라미터를 조정하여 수정될 수 있다. 일부 예들에서, 양자화 유닛(54)은 양자화된 변환 계수를 포함하는 행렬의 스캔을 수행할 수 있다. 또는 엔트로피 인코딩 유닛(56)이 스캔을 수행할 수도 있다.
양자화 후에, 엔트로피 인코딩 유닛(56)은, 예를 들어, 컨텍스트 적응형 가변 길이 코딩(CAVLC), 컨텍스트 적응형 이진 산술 코딩(CABAC), 구문 기반 컨텍스트 적응형 이진 산술 코딩(SBAC), 확률 간격 분할 엔트로피(PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기술을 사용하여 양자화된 변환 계수들을 비디오 비트스트림으로 인코딩한다. 그런 다음, 인코딩된 비트스트림은 도 1에 도시된 바와 같이 비디오 디코더(30)로 전송되거나, 또는 도 1에 도시된 바와 같이 저장 장치(32)에 보관되어 나중에 비디오 디코더(30)에 의해 전송되거나 검색될 수 있다. 엔트로피 인코딩 유닛(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)는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 영상 버퍼(CPB)를 포함할 수 있다. 비디오 디코더(30)의 DPB(92)는 비디오 디코더(30)에 의한 비디오 데이터 디코딩에 사용하기 위한 참조 비디오 데이터를 저장한다(예를 들어, 인트라 또는 인터 예측 코딩 모드에서). 비디오 데이터 메모리(79) 및 DPB(92)는 동적 랜덤 액세스 메모리(DRAM)와 같은 다양한 메모리 장치, 예를 들어, 동기식 DRAM(SDRAM), 자기 저항 RAM(MRAM), 저항 RAM(RRAM) 또는 다른 유형의 메모리 장치 중 어느 하나에 의해 형성될 수 있다. 예시적인 목적을 위해, 비디오 데이터 메모리(79) 및 DPB(92)는 도 3에서 비디오 디코더(30)의 두 개의 별개의 구성요소로 도시되어 있다. 그러나, 당업자에게는 비디오 데이터 메모리(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로 표시된 세 개의 샘플 어레이가 포함될 수 있다. SL은 루마 샘플의 2차원 배열이다. SCb는 Cb 크로마 샘플의 2차원 배열이다. SCr은 Cr 크로마 샘플의 2차원 배열이다. 다른 경우에는, 프레임이 단색일 수 있으므로 루마 샘플의 2차원 배열이 하나만 포함될 수 있다.
도 4a에 도시된 바와 같이, 비디오 인코더(20)(보다 구체적으로, 파티션 유닛(45))는 먼저 프레임을 CTU 세트로 분할함으로써 프레임의 인코딩된 표현을 생성한다. 비디오 프레임은 좌측에서 우측으로, 위에서 아래로 래스터 스캔 순서로 연속적으로 정렬된 정수 수의 CTU를 포함할 수 있다. 각 CTU는 가장 큰 로직 코딩 단위이며, CTU의 폭과 높이는 비디오 인코더(20)가 시퀀스 파라미터 세트에서 신호화하여 비디오 시퀀스의 모든 CTU가 128×128, 64×64, 32×32 및 16×16 중 하나로서 동일한 크기를 갖도록 한다. 그러나 본원이 반드시 특정 크기로 제한되는 것은 아니라는 점에 주의해야 한다. 도 4b에 도시된 바와 같이, 각 CTU는 루마 샘플의 하나의 CTB, 크로마 샘플의 두 개의 대응하는 코딩 트리 블록 및 코딩 트리 블록의 샘플을 코딩하는 데 사용되는 구문 요소로 구성될 수 있다. 구문 요소들은 코딩된 픽셀 블록의 상이한 유형의 단위들의 속성과 비디오 시퀀스가 비디오 디코더(30)에서 재구성될 수 있는 방법, 즉 인터 또는 인트라 예측, 인트라 예측 모드, 이동 벡터, 및 기타 파라미터를 포함한다. 흑백 사진 또는 3개의 분리된 컬러 평면을 갖는 사진에서, CTU는 단일 코딩 트리 블록 및 코딩 트리 블록의 샘플을 코딩하는 데 사용되는 구문 요소를 포함할 수 있다. 코딩 트리 블록은 샘플의 NxN 블록일 수 있다.
더 나은 성능을 달성하기 위해, 비디오 인코더(20)는 CTU의 코딩 트리 블록에 대해 2진 트리 분할, 3진 트리 분할, 4진 트리 분할 또는 이들의 조합과 같은 트리 분할을 재귀적으로 수행하여 CTU를 더 작은 CU로 분할할 수 있다. 도 4c에 도시된 바와 같이, 64x64 CTU(400)는 먼저 블록 크기가 각각 32x32인 4개의 작은 CU로 분할된다. 4개의 작은 CU 중 CU(410)와 CU(420)는 블록 크기에 따라 각각 16x16의 CU 4개로 분할된다. 두 개의 16x16 CU(430, 440)은 블록 크기에 따라 각각 8x8의 CU 4개로 더 분할된다. 도 4는 도 4c에 도시된 바와 같이 CTU(400)의 파티션 프로세스의 최종 결과를 보여주는 쿼드 트리 데이터 구조를 도시한 것으로, 쿼드 트리의 각 리프 노드(leaf node)는 32x32에서 8x8에 이르는 각각의 크기의 하나의 CU에 대응한다. 도 4b에 도시된 CTU와 같이, 각 CU는 루마 샘플의 CB와 동일한 크기의 프레임의 크로마 샘플의 두 개의 대응하는 코딩 블록 및 코딩 블록의 샘플을 코딩하는 데 사용되는 구문 요소를 포함할 수 있다. 흑백 사진 또는 세 개의 개별 색상 평면을 가진 사진에서 CU는 단일 코딩 블록과 코딩 블록의 샘플을 코딩하는 데 사용되는 구문 구조로 구성될 수 있다. 도 4c와 4d에 도사된 쿼드 트리 파티셔닝은 설명용일 뿐이며, 쿼드/보조/바이너리 트리 파티셔닝에 따라 다양한 로컬 특성에 적용하기 위해 하나의 CTU가 CU로 분할될 수 있다는 것에 주의해야 한다. 다중 유형 트리 구조에서는 하나의 CTU가 쿼드 트리 구조로 분할되고 각 쿼드 트리 리프 CU는 바이너리 및 삼원 트리 구조로 추가 분할될 수 있다. 도 4e에 도시된 바와 같이, 폭 W와 높이 H를 갖는 코딩 블록에는 4진 분할, 수평 2진 분할, 수직 2진 분할, 수평 3진 분할 및 수직 3진 분할의 5가지 분할 유형이 존재한다.
일부 구현에서, 비디오 인코더(20)는 CU의 코딩 블록을 하나 이상의 MxN PB로 더 분할할 수 있다. PB는 동일한 예측(인터 또는 인트라)이 적용되는 샘플의 직사각형(정사각형 또는 비정사각형) 블록이다. CU의 PU는 루마 샘플의 PB, 크로마 샘플의 두 개의 대응하는 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 잔여 블록 및 Cr 잔여 블록을 생성할 수 있으며, CU의 Cb 잔여 블록 내의 각 샘플은 CU의 예측 Cb 블록 중 하나 내의 Cb 샘플과 CU의 원래 Cb 코딩 블록 내의 대응하는 샘플 사이의 차이를 나타내고, CU의 Cr 잔여 블록 내의 각 샘플은 CU의 예측 Cr 블록 중 하나 내의 Cr 샘플과 CU의 원래 Cr 코딩 블록 내의 대응하는 샘플 사이의 차이를 나타낼 수 있다.
또한, 도 4c에 도시된 바와 같이, 비디오 인코더(20)는 쿼드 트리 파티셔닝을 사용하여 CU의 루마, Cb 및 Cr 잔여 블록을 각각 하나 이상의 루마, Cb 및 Cr 변환 블록으로 분해할 수 있다. 변환 블록은 동일한 변환이 적용되는 직사각형(정사각형 또는 비정사각형) 샘플 블록이다. CU의 TU는 루마 샘플의 변환 블록, 크로마 샘플의 해당 변환 블록 2개, 그리고 변환 블록 샘플을 변환하는 데 사용되는 구문 요소로 구성될 수 있다. 따라서 CU의 각 TU는 루마 변환 블록, Cb 변환 블록 및 Cr 변환 블록과 연관될 수 있다. 일부 예에서, TU와 연결된 루마 변환 블록은 CU의 루마 잔여 블록의 하위 블록일 수 있다. Cb 변환 블록은 CU의 Cb 잔여 블록의 하위 블록일 수 있다. Cr 변환 블록은 CU의 Cr 잔여 블록의 하위 블록일 수 있다. 흑백 영상 또는 세 개의 개별 색상 평면을 갖는 영상에서, 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)로 전송될 수 있다.
비디오 디코더(30)는, 비디오 인코더(20)에 의해 생성된 비트스트림을 수신한 후, 비트스트림을 파싱하여 비트스트림으로부터 구문 요소를 획득할 수 있다. 비디오 디코더(30)는 적어도 부분적으로는 비트스트림으로부터 획득한 구문 요소에 기초하여 비디오 데이터의 프레임을 재구성할 수 있다. 비디오 데이터를 재구성하는 프로세스는 일반적으로 비디오 인코더(20)에 의해 수행되는 인코딩 프로세스와 상호 작용한다. 예를 들어, 비디오 디코더(30)는 현재 CU의 TU와 연관된 계수 블록에 대해 역변환을 수행하여 현재 CU의 TU와 연관된 잔여 블록을 재구성할 수 있다. 또한, 비디오 디코더(30)는 현재 CU의 PU에 대한 예측 블록의 샘플을 현재 CU의 TU에 대한 변환 블록의 대응하는 샘플에 추가함으로써 현재 CU의 코딩 블록을 재구성한다. 프레임의 각 CU에 대한 코딩 블록을 재구성한 후, 비디오 디코더(30)는 프레임을 재구성할 수 있다.
위에서 언급한 바와 같이 비디오 코딩은 주로 인트라 프레임 예측(또는 인트라 예측)과 인터 프레임 예측(또는 인터 예측)의 두 가지 모드를 사용하여 비디오 압축을 수행한다. IBC는 인트라 프레임 예측 또는 제3의 모드로 간주될 수 있다. 두 모드 중, 인터 프레임 예측은 참조 비디오 블록에서 현재 비디오 블록을 예측하기 위해 이동 벡터를 사용하기 때문에 인트라 프레임 예측보다 코딩 효율에 더 큰 기여를 한다.
그러나 비디오 데이터 캡처 기술이 계속 발전하고 비디오 데이터의 세부 사항을 보존하기 위해 비디오 블록 크기가 더욱 세분화됨에 따라, 현재 프레임의 이동 벡터를 표현하는 데 필요한 데이터의 양도 크게 증가했다. 이러한 문제를 극복하는 하나의 방법은 공간적, 시간적 영역 모두에서 인접한 CU 그룹이 예측 목적에 맞는 유사한 비디오 데이터를 가지고 있을 뿐만 아니라 인접한 CU 간의 이동 벡터도 유사하다는 점을 활용하는 것이다. 따라서 공간적으로 인접한 CU 및/또는 시간적으로 함께 위치한 CU의 모션 정보를 공간적, 시간적 상관관계를 탐색하여 현재 CU의 이동 정보(예: 이동 벡터)의 근사치로 사용할 수 있으며, 이를 현재 CU의 '이동 벡터 예측기(MVP)'라고도 한다.
도 2와 관련하여 전술한 바와 같이, 이동 추정 유닛(42)에 의해 결정된 현재 CU의 실제 이동 벡터를 비디오 비트스트림에 인코딩하는 대신, 현재 CU의 이동 벡터 예측기를 현재 CU의 실제 이동 벡터에서 차감하여 현재 CU에 대한 이동 벡터 차(MVD)가 생성된다. 이렇게 함으로써, 하나의 프레임의 각 CU에 대해 이동 추정 유닛(42)에 의해 결정된 이동 벡터를 비디오 비트스트림에 부호화할 필요가 없어지고, 비디오 비트스트림에서 이동 정보를 표현하기 위해 사용되는 데이터의 양이 현저히 감소할 수 있다.
코드 블록의 인터 프레임 예측 중에 참조 프레임에서 예측 블록을 선택하는 과정과 마찬가지로, 비디오 인코더(20)와 비디오 디코더(30) 모두에서 현재 CU의 공간적으로 인접한 CU 및/또는 시간적으로 동시 배치된 CU와 관련된 잠재적 후보 이동 벡터를 사용하여 현재 CU에 대한 이동 벡터 후보 리스트("병합 리스트"라고도 함)를 구성한 다음 이동 벡터 후보 리스트에서 하나의 멤버를 현재 CU의 이동 벡터 예측자로 선택하기 위한 일련의 규칙을 채택해야 한다. 이렇게 함으로써, 이동 벡터 후보 리스트 자체를 비디오 인코더(20)에서 비디오 디코더(30)로 전송할 필요가 없으며, 이동 벡터 후보 리스트 내에서 선택된 이동 벡터 예측자의 인덱스만으로 비디오 인코더(20)와 비디오 디코더(30)가 현재 CU의 인코딩 및 디코딩을 위해 이동 벡터 후보 리스트 내의 동일한 이동 벡터 예측자를 사용하기에 충분하다.
위치 종속적 인트라 예측 조합
VVC에서, DC 평면 및 여러 각도 모드의 인트라 예측 결과는 위치 종속적 인트라 예측 조합(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 가중치와 배율은 예측 모드와 블록 크기에 따라 달라진다. 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는 분수 샘플 위치에 위치할 수 있다. 이 경우 가장 가까운 정수 샘플 위치의 샘플 값이 사용된다.
앞서 언급한 바와 같이, 인트라 예측 샘플은 필터링되지 않거나 필터링된 인접 기준 샘플 세트에서 생성되며, 이로 인해 현재 코딩 블록과 인접 블록 사이의 블록 경계를 따라 불연속성이 발생할 수 있다. 이러한 문제를 해결하기 위해, DC, 수평(즉, 모드 18) 및 수직(즉, 모드 50) 예측 모드의 예측 샘플의 제1 행/열을 2-탭 필터(DC 모드용) 또는 그라데이션 기반 스무딩 필터(수평 및 수직 예측 모드용)를 사용하여 필터링되지 않은 참조 샘플과 결합함으로써 HEVC에서 경계 필터링을 적용한다.
그라데이션 PDPC
VVC에서, 일부 시나리오에서, 보조 참조 샘플을 사용할 수 없기 때문에 PDPC가 적용되지 않을 수 있다. 수평/수직 모드에서 확장된 그라데이션 기반 PDPC가 적용된다. 좌측/상부 경계로부터의 거리에 대한 PDPC 가중치의 감쇠를 결정하기 위한 PDPC 가중치(wT/wL) 및 nScale 파라미터는 각각 수평/수직 모드의 해당 파라미터와 동일하게 설정된다. 보조 참조 샘플이 분수 샘플 위치에 있는 경우, 이중 선형 보간이 적용된다.
기하학적 파티션 모드(GPM)
VVC에서, 인터 예측을 위한 기하학적 파티셔닝 모드가 지원된다. 기하학적 파티셔닝 모드는 하나의 특수 병합 모드로서 하나의 CU 레벨 플래그로 신호를 보낸다. 현재 GPM 설계에서는, 8x64 및 64x8을 제외한 폭과 높이가 모두 8보다 작고 64보다 크지 않은 각 가능한 CU 크기에 대해 총 64개의 파티션이 GPM 모드에서 지원된다.
이 모드를 사용하면, 도 6과 같이 기하학적으로 위치한 직선에 의해 CU가 두 부분으로 분할된다. 분할 선의 위치는 특정 파티션의 각도 및 오프셋 파라미터에서 수학적으로 도출된다. CU의 기하학적 파티션의 각 부분은 자체 이동을 사용하여 인터 예측되며, 각 파티션에는 하나의 이동 벡터와 하나의 참조 인덱스가 있는 단일 예측만 허용된다. 단일 예측 이동 제약 조건이 적용되어 기존의 이중 예측과 마찬가지로 각 CU에 대해 두 개의 모션 보상 예측만 필요하다. 현재 CU에 기하 분할 모드를 사용하는 경우, 기하 분할의 분할 모드(각도 및 오프셋)를 나타내는 기하 분할 인덱스와 두 개의 병합 인덱스(각 분할마다 하나씩)가 추가로 전달된다. 최대 GPM 후보 크기의 수는 시퀀스 수준에서 명시적으로 신호가 전달된다.
기하학적 파티션 가장자리를 따라 블렌딩
각각의 기하학적 파티션이 자체 이동을 사용하여 얻어지면 두 개의 단일 예측 신호에 블렌딩을 적용하여 기하학적 파티션 가장자리 주변의 샘플이 도출된다. CU의 각 위치에 대한 블렌딩 가중치는 각 개별 샘플 위치에서 해당 파티션 에지까지의 거리를 기반으로 도출된다.
GPM 전달 설계
현재 GPM 설계에 따르면, GPM의 사용이 CU 레벨에서 하나의 플래그를 전달하여 표시된다. 이 플래그는 현재 CU가 병합 모드 또는 스킵 모드로 코딩된 경우에만 전달된다. 구체적으로, 플래그가 1과 같으면, 현재 CU가 GPM에 의해 예측되었음을 나타낸다. 그렇지 않으면(플래그가 0인 경우), 일반 병합 모드, 이동 벡터 차이 병합 모드, 인터 및 인트라 예측 결합 등 다른 병합 모드로 CU가 코딩된다. 현재 CU에 대해 GPM이 활성화되면, 적용된 기하학적 파티션 모드(도 6과 같이 CU를 두 개의 파티션으로 분할하는 CU 중심으로부터 직선의 방향과 오프셋을 지정)를 나타내는 하나의 구문 요소인 merge_gpm_partition_idx가 추가로 전달된다. 그 후, 제1 및 제2 GPM 파티션에 사용되는 단일 예측 병합 후보의 인덱스를 나타내는 두 개의 구문 요소 merge_gpm_idx0 및 merge_gpm_idx1이 전달된다. 보다 구체적으로, 이 두 구문 요소는 "단일 예측 병합 목록 구성" 섹션에 설명된 대로 단일 예측 병합 목록에서 두 GPM 파티션의 단일 방향 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의 이진화를 위해 사용된다. 또한, 두 단일 예측 병합 인덱스는 동일할 수 없기 때문에, 두 단일 예측 병합 인덱스의 코드 워드를 자르기 위해 서로 다른 최대값이 사용되며, 이 최대값은 merge_gpm_idx0 및 merge_gpm_idx1의 각각에 대해, 각각 MaxGPMMergeCand - 1 및 MaxGPMMergeCand - 2로 설정된다. MaxGPMMergeCand는 단일 예측 병합 목록에 있는 후보의 수이다.
GPM/AWP 모드가 적용되면, 두 가지 이진화 방법이 적용되어 merge_gpm_ partition_idx 구문이 이진 비트 문자열로 변환된다. 구체적으로, 구문 요소는 각각 VVC 및 AVS3 표준에서 고정 길이 코드와 잘려진 바이너리 코드로 이진화된다. 한편 AVS3의 AWP 모드의 경우, 2진법의 이진화에 대해 서로 다른 최대값이 사용된다.
공간 각도 가중치 예측(SAWP)
AVS에서, GPM 모드를 인트라 블록까지 확장하는 공간 각도 가중 예측(SAWP) 모드가 있다. SAWP 모드에서는 두 개의 인터 예측 블록에 가중치를 부여하는 대신 두 개의 인트라 예측 블록에 가중치를 부여한다. 두 개의 인트라 예측 블록은 인트라 예측 모드에서 선택된 두 개의 서로 다른 인트라 예측 모드를 사용하여 예측된다. 인트라 예측 모드는 각도 모드 5에서 30 사이에서 선택된다. 최대 크기는 32x32이다. 일반 인트라 모드 중 최고 확률의 2개의 모드(MPM)가 SAWP 모드의 MPM 도출에 사용된다.
다방향 인트라 예측 디자인(MDIP)은 SAWP와 동일한 디자인 사상을 따르지만 특정 디자인 세부 사항에서 약간의 미세한 차이가 있다.
디코더 측 인트라 모드 도출(DIMD)
DIMD는 인트라 코딩 도구이며, 루마 인트라 예측 모드(IPM)가 비트스트림을 통해 전송되지 않는다. 대신 인코더와 디코더에서 동일한 방식으로 이전에 인코딩/디코딩된 픽셀을 사용하여 도출된다. DIMD 방식은 텍스처 그라데이션 처리를 수행하여 두 가지 최상의 모드를 도출한다. 그런 다음, 이 두 가지 모드와 평면 모드가 블록에 적용되고 해당 예측자의 가중치가 평균화된다. DIMD의 선택은 플래그를 사용하여 인트라 코딩된 블록의 비트스트림에 신호를 보낸다. 디코더에서 DIMD 플래그가 참이면, 이전에 인코딩된 인접 픽셀을 사용하여 재구성 프로세스에서 인트라 예측 모드가 도출된다. 그렇지 않은 경우, 인트라 예측 모드는 기존 인트라 코딩 모드와 마찬가지로 비트스트림에서 파싱된다.
블록에 대한 인트라 예측 모드를 도출하려면 먼저 그라데이션 분석을 수행할 인접 픽셀 세트를 선택해야 한다. 규범성을 위해, 이러한 픽셀은 디코딩/재구성된 픽셀 풀에 있어야 한다. 도 7과 같이, 현재 블록을 좌측으로 들러싸는 T픽셀, 상부로는 T픽셀을 둘러싸고 있는 템플릿이 선택된다. 다음으로, 템플릿의 픽셀에 대해 그라데이션 분석이 수행된다. 이를 통해, 템플릿의 주요 각도 방향을 결정할 수 있으며, 이는 현재 블록과 동일할 가능성이 높다고 가정한다(이 방법의 코어 전제). 따라서 템플릿과 함께 복잡해질 다음 행렬로 정의되는 간단한 3x3 소벨 그라데이션 필터(Sobel gradient filter)가 사용된다:
템플릿의 각 픽셀에 대해, 현재 픽셀을 중심으로 8개의 직접 이웃 픽셀로 구성된 3x3 창에 이 두 행렬을 하나씩 곱하고 결과가 합산된다. 따라서, 현재 픽셀의 그라데이션에 해당하는 두 개의 값 Gx(Mx와의 곱셈에서)와 Gy(My와의 곱셈에서)가 각각 수평 및 수직 방향으로 얻어진다.
도 8은 컨볼루션 프로세스를 나타낸다. 파란색 픽셀은 현재 픽셀이다. 빨간색 픽셀(파란색 포함)은 그라데이션 분석이 가능한 픽셀이다. 회색 픽셀은 일부 이웃이 없어 그라데이션 분석이 불가능한 픽셀이다. 보라색 픽셀은 고려된 템플릿 외부에서 사용 가능한(재구성된) 픽셀로, 빨간색 픽셀의 그라데이션 분석에 사용된다. 예를 들어, 블록이 그림의 테두리에 너무 가까워서 보라색 픽셀을 사용할 수 없는 경우, 이 보라색 픽셀을 사용하는 모든 빨간색 픽셀의 그라데이션 분석은 수행되지 않는다. 각 빨간색 픽셀에 대해 Gx와 Gy를 사용하여 그라데이션의 강도(G)와 배향(O)이 계산된다:
그런 다음, 그라데이션의 방향이 각도 내 예측 모드로 변환되어 히스토그램의 색인을 생성하는 데 사용된다(처음에는 0으로 초기화됨). 템플릿의 모든 빨간색 픽셀이 처리되면 히스토그램에는 각 각도 모드에 대한 그라데이션 강도의 누적 값이 포함된다. 현재 블록에 대해 가장 높은 히스토그램 막대 두 개에 해당하는 IPM이 선택된다. 히스토그램의 최대값이 0이면(그라데이션 분석이 이루어지지 않았거나 템플릿을 구성하는 영역이 평평하다는 의미) 현재 블록에 대한 인트라 예측 모드로 DC 모드가 선택된다.
가장 높은 두 개의 HoG 바에 해당하는 두 개의 IPM이 평면 모드와 결합된다. 하나 이상의 예시에서 예측 융합은 위의 세 가지 예측 변수의 가중치 평균으로 적용된다. 이를 위해, 평면의 가중치는 21/64(~1/3)로 고정된다. 그런 다음, 나머지 43/64(~2/3)의 가중치가 두 HoG IPM이 HoG 막대의 진폭에 비례하여 분배된다. 도 9는 이 프로세스를 시각화한다.
도출된 인트라 모드는 인트라 모드(MPM)의 기본 목록에 포함되므로 MPM 목록이 구성되기 전에 DIMD 프로세스가 수행된다. DIMD 블록의 기본 도출 인트라 모드는 블록과 함께 저장되며 인접한 블록의 MPM 목록 구성에 사용된다.
템플릿 기반 인트라 모드 파생(TIMD)
MPM의 각 인트라 모드에 대해 도 10에 나타난 템플릿 영역의 예측 샘플과 재구성 샘플 간의 절대 변환 차이(SATD)의 합을 계산하여 SATD 코스트(cost)가 가장 작은 최초 두 모드를 가진 인트라 모드를 선택한 다음 가중치를 부여하여 융합하고 이러한 가중치가 적용된 인트라 예측을 사용하여 현재 CU가 코드화된다.
선택한 두 가지 모드의 코스트를 임계값과 비교하며, 테스트에서는 다음과 같이 코스트 계수 2가 적용된다:
costMode2 < 2*costMode1
이 조건이 참이면 융합이 적용되고, 그렇지 않으면 단 하나의 모드1이 사용된다.
모드의 가중치는 다음과 같이 SATD 코스트에서 계산된다:
weight1 = costMode2/(costMode1+ costMode2)
weight2 = 1 - weight1
DIMD 모드가 인트라 예측 효율을 향상시킬 수 있지만, 성능을 더 개선할 여지가 있다. 한편, 효율적인 코덱 하드웨어 구현을 위해 기존 DIMD 모드의 일부를 단순화하거나 코딩 효율을 개선해야 할 필요도 있다. 또한 구현 복잡성과 코딩 효율성의 이점 사이의 트레이드 오프도 더욱 개선되어야 한다.
VVC가 완성된 후에도 JVET 그룹은 VVC를 뛰어넘는 압축 효율에 대한 연구를 계속했다. JVET는 VVC 테스트 모델(VTM) 위에 몇 가지 추가 코딩 도구를 통합하여 향상된 압축 모델(ECM)이라는 하나의 레퍼런스 소프트웨어를 유지했다. 현재 ECM에서는 인트라 모드에 따라 PDPC가 사용된다. DIMD 모드의 경우 각 인트라 모드에 따라 PDPC가 사용된다. DIMD 모드에서는 두 가지 다른 위치의 PDPC 체계가 사용되며 각 인트라 모드에 적용된다. DIMD 모드에서 각도 모드가 사용되는 인트라 예측의 경우 예측 융합 전에 PDPC가 적용된다. DIMD 모드에서 DC 또는 평면 모드가 사용되는 인트라 예측의 경우 예측 융합 후에 PDPC가 적용된다. 이러한 비통합 설계는 표준화 관점에서 최적이 아닐 수 있다.
마찬가지로, 두 가지 다른 융합 방식 설계를 사용할 수 있으며 각각 DIMD와 TIMD에 적용된다. 각기 다른 융합 설계는 서로 다른 후보 및 가중치 계산과 연관되어 있다. DIMD가 적용되는 블록의 경우, 가장 높은 두 개의 HoG 바와 평면 모드에 해당하는 두 개의 IPM이 융합을 위해 선택된다. 그리고 평면의 가중치는 21/64(~1/3)로 고정된다. 나머지 43/64(~2/3)의 가중치는 두 개의 HoG IPM이 HoG 바의 진폭에 비례하여 분배된다. TIMD가 적용되는 블록의 경우, SATD 코스트가 가장 작은 처음 두 개의 모드를 가진 인트라 모드가 선택되고 해당 모드의 가중치는 SATD 코스트에서 계산된다. 이러한 통합되지 않은 설계는 표준화 관점에서 최적이 아닐 수 있다. 위의 방법 외에도 다양한 융합 방식을 통해 성능을 더욱 향상시킬 수 있는 여지가 있다.
현재 ECM 설계에서는 파생된 인트라 모드가 DIMD에서 이미 사용되었는지 여부와 관계없이 DIMD에서 파생된 인트라 모드가 최고 확률 인트라 모드(MPM)의 기본 목록에 포함된다. 성능을 더욱 향상시킬 수 있는 여지가 있다.
본 발명에서는 앞서 지적한 문제점을 해결하기 위해 기존 DIMD 모드의 설계를 단순화 및/또는 더욱 개선하는 방법을 제공한다. 일반적으로 본원에서 제안된 기술의 주요 특징은 다음과 같이 요약된다.
1). 예측 융합 전에 모든 인트라 예측에 PDPC를 적용하여 각도 모드와 DC/평면 모드에서 사용되는 PDPC가 DIMD 모드에서 통합된다. 이러한 방법의 한 예가 도 12a와 같은 블록 다이어그램에 나타나 있다.
2). 예측 융합 후 모든 인트라 예측에 PDPC를 적용하여 각도 모드와 DC/평면 모드에서 사용되는 PDPC가 DIMD 모드에서 통합된다. 이러한 방법의 한 예가 도 12b와 같은 블록 다이어그램에 나타나 있다.
3). DIMD 모드의 모든 인트라 예측에 대해 PDPC를 비활성화하여 각도 모드와 DC/평면 모드에서 사용되는 PDPC가 DIMD 모드에서 통합된다. 이러한 방법의 한 예가 도 12c와 같은 블록 다이어그램에 나타나 있다.
4). DIMD 모드와 TIMD 모드에서 사용되는 융합 방식을 통합하여, DIMD 모드에서 사용되는 융합 방식이 TIMD 모드에 적용된다.
5). TIMD 모드에서 사용되는 융합 방식을 DIMD 모드에 적용하여, DIMD 모드와 TIMD 모드에서 사용되는 융합 방식이 통합된다.
6). 융합 방식 선택에 대한 시그널을 통해 DIMD 모드와 TIMD 모드에서 사용되는 융합 방식이 통합된다.
7). 도출된 인트라 모드가 DIMD에서 이미 사용되었는지 여부에 관계없이 인트라 모드가 DIMD로부터 최고 확률 인트라 모드(MPM) 목록으로 도출된다.
8). 인트라 모드가 TIMD로부터 최고 확률 인트라 모드(MPM) 목록으로 도출된다.
제안된 방법은 TIMD/MDIP와 같은 다른 인트라 예측 코딩 모드에도 적용될 수 있다는 것에 주의한다. TIMD 모드에 적용된 또 다른 예는 도 11a 내지 11c의 블록 다이어그램에 설명되어 있다. 도 11a는 TIMD의 융합 프로세스 전에 모든 PDPC 프로세스를 적용하는 예를 도시한다. 도 11b는 TIMD의 융합 프로세스 이후 모든 PDPC 프로세스를 적용한 예를 도시한다. 도 11c는 TIMD에서 모든 PDPC 프로세스를 비활성화한 예시를 도시한다.
제안된 방법은 결합된 인터 및 인트라 예측(CIIP)과 같은 다른 결합된 인트라 및 인터 예측 코딩 모드에도 적용될 수 있다는 점에 주의한다.
개시된 방법은 독립적으로 또는 공동으로 적용될 수 있다는 점에 주의한다.
DIMD에서 앵귤러 모드 및 DC/평면 모드 에 사용되는 PDPC의 조화
본 발명의 하나 이상의 실시예에 따르면, 동일한 PDPC 위치가 DIMD 모드 하에서 각도 모드와 DC/평면 모드 모두에 적용된다. 이러한 목표를 달성하기 위해 다른 방법이 사용될 수 있다.
본 발명의 일 실시예에서는, 도 12a에 도시된 바와 같이, DIMD 모드에서 예측 융합 전의 PDPC 연산을 적용하는 것이 제안된다. 즉, 각 인트라 예측 모드는 DIMD 모드에서 예측 융합 전에 해당 인트라 모드에 따라 PDPC를 적용한다.
본 발명의 또 다른 예에서, 도 12b에 도시된 바와 같이, 예측 융합 후 DIMD 모드에서 PDPC 연산을 적용하는 것이 제안된다. 즉, 특정 모드(예: DC, 평면)에 따라 세 가지 예측자의 가중치 조합이 PDPC를 적용한다. 한 예로, 특정 모드가 평면 모드인 경우 DIMD 모드에서 예측 융합 후 평면 모드의 PDPC가 적용된다. 또 다른 예에서는 가장 높은 히스토그램 막대에 해당하는 IPM이 특정 모드로 선택된 다음 DIMD 모드에서 예측 융합 후 특정 모드의 PDPC가 적용된다. 또 다른 예에서는, 두 번째로 높은 히스토그램 막대에 해당하는 IPM을 특정 모드로 선택한 다음 DIMD 모드에서 예측 융합 후 특정 모드의 PDPC가 적용된다.
본 발명의 또 다른 실시예에서, DIMD 모드에서 PDPC 오퍼레이션을 비활성화하는 것이 제안된다. 즉, 도 12c에 도시된 바와 같이, DIMD 모드에서는 PDPC 연산이 사용되지 않는다.
DIMD 모드와 TIMD 모드에 사용되는 융합 방식의 조화
본 발명의 하나 이상의 실시예에 따르면, 동일한 융합 방식이 DIMD 모드 및 TIMD 모드 모두에 적용된다. 도 14의 블록 다이어그램에 도시된 바와 같이, 이 목표를 달성하기 위해 다른 방법이 사용될 수 있다. 융합 방식은 DIMD 모드 및 TIMD 모드에서 예측자의 가중치 평균으로 적용된다.
본 발명의 일 실시예에서는, 도 14의 단계(1404)에 도시된 바와 같이, DIMD 모드에서 사용된 융합 방식을 TIMD 모드에 적용하는 것이 제안된다. 즉, TIMD 모드의 경우, SATD 코스트가 가장 작은 처음 두 모드와 평면 모드가 융합을 위한 예측자로 선택되고, 예측자의 가중치 평균이 계산된다. 그리고 평면의 가중치는 21/64(~1/3)로 고정된다. 그런 다음 나머지 43/64(~2/3)의 가중치를 다른 두 모드가 SATD 코스트의 진폭에 비례하여 분배된다.
본 발명의 또 다른 예에서, 도 14의 단계(1406)에 도시된 바와 같이, TIMD 모드에서 사용된 융합 방식을 DIMD 모드에 적용하는 것이 제안된다. 즉, DIMD 모드의 경우, HoG 막대가 가장 높은 처음 두 개의 모드가 융합을 위한 예측자로 선택되고, 모드의 가중치는 HoG 막대의 진폭에 비례하여 HoG IPM으로부터 계산된다. 히스토그램의 최대값이 0인 경우(그라데이션 분석을 수행할 수 없거나 템플릿을 구성하는 영역이 평평하다는 것을 의미), 현재 블록의 인트라 예측 모드로 하나의 기본 모드(default mode)(예: DC, 평면)가 선택된다.
본 발명의 또 다른 예에서, 도 14의 단계(1408)에 도시된 바와 같이, TIMD 및/또는 DIMD 모드에서 융합 방식의 선택을 신호하는 것이 제안된다. 일 실시예에서, 주어진 CU에 대해, 플래그가 디코더에 전달되어 블록이 DIMD 모드를 사용하는지 여부를 나타낸다. DIMD 모드를 사용하여 코딩되는 경우, 하나의 플래그가 디코더에 추가로 신호되어 어떤 융합 방식이 사용되는지(예를 들어, 전술한 제1 융합 방식 또는 제2 융합 방식)를 나타낸다.
MPM 목록에 사용된 DIMD 모드 수정
본 발명의 또 다른 측면에서는, 도출된 인트라 모드가 이미 DIMD에서 사용되고 있는지 여부에 따라, DIMD로부터 인트라 모드를 인트라 최고 확률 모드(MPM) 목록으로 도출하는 것이 제안된다. 본 발명의 하나 이상의 실시예에 따르면, 융합 방식이 DIMD 모드에서 사용되는 경우, DIMD에서 도출된 인트라 모드는 MPM 리스트의 후보로 사용될 수 있다. 즉, 융합 방식이 DIMD 모드에서 사용되지 않는다면, DIMD에서 도출된 인트라 모드는 MPM 리스트의 후보로 사용될 수 없다. 도 15는 이 과정의 예를 도시한다. 단계(1502)에서, 디코더는 융합 방식이 DIMD 모드에서 적용되는지 여부를 결정할 수 있다. 단계(1504)에서, 디코더는 DIMD 모드로부터 인트라 모드를 인트라 최고 확률 모드(MPM) 목록으로 도출할지 여부를 결정할 수 있다.
본 발명의 또 다른 측면에서는, TIMD로부터 인트라 모드를 인트라 최고 확률 모드(MPM) 목록으로 도출하는 것이 제안된다. 일반적으로, 비디오 및 이미지 콘텐츠에 일반적으로 존재하는 다양한 방향 구조를 효율적으로 모델링하는 비방향성 모드(평면형, DC) 및 65개의 각도 모드를 포함하여 67개의 인트라 예측 모드가 VVC에 존재한다. 본 발명의 하나 이상의 실시예에서, TIMD에서 파생된 인트라 모드는 MPM 목록의 후보로 사용될 수 있다. 일 실시예에서, DIMD로부터 도출된 인트라 모드는 MPM 리스트의 후보로 사용될 수 없고, TIMD로부터 도출된 인트라 모드는 MPM 리스트의 후보로 사용될 수 있다.
본 발명의 또 다른 측면에서는, 도출된 인트라 모드가 이미 TIMD에서 사용되고 있는지 여부에 따라, TIMD로부터 인트라 모드를 최고 확률 모드(MPM)의 목록으로 도출하는 것이 제안된다. 본 발명의 하나 이상의 실시예에 따르면, 융합 방식이 TIMD 모드에서 사용되는 경우, TIMD에서 도출된 인트라 모드는 MPM 리스트의 후보로 사용될 수 있다. 즉, 융합 방식이 TIMD 모드에서 사용되지 않는 경우, TIMD에서 도출된 인트라 모드는 MPM 리스트의 후보로 사용될 수 없다. 하나 이상의 실시예에서, 디코더는 융합 방식이 TIMD 모드에서 적용되지 않는다는 결정에 따라 TIMD 모드에서 도출된 인트라 모드를 MPM 목록의 후보로 추가하지 않는다.
전술한 방법은 하나 이상의 회로를 포함하는 장치를 사용하여 구현될 수 있으며, 여기에는 애플리케이션 특정 집적 회로(ASIC), 디지털 신호 프로세서(DSP), 디지털 신호 처리 장치(DSPD), 프로그래머블 논리 소자(PLD), 필드 프로그래머블 게이트 어레이(FPGA), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 또는 기타 전자 부품이 포함될 수 있다. 장치는 위에서 설명한 방법을 수행하기 위해 다른 하드웨어 또는 소프트웨어 구성 요소와 함께 회로를 사용할 수 있다. 전술한 각 모듈, 서브 모듈, 유닛 또는 서브 유닛은 적어도 부분적으로 하나 이상의 회로를 사용하여 구현될 수 있다.
도 13은 사용자 인터페이스(1650)와 결합된 컴퓨팅 환경(1610)을 도시한다. 컴퓨팅 환경(1610)은 데이터 처리 서버의 일부일 수 있다. 컴퓨팅 환경(1610)은 프로세서(1620), 메모리(1630) 및 입력/출력(I/O) 인터페이스(1640)를 포함한다.
프로세서(1620)는 일반적으로 디스플레이, 데이터 수집, 데이터 통신 및 이미지 처리와 관련된 동작과 같은 컴퓨팅 환경(1610)의 전반적인 동작을 제어한다. 프로세서(1620)는 전술한 방법의 단계들 전부 또는 일부를 수행하기 위한 명령어들을 실행하기 위한 하나 이상의 프로세서를 포함할 수 있다. 또한, 프로세서(1620)는 프로세서(1620)와 다른 컴포넌트들 간의 상호 작용을 용이하게 하는 하나 이상의 모듈을 포함할 수 있다. 프로세서는 중앙 처리 장치(CPU), 마이크로프로세서, 단일 칩 머신, 그래픽 처리 장치(GPU) 등이 될 수 있다.
메모리(1630)는 컴퓨팅 환경(1610)의 동작을 지원하기 위해 다양한 유형의 데이터를 저장하도록 구성된다. 메모리(1630)는 미리 결정된 소프트웨어(1632)를 포함할 수 있다. 그러한 데이터의 예로는 컴퓨팅 환경(1610)에서 동작하는 임의의 애플리케이션 또는 방법에 대한 명령어, 비디오 데이터 세트, 이미지 데이터 등이 포함된다. 메모리(1630)는 임의의 유형의 휘발성 또는 비휘발성 메모리 장치, 또는 이들의 조합, 예를 들어 정적 랜덤 액세스 메모리(SRAM), 전기적으로 삭제되는 프로그램 가능 판독 전용 메모리(EEPROM), 삭제 가능한 프로그램 가능 판독 전용 메모리(EPROM), 프로그램 가능 판독 전용 메모리(PROM), 판독 전용 메모리(ROM), 자기 메모리, 플래시 메모리, 자기 또는 광 디스크 등을 사용하여 구현될 수 있다.
입출력 인터페이스(1640)는 프로세서(1620)와 키보드, 클릭 휠, 버튼 등과 같은 주변 인터페이스 모듈 사이의 인터페이스를 제공한다. 버튼은 홈 버튼, 스캔 시작 버튼 및 스캔 중지 버튼을 포함할 수 있지만 이에 제한되지 않는다. I/O 인터페이스(1640)는 인코더 및 디코더와 결합될 수 있다.
일 실시예에서, 전술한 방법들을 수행하기 위해, 컴퓨팅 환경(1610) 내의 프로세서(1620)에 의해 실행 가능한 복수의 프로그램들을 포함하는 비일시적 컴퓨터 판독 가능 저장 매체(예를 들어, 메모리(1630))가 제공된다. 대안적으로, 비일시적 컴퓨터 판독 가능 저장 매체는 비디오 데이터를 디코딩하는 디코더(예를 들어, 도 2의 비디오 인코더(20))가 사용하기 위해, 예를 들어, 전술한 인코딩 방법을 사용하여 인코더(예를 들어, 도 3의 비디오 디코더(30))에 의해 생성된 인코딩된 비디오 정보(예를 들어, 하나 이상의 구문 요소를 포함하는 비디오 정보)를 포함하는 비트스트림 또는 데이터 스트림을 저장할 수 있을 것이다. 비일시적 컴퓨터 판독 가능 저장 매체는, 예를 들어, 롬, 랜덤 액세스 메모리(RAM), CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 될 수 있다.
일 실시예에서, 하나 이상의 프로세서(예를 들어, 프로세서(1620)); 및 하나 이상의 프로세서에 의해 실행 가능한 복수의 프로그램이 저장된 비일시적 컴퓨터 판독 가능 저장 매체 또는 메모리(1630)를 포함하는 컴퓨팅 장치가 제공되며, 여기서 하나 이상의 프로세서는 복수의 프로그램의 실행 시 전술한 방법들을 수행하도록 구성된다.
일 실시예에서, 전술한 방법들을 수행하기 위해, 컴퓨팅 환경(1610) 내의 프로세서(1620)에 의해 실행 가능한 복수의 프로그램들, 예를 들어 메모리(1630)을 포함하는 컴퓨터 프로그램 제품이 제공될 수도 있다. 예를 들어, 컴퓨터 프로그램 제품은 비일시적 컴퓨터 판독 가능 저장 매체를 포함할 수 있다.
실시예에서, 컴퓨팅 환경(1610)은 상기 방법들을 수행하기 위해, 하나 이상의 ASIC, DSP, 디지털 신호 처리 장치(DSPD), 프로그래머블 로직 장치(PLD), FPGA, GPU, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 또는 기타 전자 구성요소로 구현될 수 있다.
본 발명의 설명은 예시의 목적으로 제시되었으며, 본 발명을 완전하게 설명하거나 이에 제한하려는 의도가 아니다. 많은 수정, 변형 및 대체 구현은 전술한 설명 및 관련 도면에 제시된 교시의 이점을 가진 당업자에게 명백할 것이다.
특별히 달리 기재되지 않는 한, 본 발명에 따른 방법의 단계의 순서는 예시적인 것일 뿐이며, 본 발명에 따른 방법의 단계는 위에서 구체적으로 설명한 순서로 제한되는 것이 아니라 실질적인 조건에 따라 변경될 수 있다. 또한, 본 발명에 따른 방법의 단계 중 적어도 하나는 실질적 요건에 따라 조정, 결합 또는 삭제될 수 있다.
실시예들은 본 발명의 원리를 설명하고 당업자가 다양한 구현에 대하여 본 발명을 이해할 수 있도록 하기 위해 선택 및 설명되었으며, 고려된 특정 용도에 적합한 다양한 수정을 통해 기본 원리 및 다양한 구현을 가장 잘 활용할 수 있도록 하기 위해 설명되었다. 따라서, 본 발명의 범위는 개시된 구현의 특정 실시예에 제한되어서는 안 되며, 수정 및 기타 구현이 본 발명의 범위 내에 포함되도록 의도된 것으로 이해되어야 한다.

Claims (16)

  1. 비디오 디코딩을 위한 방법으로서, 상기 방법은:
    디코더에 의해, 디코더 측 인트라 모드 도출(decoder-side intra mode derivation, DIMD) 모드와 템플릿 기반 인트라 모드 도출(template-based intra mode derivation, TIMD) 모드에서 적용되는 융합 방식을 결정하는 단계
    를 포함하고,
    상기 융합 방식은 상기 DIMD 모드와 상기 TIMD 모드에서 예측자의 가중치 평균으로 적용되는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 DIMD 모드에서 채택된 상기 융합 방식의 모드를 상기 TIMD 모드에 적용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    평면 모드, 및 상기 TIMD 모드에서 절대 변환 차이(absolute transformed differences, SATD) 코스트(cost)의 가장 작은 합을 갖는 두 개의 모드를 융합을 위한 상기 예측자로 선택하는 단계; 및
    상기 평면 모드와 상기 가장 작은 SATD 코스트를 갖는 두 개의 모드의 상기 가중치 평균을 결정하는 단계
    를 더 포함하고,
    상기 평면 모드의 가중치는 상기 융합에서 고정되어 있으며, 잔여 가중치는 상기 두 개의 모드 각각에 대한 상기 SATD 코스트에 따라 상기 두 개의 모드 간에 분배되는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 TIMD 모드에서 채택된 상기 융합 방식 모드를 상기 DIMD 모드에 적용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 DIMD 모드에서 배향된 그라데이션(HoG) 막대의 가장 높은 히스토그램을 갖는 두 개의 모드를 융합을 위한 상기 예측자로 선택하는 단계; 및
    상기 두 개의 모드의 상기 HoG 막대의 진폭에 기초하여, 상기 융합에서 상기 두 개의 모드의 상기 가중치 평균을 결정하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 가장 높은 HoG 막대의 최대값이 0과 같다는 결정에 응답하여, 기본 모드(default mode)를 현재 블록에 대한 인트라 예측 모드로 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 TIMD 모드에서 또는 상기 DIMD 모드에서 상기 융합 방식의 선택을 수신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 디코더에 의해, 상기 DIMD 모드가 블록에 적용되었는지 여부를 나타내는 신호 플래그를 수신하는 단계; 및
    상기 DIMD 모드가 상기 블록에 적용된다는 결정에 응답하여, 상기 디코더에 의해, 상기 블록에 적용될 상기 융합 방식을 나타내는 또 다른 신호 플래그를 수신하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  9. 디코더 측 인트라 모드 도출(DIMD)로 비디오 디코딩을 하기 위한 방법으로서, 상기 방법은:
    디코더에 의해, 융합 방식이 상기 DIMD 모드에서 적용될지 여부를 결정하는 단계; 및
    상기 융합 방식이 상기 DIMD 모드에서 적용되는지 여부에 기초하여, 상기 디코더에 의해, 상기 DIMD 모드로부터 도출된 인트라 모드를 인트라 최고 확률 모드(MPM)의 목록에 추가할지 여부를 결정하는 단계
    를 포함하고,
    상기 융합 방식은 상기 DIMD 모드에서 예측자의 가중치 평균으로 적용되는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 DIMD 모드로부터 도출된 인트라 모드를 상기 최고 확률 모드(MPM)의 목록에 추가할지 여부를 결정하는 단계는:
    상기 융합 방식이 상기 DIMD 모드에 적용된다는 결정에 응답하여, 상기 DIMD 모드로부터 도출된 상기 인트라 모드를 상기 MPM 목록의 후보로 추가하는 단계; 및
    상기 융합 방식이 상기 DIMD 모드에 적용되지 않는다는 결정에 응답하여, 상기 DIMD 모드로부터 도출된 상기 인트라 모드를 상기 MPM 목록의 후보로 추가하지 않는 단계
    를 포함하는 것을 특징으로 하는 방법.
  11. 템플릿 기반 인트라 모드 도출(TIMD)을 사용하는 비디오 디코딩 방법으로서, 상기 방법은:
    디코더에 의해, 상기 TIMD 모드에서 도출된 인트라 모드를 인트라 최고 확률 모드(MPM)의 목록에 추가할지 여부를 결정하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 디코더 측 인트라 모드 도출(DIMD) 모드로부터 도출된 인트라 모드가 상기 MPM 목록의 후보로 추가되지 않는다는 결정에 응답하여, 상기 TIMD 모드로부터 도출된 상기 인트라 모드를 상기 MPM 목록의 후보로 추가하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    융합 방식이 상기 TIMD 모드에 적용되었는지 여부에 기초하여, 상기 디코더에 의해, 상기 TIMD 모드로부터 도출된 인트라 모드를 상기 MPM 목록에 추가할지 여부를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  14. 제13항에 있어서,
    상기 융합 방식이 상기 TIMD 모드에 적용된다는 결정에 응답하여, 상기 TIMD 모드로부터 도출된 상기 인트라 모드를 상기 MPM 목록의 후보로 추가하는 단계; 및
    상기 융합 방식이 상기 TIMD 모드에 적용되지 않는다는 결정에 응답하여, 상기 TIMD 모드로부터 도출된 상기 인트라 모드를 상기 MPM 목록의 후보로 추가하지 않는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  15. 비디오 디코딩용 장치로서, 상기 장치는:
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행 가능한 명령을 저장하도록 구성된 메모리
    를 포함하고,
    상기 하나 이상의 프로세서는, 상기 명령의 실행 시, 제1항 내지 제14항 중 어느 한 항에 따른 방법을 수행하도록 구성되는 것을 특징으로 하는 비디오 디코딩용 장치.
  16. 하나 이상의 컴퓨터 프로세서에 의해 실행될 때, 상기 하나 이상의 컴퓨터 프로세서가 제1항 내지 제14항 중 어느 한 항에 따른 방법을 수행하도록 하는 컴퓨터 실행 가능 명령을 저장하는 것을 특징으로 하는 비디오 디코딩용 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020247010739A 2021-08-30 2022-08-26 디코더 측 인트라 모드 도출을 위한 방법 및 장치 KR20240051257A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163235774P 2021-08-30 2021-08-30
US63/235,774 2021-08-30
PCT/US2022/041762 WO2023034152A1 (en) 2021-08-30 2022-08-26 Methods and devices for decoder-side intra mode derivation

Publications (1)

Publication Number Publication Date
KR20240051257A true KR20240051257A (ko) 2024-04-19

Family

ID=85411550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247010739A KR20240051257A (ko) 2021-08-30 2022-08-26 디코더 측 인트라 모드 도출을 위한 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20240051257A (ko)
WO (1) WO2023034152A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10542264B2 (en) * 2017-04-04 2020-01-21 Arris Enterprises Llc Memory reduction implementation for weighted angular prediction
CN118075473A (zh) * 2017-11-28 2024-05-24 Lx 半导体科技有限公司 图像编码/解码方法、图像数据的传输方法和存储介质
EP3709644A1 (en) * 2019-03-12 2020-09-16 Ateme Method for image processing and apparatus for implementing the same
CN111083489B (zh) * 2018-10-22 2024-05-14 北京字节跳动网络技术有限公司 多次迭代运动矢量细化

Also Published As

Publication number Publication date
WO2023034152A1 (en) 2023-03-09

Similar Documents

Publication Publication Date Title
US10419755B2 (en) Confusion of multiple filters in adaptive loop filtering in video coding
US10419757B2 (en) Cross-component filter
JP7233218B2 (ja) ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること
EP4378164A1 (en) Video coding using multi-direction intra prediction
WO2023023197A1 (en) Methods and devices for decoder-side intra mode derivation
US20240187624A1 (en) Methods and devices for decoder-side intra mode derivation
KR20240051257A (ko) 디코더 측 인트라 모드 도출을 위한 방법 및 장치
KR20240049364A (ko) 디코더측 인트라 모드 도출을 위한 방법 및 디바이스
WO2023141238A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023129744A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023081322A1 (en) Intra prediction modes signaling
WO2023154574A1 (en) Methods and devices for geometric partitioning mode with adaptive blending
WO2023164245A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023114155A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023049292A1 (en) Methods and devices for decoder-side intra mode derivation
WO2023034629A1 (en) Intra prediction modes signaling
WO2023091688A1 (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
CN117730531A (zh) 用于解码器侧帧内模式推导的方法和设备
WO2023192336A1 (en) Methods and devices for high precision intra prediction
WO2023212254A1 (en) Methods and devices for high precision intra prediction
WO2022271756A1 (en) Video coding using multi-direction intra prediction
WO2023141338A1 (en) Methods and devices for geometric partitioning mode with split modes reordering
WO2023250047A1 (en) Methods and devices for motion storage in geometric partitioning mode