KR102278720B1 - 비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링 - Google Patents

비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링 Download PDF

Info

Publication number
KR102278720B1
KR102278720B1 KR1020197036176A KR20197036176A KR102278720B1 KR 102278720 B1 KR102278720 B1 KR 102278720B1 KR 1020197036176 A KR1020197036176 A KR 1020197036176A KR 20197036176 A KR20197036176 A KR 20197036176A KR 102278720 B1 KR102278720 B1 KR 102278720B1
Authority
KR
South Korea
Prior art keywords
block
video data
mode
transform
video
Prior art date
Application number
KR1020197036176A
Other languages
English (en)
Other versions
KR20200019132A (ko
Inventor
바딤 세레긴
신 자오
마르타 카르체비츠
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20200019132A publication Critical patent/KR20200019132A/ko
Application granted granted Critical
Publication of KR102278720B1 publication Critical patent/KR102278720B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117Filters, e.g. for pre-processing or post-processing
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks

Landscapes

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

Abstract

비디오 데이터를 디코딩하는 방법은, 비디오 데이터의 블록을 수신하는 단계, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하는 단계, 및 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하는 단계를 포함한다. 방법은 또한, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하는 단계, 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 단계로서, 하나 이상의 비디오 코딩 툴들은 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 단계, 및 결정된 사용에 기초하여 하나 이상의 코딩 툴들을 비디오 데이터의 블록에 적용하는 단계를 포함할 수도 있다.

Description

비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링
본 출원은 2017년 6월 15일자로 출원된 미국 가출원 제62/520,426호의 이익을 주장하고, 그의 전체 내용은 본 명세서에 참조에 의해 통합된다.
기술 분야
본 개시는 비디오 인코딩 및 비디오 디코딩에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 디지털 보조기들 (PDA들), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트 폰들", 비디오 텔레컨퍼런싱 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, 어드밴스드 비디오 코딩 (Advanced Video Coding; AVC), 고 효율 비디오 코딩 (High Efficiency Video Coding; HEVC 또는 H.265) 표준에 의해 정의된 표준들, 및 이러한 표준들의 확장들에서 설명된 것들과 같은 비디오 코딩 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 코딩 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 코딩 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소 또는 제거하기 위해 공간 (인트라 픽처) 예측 및/또는 시간 (인터 픽처) 예측을 포함한다. 블록 기반 비디오 코딩에 대해, 비디오 슬라이스 (예를 들어, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝될 수도 있으며, 이 비디오 블록들은 또한 트리블록들, 코딩 유닛들 (CU들) 및/또는 코딩 노드들로 지칭될 수도 있다. 픽처들은 프레임들로 지칭될 수도 있고, 레퍼런스 픽처들은 레퍼런스 프레임들로 지칭될 수도 있다.
공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 초래한다. 잔차 데이터는 코딩될 원래의 블록과 예측 블록 간의 픽셀 차이들을 나타낸다. 추가의 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 후에 양자화될 수도 있는 잔차 변환 계수들을 초래할 수도 있다. 엔트로피 코딩이 훨씬 더 많은 압축을 달성하기 위해 적용될 수도 있다.
일반적으로, 본 개시는 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 것에 관련된 기법들을 설명한다. 일부 예들에서, 비디오 인코더 또는 디코더는 비디오 데이터의 블록을 위해 사용되는 인트라 예측 모드에 기초하여 비디오 코딩 툴의 사용을 결정할 수도 있다. 다른 예들에서, 비디오 인코더 또는 디코더는 비디오 데이터의 블록을 위해 사용되는 변환에 기초하여 비디오 코딩 툴의 사용을 결정할 수도 있다. 비디오 코딩 툴들은 포지션 의존적 예측 조합 (position-dependent prediction combination; PDPC) 모드 또는 (예를 들어, 모드 의존적 인트라 평활화 (mode dependent intra smoothing; MDIS) 와 같은) 인트라 예측 레퍼런스 샘플들을 필터링하기 위한 기법들을 포함할 수도 있다. 이렇게 하여, 비디오 인코더는 특정한 변환을 표시하는 신택스 엘리먼트를 시그널링하도록 구성될 수도 있고 비디오 디코더는 그 변환과 그 변환에 대한 신택스 엘리먼트로부터의 비디오 코딩 툴의 사용 양자 모두를 결정하도록 구성될 수도 있다. 이로써, 오버헤드 시그널링이 감소되고 압축 효율이 증가될 수도 있다.
하나의 예에서, 비디오 데이터를 디코딩하는 방법은, 비디오 데이터의 블록을 수신하는 단계, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하는 단계, 및 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 디코딩하도록 구성된 장치는, 비디오 데이터의 블록을 저장하도록 구성된 메모리, 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성된다.
다른 예에서, 비디오 데이터를 디코딩하도록 구성된 장치는, 비디오 데이터의 블록을 수신하기 위한 수단, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하기 위한 수단, 및 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하기 위한 수단을 포함한다.
다른 예에서, 본 개시는 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 설명하고, 그 명령들은, 실행될 때, 비디오 데이터를 디코딩하도록 구성된 디바이스의 하나 이상의 프로세서들로 하여금, 비디오 데이터의 블록을 수신하게 하고, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하게 하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하게 한다.
다른 예에서, 비디오 데이터를 인코딩하는 방법은, 비디오 데이터의 블록을 수신하는 단계, 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하는 단계, 및 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하는 단계를 포함한다.
다른 예에서, 비디오 데이터를 인코딩하도록 구성된 장치는, 비디오 데이터의 블록을 저장하도록 구성된 메모리, 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성된다.
본 개시의 하나 이상의 양태들의 상세들은 첨부 도면들 및 이하의 상세한 설명에 기재된다. 본 개시에서 설명된 기법들의 다른 피처들, 목적들, 및 이점들은 상세한 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시의 기법들을 구현하도록 구성된 예의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록 다이어그램이다.
도 2a 는 QTBT (quadtree plus binary tree) 구조를 사용한 블록 파티셔닝의 예를 예시하는 개념 다이어그램이다.
도 2b 는 도 2a 의 QTBT 구조를 사용한 블록 파티셔닝에 대응하는 예의 트리 구조를 예시하는 개념 다이어그램이다.
도 3 은 HEVC 에서 정의된 35 개의 인트라 예측 모드들의 예이다.
도 4a 는 본 개시의 기법들에 따른 필터링되지 않은 레퍼런스를 사용한 4×4 블록의 예측을 예시한다.
도 4b 는 본 개시의 기법들에 따른 필터링된 레퍼런스를 사용한 4×4 블록의 예측을 예시한다.
도 5 는 인트라 레퍼런스 필터링의 예를 예시한다.
도 6 은 본 개시의 기법들을 구현하도록 구성된 비디오 인코더의 예를 예시하는 블록 다이어그램이다.
도 7 은 본 개시의 기법들을 구현하도록 구성된 비디오 디코더의 예를 예시하는 블록 다이어그램이다.
도 8 은 본 개시의 예의 인코딩 방법을 예시하는 플로우차트이다.
도 9 는 본 개시의 예의 디코딩 방법을 예시하는 플로우차트이다.
본 개시는 인트라 예측을 사용하여 비디오 데이터의 블록을 코딩하기 위한 기법들을 설명한다. 일부 예들에서, 본 개시는 예측 방향들, 인트라 필터링, 변환 프로세싱, 및 비디오 코딩 툴들 (예를 들어, 비디오 인코딩 및 디코딩을 위한 특정 비디오 코딩 기법들) 의 결정을 위한 기법들을 설명한다.
도 1 은 인트라 예측 필터링 및 변환 프로세싱을 위해 본 개시의 기법들을 수행하도록 구성될 수도 있는 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록 다이어그램이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 비디오 데이터를 컴퓨터 판독가능 매체 (16) 를 통해 목적지 디바이스 (14) 에 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (예를 들어, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋들, 이를 테면 소위 "스마트" 폰들 (또는 더 일반적으로, 이동국들), 태블릿 컴퓨터들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한, 광범위한 디바이스들 중 임의의 것을 포함할 수도 있다. 이동국은 무선 네트워크를 통해 통신할 수 있는 임의의 디바이스일 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신을 위해 장비될 수도 있다. 따라서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스들 (예를 들어, 이동국들) 일 수도 있다. 소스 디바이스 (12) 는 예의 비디오 인코딩 디바이스 (즉, 비디오 데이터를 인코딩하기 위한 디바이스) 이다. 목적지 디바이스 (14) 는 예의 비디오 디코딩 디바이스 (즉, 비디오 데이터를 디코딩하기 위한 디바이스) 이다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 데이터를 저장하도록 구성된 저장 매체들 (20), 비디오 인코더 (22), 및 출력 인터페이스 (24) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (26), 인코딩된 비디오 데이터를 저장하도록 구성된 저장 매체들 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 다른 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 다른 컴포넌트들 또는 어레인지먼트들을 포함한다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스 (32) 를 포함하는 것보다는 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 예시된 시스템 (10) 은 하나의 예일 뿐이다. 비디오 데이터를 프로세싱 및/또는 코딩 (예를 들어, 인코딩 및/또는 디코딩) 하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 본 개시의 기법들은 일반적으로 비디오 인코딩 디바이스 및/또는 비디오 디코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, 통상적으로 "CODEC" 으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 단지, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이런 이유로, 시스템 (10) 은 예를 들면, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해, 소스 디바이스 (12) 와 목적지 디바이스 (14) 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 및/또는 비디오 콘텐트 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스 (video feed interface) 를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (18) 는 컴퓨터 그래픽 기반 데이터를 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 생성할 수도 있다. 소스 디바이스 (12) 는 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들 (예를 들어, 저장 매체들 (20)) 을 포함할 수도 있다. 본 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 사전-캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 출력 인터페이스 (24) 는 인코딩된 비디오 정보 (예를 들어, 인코딩된 비디오 데이터의 비트스트림) 를 컴퓨터 판독가능 매체 (16) 로 출력할 수도 있다.
목적지 디바이스 (14) 는, 컴퓨터 판독가능 매체 (16) 를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터 판독가능 매체 (16) 는, 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 일부 예들에서, 컴퓨터 판독가능 매체 (16) 는, 소스 디바이스 (12) 로 하여금, 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 에 실시간으로 송신할 수 있게 하는 통신 매체를 포함한다. 인코딩된 비디오 데이터는 통신 표준, 이를 테면 무선 통신 프로토콜에 따라 변조되고, 목적지 디바이스 (14) 에 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를 테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 목적지 디바이스 (14) 는 인코딩된 비디오 데이터 및 디코딩된 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들을 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스 (24) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스된 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는, 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 임의의 타입의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예를 들어, 웹사이트용), FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함한 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 이들 양자 모두의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시에서 설명된 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, DASH (dynamic adaptive streaming over HTTP) 와 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중 임의의 멀티미디어 애플리케이션의 지원으로 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
컴퓨터 판독가능 매체 (16) 는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적 매체들, 또는 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들과 같은 저장 매체들 (즉, 비일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 예를 들어 네트워크 송신을 통해 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생성 설비의 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 수신하고, 인코딩된 비디오 데이터를 포함하는 디스크를 생성할 수도 있다. 따라서, 컴퓨터 판독가능 매체 (16) 는, 다양한 예들에 있어서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하도록 이해될 수도 있다.
목적지 디바이스 (14) 의 입력 인터페이스 (26) 는 컴퓨터 판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터 판독가능 매체 (16) 의 정보는, 비디오 인코더 (22) 의 비디오 인코더 (22) 에 의해 정의되고 또한 비디오 디코더 (30) 에 의해 사용되는 신택스 정보를 포함할 수도 있고, 이 신택스 정보는 블록들 및 다른 코딩된 유닛들, 예를 들어, 픽처들의 그룹들 (GOP들) 의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함한다. 저장 매체들 (28) 은 입력 인터페이스 (26) 에 의해 수신된 인코딩된 비디오 데이터를 저장할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적합한 비디오 인코더 및/또는 비디오 디코더 회로부 중 임의의 것으로서 구현될 수도 있다. 기법들이 부분적으로 소프트웨어로 구현될 경우, 디바이스는 적합한 비일시적 컴퓨터 판독가능 매체에 소프트웨어에 대한 명령들을 저장하고, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하는 하드웨어로 명령들을 실행할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나는 개별의 디바이스에 있어서 조합된 CODEC 의 부분으로서 통합될 수도 있다.
일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 비디오 코딩 표준에 따라 동작할 수도 있다. 예의 비디오 코딩 표준들은 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼 및 ITU-T H.264 (또한 ISO/IEC MPEG-4 AVC 로 알려짐) (그 스케일가능 비디오 코딩 (SVC) 및 멀티-뷰 비디오 코딩 (MVC) 확장들을 포함함) 를 포함하지만, 이에 한정되지는 않는다. 추가로, 새로운 비디오 코딩 표준, 즉, 고 효율 비디오 코딩 (HEVC) 또는 ITU-T H.265 (그의 범위 및 스크린 콘텐츠 코딩 확장들, 3D 비디오 코딩 (3D-HEVC) 및 멀티뷰 확장들 (MV-HEVC) 및 스케일가능 확장 (SHVC) 들을 포함함) 는, ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (MPEG) 의 JCT-VC (Joint Collaboration Team on Video Coding) 에 의해 개발되었다. 비디오 코딩 표준들은 또한, Google VP8, VP9, VP10 과 같은 독점적 비디오 코덱들, 및 다른 조직들, 예를 들어, Alliance for Open Media 에 의해 개발된 비디오 코덱들을 포함한다.
일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 JVET (Joint Video Exploration Team) 에 의해 탐색되는 새로운 비디오 코딩 기법들을 포함한, 다른 비디오 코딩 기법들 및/또는 표준들에 따라 동작하도록 구성될 수도 있다. JVET 는 JEM (Joint Exploratory Model) 으로 불리는 소프트웨어 모델에 따라 테스팅을 수행한다.
이하에 더 상세히 설명될 바와 같이, 본 개시의 하나의 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성될 수도 있다. 마찬가지로, 비디오 인코더 (22) 는, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성될 수도 있다.
HEVC 및 다른 비디오 코딩 명세들에서, 비디오 시퀀스는 통상적으로 일련의 픽처들을 포함한다. 픽처들은 또한 "프레임들" 로 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 표기된 3 개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2-차원 어레이 (예를 들어, 블록) 이다. SCb 는 Cb 크로미넌스 샘플들의 2-차원 어레이이다. SCr 는 Cr 크로미넌스 샘플들의 2-차원 어레이이다. 크로미넌스 샘플들은 또한, 본 명세서에서 "크로마 (chroma)" 샘플들로 지칭될 수도 있다. 다른 인스턴스들에서, 픽처는 단색 (monochrome) 일 수도 있고 루마 샘플들의 어레이를 단지 포함할 수도 있다.
픽처의 인코딩된 표현 (예를 들어, 인코딩된 비디오 비트스트림) 을 생성하기 위해, 비디오 인코더 (22) 는 코딩 트리 유닛들 (CTU들) 의 세트를 생성할 수도 있다. CTU들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, CTU 는 단일 코딩 트리 블록 및 코딩 트리 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 N×N 블록일 수도 있다. CTU 는 또한 "트리 블록" 또는 "최대 코딩 유닛 (LCU)" 으로 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은 다른 표준들의 매크로블록들과 대체로 유사할 수도 있다. 그러나, CTU 는 특정한 사이즈에 반드시 한정되는 것은 아니며 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔 순서로 연속적으로 순서화된 정수 개의 CTU들을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (22) 는 CTU 의 코딩 트리 블록들에 대해 쿼드트리 파티셔닝을 재귀적으로 수행하여, 코딩 트리 블록들을 코딩 블록들, 따라서, 일명 "코딩 트리 유닛들" 로 분할할 수도 있다. 코딩 블록은 샘플들의 N×N 블록이다. CU 는 루마 샘플들의 코딩 블록 및 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 갖는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, CU 는 단일 코딩 블록 및 코딩 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (22) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은, 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록들을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, PU 는 단일 예측 블록 및 예측 블록을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (22) 는 CU 의 각각의 PU 의 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 에 대한 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 을 생성할 수도 있다.
비디오 인코더 (22) 는 PU 에 대한 예측 블록들을 생성하기 위해 인트라 예측 또는 인터 예측을 사용할 수도 있다. 비디오 인코더 (22) 가 PU 의 예측 블록들을 생성하기 위해 인트라 예측을 사용하면, 비디오 인코더 (22) 는 PU 를 포함하는 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (22) 가 CU 의 하나 이상의 PU들에 대한 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 을 생성한 후, 비디오 인코더 (22) 는 CU 에 대한 하나 이상의 잔차 블록들을 생성할 수도 있다. 하나의 예로서, 비디오 인코더 (22) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 원래의 루마 코딩 블록에서의 대응하는 샘플 간의 차이를 표시한다. 추가로, 비디오 인코더 (22) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. 크로마 예측의 하나의 예에서, CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 원래의 Cb 코딩 블록에서의 대응하는 샘플 간의 차이를 표시할 수도 있다. 비디오 인코더 (22) 는 또한 CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 원래의 Cr 코딩 블록에서의 대응하는 샘플 간의 차이를 표시할 수도 있다. 그러나, 크로마 예측을 위한 다른 기법들이 사용될 수도 있음을 이해해야 한다.
더욱이, 비디오 인코더 (22) 는 CU 의 잔차 블록들 (예를 들어, 루마, Cb, 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예를 들어, 루마, Cb, 및 Cr 변환 블록들) 로 분해하기 위해 쿼드트리 파티셔닝을 사용할 수도 있다. 변환 블록은, 동일한 변환이 적용되는 샘플들의 직사각형 (예를 들어, 정사각형 또는 비-정사각형) 블록이다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록을 가질 수도 있다. TU 의 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, TU 는 단일 변환 블록 및 변환 블록의 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (22) 는 TU 에 대한 계수 블록을 생성하기 위해 TU 의 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 TU 에 대한 루마 계수 블록을 생성하기 위해 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 계수 블록은 변환 계수들의 2-차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cb 계수 블록을 생성하기 위해 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cr 계수 블록을 생성하기 위해 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용할 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (22) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들이 그 변환 계수들을 나타내는데 사용되는 데이터의 양을 가능하게는 감소시키도록 양자화되어 추가의 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (22) 가 계수 블록을 양자화한 후, 비디오 인코더 (22) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들에 대해 콘텍스트-적응형 이진 산술 코딩 (CABAC) 을 수행할 수도 있다.
비디오 인코더 (22) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 따라서, 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은, NAL 유닛에서의 데이터의 타입의 표시, 및 필요에 따라 에뮬레이션 방지 비트들로 산재된 원시 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 의 형태로 그 데이터를 포함하는 바이트들을 포함하는 신택스 구조이다. NAL 유닛들의 각각은, NAL 유닛 헤더를 포함할 수도 있고 RBSP 를 캡슐화 (encapsulate) 한다. NAL 유닛 헤더는, NAL 유닛 타입 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 표시한다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수 개의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 인스턴스들에서, RBSP 는 제로 비트들을 포함한다.
비디오 디코더 (30) 는 비디오 인코더 (22) 에 의해 생성된 인코딩된 비디오 비트스트림을 수신할 수도 있다. 추가로, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위해 비트스트림을 파싱할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 재구성할 수도 있다. 비디오 데이터를 재구성하기 위한 프로세스는 일반적으로 비디오 인코더 (22) 에 의해 수행되는 프로세스와 상반될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들을 결정하기 위해 PU들의 모션 벡터들을 사용할 수도 있다. 추가로, 비디오 디코더 (30) 는 현재의 CU 의 TU들의 계수 블록들을 역 양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU들의 변환 블록들을 재구성하기 위해 계수 블록들에 대해 역 변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU들의 변환 블록들의 대응하는 샘플들에 부가함으로써 현재의 CU 의 코딩 블록들을 재구성할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 재구성함으로써, 비디오 디코더 (30) 는 픽처를 재구성할 수도 있다.
QTBT (quadtree plus binary tree) 파티션 구조는 JVET (Joint Video Exploration Team) 에 의해 현재 연구 중이다. J. An 등의 "Block partitioning structure for next generation video coding", 국제 전기통신 연합, COM16-C966, 2015년 9월 (이하 "VCEG 제안 COM16-C966") 에서, QTBT 파티셔닝 기법들은 HEVC 를 넘어서는 미래의 비디오 코딩 표준에 대해 설명되었다. 시뮬레이션들은 제안된 QTBT 구조가 HEVC 에서 사용된 쿼드트리 구조보다 더 효율적일 수도 있다는 것을 보여주었다.
VCEG 제안 COM16-C966 에서 설명된 QTBT 구조에서, CTB 는 먼저 쿼드트리 파티셔닝 기법들을 사용하여 파티셔닝되고, 여기서 하나의 노드의 쿼드트리 스플리팅은 노드가 최소 허용된 쿼드트리 리프 노드 사이즈에 도달할 때까지 반복될 수 있다. 최소 허용된 쿼드트리 리프 노드 사이즈는 신택스 엘리먼트 MinQTSize 의 값에 의해 비디오 디코더 (30) 에 표시될 수도 있다. 쿼드트리 리프 노드 사이즈가 (예를 들어, 신택스 엘리먼트 MaxBTSize 로 표시된 바와 같은) 최대 허용된 이진 트리 루트 노드 사이즈보다 크지 않은 경우, 쿼드트리 리프 노드는 이진 트리 파티셔닝을 사용하여 추가로 파티셔닝될 수 있다. 하나의 노드의 이진 트리 파티셔닝은 노드가 (예를 들어, 신택스 엘리먼트 MinBTSize 로 표시된 바와 같은) 최소 허용된 이진 트리 리프 노드 사이즈 또는 (예를 들어, 신택스 엘리먼트 MaxBTDepth 로 표시된 바와 같은) 최대 허용된 이진 트리 심도에 도달할 때까지 반복될 수 있다. VCEG 제안 COM16-C966 은 이진-트리 리프 노드들을 지칭하기 위해 용어 "CU" 를 사용한다. VCEG 제안 COM16-C966 에서, CU들은 어떤 추가의 파티셔닝 없는 변환 및 예측 (예를 들어, 인트라 예측, 인터 예측 등) 을 위해 사용된다. 일반적으로, QTBT 기법들에 따르면, 이진 트리 스플리팅을 위한 2 개의 스플리팅 타입들: 대칭적 수평 스플리팅 및 대칭적 수직 스플리팅이 존재한다. 각각의 경우에, 블록은 그 블록의 중간을 수평으로 또는 수직으로 양분하는 것에 의해 스플리팅된다. 이것은 블록을 4 개의 블록들로 분할하는 쿼드트리 파티셔닝과는 상이하다.
QTBT 파티셔닝 구조의 하나의 예에서, CTU 사이즈는 128×128 (예를 들어, 128×128 루마 블록 및 2 개의 대응하는 64×64 크로마 블록들) 로서 설정되고, MinQTSize 는 16×16 으로서 설정되고, MaxBTSize 는 64×64 로서 설정되고, (폭 및 높이 양자 모두에 대한) MinBTSize 는 4 로서 설정되고, MaxBTDepth 는 4 로서 설정된다. 쿼드트리 파티셔닝은 쿼드트리 리프 노드들을 생성하기 위해 먼저 CTU 에 적용된다. 쿼드트리 리프 노드들은 16×16 (즉, MinQTSize 는 16×16 임) 으로부터 128×128 (즉, CTU 사이즈) 까지의 사이즈를 가질 수도 있다. QTBT 파티셔닝의 하나의 예에 따르면, 리프 쿼드트리 노드가 128×128 인 경우, 리프 쿼드트리 노드의 사이즈가 MaxBTSize (즉, 64×64) 를 초과하기 때문에, 리프 쿼드트리 노드는 이진 트리에 의해 추가로 스플리팅될 수 없다. 그렇지 않으면, 리프 쿼드트리 노드는 이진 트리에 의해 추가로 파티셔닝된다. 따라서, 쿼드트리 리프 노드는 또한 이진 트리에 대한 루트 노드이고 이진 트리 심도를 0 으로서 갖는다. MaxBTDepth (예를 들어, 4) 에 도달하는 이진 트리 심도는 더 이상의 스플리팅이 없음을 의미한다. MinBTSize (예를 들어, 4) 와 동일한 폭을 갖는 이진 트리 노드는 더 이상의 수평 스플리팅이 없음을 의미한다. 유사하게, 높이가 MinBTSize 와 동일한 이진 트리 노드는 더 이상의 수직 스플리팅이 없음을 의미한다. 이진 트리의 리프 노드들 (CU들) 은 어떤 추가의 파티셔닝 없이 (예를 들어, 예측 프로세스 및 변환 프로세스를 수행하는 것에 의해) 추가로 프로세싱된다.
도 2a 는 QTBT 파티셔닝 기법들을 사용하여 파티셔닝된 블록 (50) (예를 들어, CTB) 의 예를 예시한다. 도 2a 에 도시된 바와 같이, QTBT 파티션 기법들을 사용하여, 결과의 블록들의 각각은 각각의 블록의 중심을 통해 대칭적으로 스플리팅된다. 도 2b 는 도 2a 의 블록 파티셔닝에 대응하는 트리 구조를 예시한다. 도 2b 에서의 실선들은 쿼드트리 스플리팅을 표시하고 점선들은 이진 트리 스플리팅을 표시한다. 하나의 예에서, 이진 트리의 각각의 스플리팅 (즉, 비-리프) 노드에서, 신택스 엘리먼트 (예를 들어, 플래그) 가 수행된 스플리팅의 타입 (예를 들어, 수평 또는 수직) 을 표시하기 위해 시그널링되고, 여기서 0 은 수평 스플리팅을 표시하고 1 은 수직 스플리팅을 표시한다. 쿼드트리 스플리팅에 대해서는, 스플리팅 타입을 표시할 필요가 없는데, 쿼드트리 스플리팅은 항상 블록을 동일한 사이즈를 가진 4 개의 서브-블록들로 수평으로 및 수직으로 스플리팅하기 때문이다.
도 2b 에 도시된 바와 같이, 노드 (70) 에서, 블록 (50) 은, 쿼드트리 파티셔닝을 사용하여, 도 2a 에 도시된, 4 개의 블록들 (51, 52, 53, 및 54) 로 스플리팅된다. 블록 (54) 은 더 이상 스플리팅되지 않고, 따라서 리프 노드이다. 노드 (72) 에서, 블록 (51) 은 이진 트리 파티셔닝을 사용하여 2 개의 블록들로 추가로 스플리팅된다. 도 2b 에 도시된 바와 같이, 노드 (72) 는 수직 스플리팅을 표시하는, 1 로 마킹된다. 이로써, 노드 (72) 에서의 스플리팅은 블록 (57) 및 블록들 (55 및 56) 양자 모두를 포함하는 블록을 초래한다. 블록들 (55 및 56) 은 노드 (74) 에서의 추가의 수직 스플리팅에 의해 생성된다. 노드 (76) 에서, 블록 (52) 은 이진 트리 파티셔닝을 사용하여 2 개의 블록들 (58 및 59) 로 추가로 스플리팅된다. 도 2b 에 도시된 바와 같이, 노드 (76) 는 수평 스플리팅을 표시하는, 1 로 마킹된다.
노드 (78) 에서, 블록 (53) 은 쿼드트리 파티셔닝을 사용하여 4 개의 동일한 사이즈 블록들로 스플리팅된다. 블록들 (63 및 66) 은 이 쿼드트리 파티셔닝으로부터 생성되고 추가로 스플리팅되지 않는다. 노드 (80) 에서, 좌측 상단 블록은 먼저 수직 이진 트리 스플리팅을 사용하여 스플리팅되어 블록 (60) 및 우측 수직 블록을 초래한다. 우측 수직 블록은 그 후 수평 이진 트리 스플리팅을 사용하여 블록들 (61 및 62) 로 스플리팅된다. 노드 (78) 에서의 쿼드트리 스플리팅으로부터 생성된 우측 하단 블록은 노드 (84) 에서 수평 이진 트리 스플리팅을 사용하여 블록들 (64 및 65) 로 스플리팅된다.
QTBT 파티셔닝의 하나의 예에서, 루마 및 크로마 파티셔닝은, 예를 들어, 쿼드트리 파티셔닝이 루마 및 크로마 블록들에 대해 공동으로 수행되는 HEVC 와는 반대로, I-슬라이스들에 대해 서로 독립적으로 수행될 수도 있다. 즉, 일부 예들에서, 루마 블록들 및 크로마 블록들은 루마 블록들 및 크로마 블록들이 직접 오버랩하지 않도록 별도로 파티셔닝될 수도 있다. 이로써, QTBT 파티셔닝의 일부 예들에서, 적어도 하나의 파티셔닝된 크로마 블록이 단일 파티셔닝된 루마 블록과 공간적으로 정렬되지 않도록 하는 방식으로 크로마 블록들이 파티셔닝될 수도 있다. 즉, 특정한 크로마 블록과 병치되는 루마 샘플들은 2 개 이상의 상이한 루마 파티션들 내에 있을 수도 있다.
HEVC 및 JEM 에서, 인트라 레퍼런스 (예를 들어, 인트라 예측을 위해 사용되는 레퍼런스 픽셀들/이웃 샘플들) 는 평활화될 수 있다. 일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 레퍼런스 샘플들에 필터를 적용하도록 구성될 수도 있다. HEVC 에서, 모드 의존적 인트라 평활화 (MDIS) 는, 비디오 인코더 (22) 및 비디오 디코더 (30) 가 특정한 인트라 예측 모드들에 대한 이웃 샘플들로부터 인트라 예측을 생성하기 전에 인트라 레퍼런스 (예를 들어, 이웃 샘플들) 에 필터를 적용하도록 구성된다.
도 3 은 HEVC 에서 정의된 35 개의 인트라 예측 모드들의 예를 도시하는 개념 다이어그램이다. HEVC 에서, 루마 블록은 평면 모드, DC 모드 및 33 개의 각도 모드들을 포함하는, 35 개의 인트라 예측 중 하나를 사용하여 예측될 수도 있다. HEVC 에서 정의된 인트라 예측의 35 개의 모드들은 이하의 표 1 에 도시된 바와 같이 인덱싱된다:
Figure 112019126206326-pct00001
비디오 인코더 (22) 및 비디오 디코더 (30) 는 현재의 인트라 예측 모드가 수평 또는 수직 방향 (예를 들어, 수평 또는 수직 인트라 예측 방향) 에 얼마나 가까운지 또는 얼마나 먼지에 기초하여 MDIS 가 인에이블되는 인트라 예측 모드들을 유도하도록 구성될 수도 있다. 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 현재의 인트라 예측 모드에 대한 인트라 모드 인덱스와 수평 및/또는 수직 모드 인트라 예측 모드의 인트라 예측 모드 인덱스 간의 절대 차이에 기초하여 특정한 인트라 모드가 수평 또는 수직 방향에 얼마나 가까운지 또는 얼마나 먼지를 유도하도록 구성될 수도 있다. 이 절대 차이가 소정의 임계치 (예를 들어, 그 임계치는 블록 사이즈 의존적일 수도 있다) 를 초과하면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 레퍼런스 샘플들에 MDIS 필터를 적용하도록 구성될 수도 있다. 이 절대 차이가 소정의 임계치 (예를 들어, 그 임계치는 블록 사이즈 의존적일 수도 있다) 이하이면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 레퍼런스 샘플들에 MDIS 필터를 적용하지 않도록 구성될 수도 있다. 예들의 임계치들은 10 (예를 들어, 4×4 블록들의 경우), 7 (예를 들어, 8×8 블록들의 경우), 1 (예를 들어, 16×16 블록들의 경우), 및 0 (예를 들어, 32×32 블록들의 경우) 을 포함할 수도 있다. 다시 말해서, 수평 또는 수직 방향들로부터 먼 인트라 예측 모드들에 대해, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 레퍼런스 필터를 적용하지 않을 수도 있다. 일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 DC 모드 또는 평면 모드와 같은 비-각도 인트라 예측 모드들에 대해 MDIS 필터를 적용하지 않을 수도 있다.
JEM 에서, MDIS 는 평활화 필터 (예를 들어, 레퍼런스 샘플 적응형 필터링 (RSAF) 또는 적응형 레퍼런스 샘플 평활화 (ARSS)) 로 대체되었고, 이는 모든 인트라 모드들에 대해 적용될 수 있다. 이러한 평활화 필터의, 인트라 레퍼런스 샘플들에 대한 적용은 인트라 평활화로 지칭될 수도 있다. 일부 예들에서, 평활화 필터는 DC 모드에 대해 적용되지 않는다. 비디오 인코더 (22) 는 평활화 필터가 현재의 블록에서 적용되는지 여부를 표시하기 위해 플래그를 생성 및 시그널링하도록 구성될 수도 있다. 비디오 디코더 (30) 는 현재의 블록에 대해 평활화 필터를 적용할지 여부를 결정하기 위해 이러한 플래그를 수신 및 파싱하도록 구성될 수도 있다.
일부 예들에서, 비디오 인코더 (22) 는 이러한 플래그를 명시적 플래그로서 시그널링하지 않도록 구성될 수도 있지만, 오히려, 비디오 인코더 (22) 는 평활화 필터가 변환 계수들의 특성 (예를 들어, 변환 계수들의 패리티) 에서 적용되는지 여부의 표시를 숨기도록 구성될 수도 있다. 마찬가지로, 비디오 디코더 (30) 는 변환 계수들의 특성 (예를 들어, 변환 계수들의 패리티) 으로부터 평활화 필터가 적용되는지 여부를 결정 (예를 들어, 플래그의 값을 결정) 하도록 구성될 수도 있다. 예를 들어, 변환 계수들이 소정의 패리티 조건 (예를 들어, 홀수 또는 짝수) 을 충족하는 경우, 플래그의 값은 1 로서 유도되고, 그렇지 않으면 플래그의 값은 0 으로서 유도된다.
JEM 에서 사용되는 다른 툴은 포지션 의존적 인트라 예측 조합 (PDPC) 모드이다. PDPC 모드는 인트라 예측자 및 인트라 레퍼런스 샘플들을 가중화하는 툴이고, 여기서 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (폭 및 높이를 포함하는) 코딩되는 블록의 블록 사이즈 및 인트라 예측 모드에 기초하여 가중치들을 유도한다.
본 개시에서 설명된 기법들은 임의의 조합으로 그리고 다른 방법들과의 임의의 결합으로 사용될 수도 있다. 인트라 평활화 및 PDPC 모드는 예시 및 설명을 목적으로 사용되고, 본 개시의 기법들은 그 예들에 한정되지 않고 개시된 방법들은 다른 툴들에 적용될 수 있다.
다음의 섹션들은 포지션 의존적 인트라 예측 조합 (PDPC) 코딩 모드에 대한 파라미터들을 결정하기 위한 기법들을 설명한다. 본 개시의 인트라 평활화 기법들은 PDPC 모드와 함께 사용될 수도 있다. 그러나, 인트라 평활화 및 PDPC 모드는 예시 및 설명을 목적으로 사용되고, 본 개시의 기법들은 그 예들에 한정되지 않고 개시된 방법들은 다른 툴들에 적용될 수 있다.
PDPC 코딩 모드를 사용하여 비디오 데이터를 코딩할 때, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 필터링된 및 필터링되지 않은 레퍼런스 값들에 기초하여 그리고 예측된 픽셀의 포지션에 기초하여 예측들을 조합하는 방법을 정의하는 하나 이상의 파라미터화된 방정식들을 사용할 수도 있다. 본 개시는, 비디오 인코더 (22) 가 (예를 들어, 레이트-왜곡 분석을 통해, 예를 들어, 이를 사용하여) 파라미터들의 세트들을 테스트하고 비디오 디코더 (30) 에 최적의 파라미터들 (예를 들어, 테스트되는 그 파라미터들 중에서 최상의 레이트-왜곡 성능을 초래하는 파라미터들) 을 시그널링하도록 구성될 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 비디오 데이터의 특성들 (예를 들어, 블록 사이즈, 블록 높이, 블록 폭 등) 로부터 PDPC 파라미터들을 결정하도록 구성될 수도 있다.
도 4a 는 본 개시의 기법들에 따른 필터링되지 않은 레퍼런스 (r) 를 사용한 4×4 블록의 예측 (p) 을 예시한다. 도 4b 는 본 개시의 기법들에 따른 필터링된 레퍼런스 (s) 를 사용한 4×4 블록의 예측 (q) 을 예시한다. 도 4a 및 도 4b 양자 모두는 4×4 픽셀 블록 및 17 (4x4+1) 개의 개별의 레퍼런스 값들을 예시하지만, 본 개시의 기법들은 임의의 블록 사이즈 및 수의 레퍼런스 값들에 적용될 수도 있다.
PDPC 코딩 모드를 수행할 때, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 필터링된 예측 (q) 과 필터링되지 않은 예측 (p) 간의 조합을 활용할 수도 있어, 코딩될 현재의 블록에 대한 예측된 블록이 필터링된 레퍼런스 (s) 및 필터링되지 않은 레퍼런스 (r) 어레이들 양자 모두로부터의 픽셀 값들을 사용하여 계산될 수 있다.
PDPC 의 기법들의 하나의 예에서, 각각 필터링되지 않은 및 필터링된 레퍼런스들 rs 만을 사용하여 계산된, 임의의 2 개의 세트의 픽셀 예측들
Figure 112019126206326-pct00002
Figure 112019126206326-pct00003
가 주어지면,
Figure 112019126206326-pct00004
로 표기된, 픽셀의 조합된 예측된 값은 다음으로 정의되고,
Figure 112019126206326-pct00005
여기서
Figure 112019126206326-pct00006
는 조합 파라미터들의 세트이다. 가중치
Figure 112019126206326-pct00007
의 값은 0 과 1 사이의 값일 수도 있다. 가중치들
Figure 112019126206326-pct00008
Figure 112019126206326-pct00009
의 합은 1 과 동일할 수도 있다.
소정의 예들에서, 블록에서의 픽셀들의 수 만큼 큰 파라미터들의 세트를 갖는 것은 실용적이지 않을 수도 있다. 이러한 예들에서,
Figure 112019126206326-pct00010
는 훨씬 더 작은 파라미터들의 세트, 플러스 이들 파라미터들로부터 모든 조합 값들을 계산하기 위한 방정식으로 정의될 수도 있다. 이러한 예에서, 다음의 공식이 사용될 수도 있다:
Figure 112019126206326-pct00011
여기서,
Figure 112019126206326-pct00012
Figure 112019126206326-pct00013
는 예측 파라미터들이고, N 은 블록 사이즈이고,
Figure 112019126206326-pct00014
Figure 112019126206326-pct00015
는 각각 필터링되지 않은 및 필터링된 레퍼런스들을 사용하여, 특정 모드에 대해, HEVC 표준에 따르는 것을 사용하여 계산된 예측 값들이고, 그리고
Figure 112019126206326-pct00016
은 예측 파라미터들에 의해 정의된, (즉,
Figure 112019126206326-pct00017
Figure 112019126206326-pct00018
에 할당된 전체 가중치들이 1 을 증가시키게 하는) 정규화 팩터이다.
공식 2 는 공식 2A 에서 임의의 비디오 코딩 표준에 대해 일반화될 수도 있다:
Figure 112019126206326-pct00019
여기서,
Figure 112019126206326-pct00020
Figure 112019126206326-pct00021
는 예측 파라미터들이고, N 은 블록 사이즈이고,
Figure 112019126206326-pct00022
Figure 112019126206326-pct00023
는 각각 필터링되지 않은 및 필터링된 레퍼런스들을 사용하여, 특정 모드에 대해, 비디오 코딩 표준 (또는 비디오 코딩 스킴 또는 알고리즘) 에 따르는 것을 사용하여 계산된 예측 값들이고, 그리고
Figure 112019126206326-pct00024
는 예측 파라미터들에 의해 정의된, (즉,
Figure 112019126206326-pct00025
Figure 112019126206326-pct00026
에 할당된 전체 가중치들이 1 을 증가시키게 하는) 정규화 팩터이다.
이들 예측 파라미터들은 사용된 예측 모드의 타입 (예를 들어, HEVC 의 DC, 평면, 및 33 개의 지향성 모드들) 에 따라 예측된 항들의 최적의 선형 조합을 제공하기 위한 가중치들을 포함할 수도 있다. 예를 들어, HEVC 는 35 개의 예측 모드들을 포함한다. 룩업 테이블은 예측 모드들의 각각에 대한 예측 파라미터들
Figure 112019126206326-pct00027
Figure 112019126206326-pct00028
의 각각에 대한 값들 (즉, 각각의 예측 모드에 대한
Figure 112019126206326-pct00029
Figure 112019126206326-pct00030
의 35 개의 값들) 로 구성될 수도 있다. 이러한 값들은 비디오와 비트스트림으로 인코딩될 수도 있거나 또는 미리 인코더 및 디코더에 의해 알려진 상수 값들일 수도 있고 파일 또는 비트스트림으로 송신될 필요가 없을 수도 있다.
Figure 112019126206326-pct00031
Figure 112019126206326-pct00032
에 대한 값들은 트레이닝 비디오들의 세트에 대해 최상의 압축을 제공하는 예측 파라미터들에 대한 값들을 발견하는 것에 의해 최적화 트레이닝 알고리즘에 의해 결정될 수도 있다.
다른 예에서, (예를 들어, 룩업 테이블에서) 각각의 예측 모드에 대한 복수의 사전정의된 예측 파라미터 세트들이 존재하고 선택된 예측 파라미터 세트 (그러나 파라미터들 그것들 자체는 아님) 는 인코딩된 파일 또는 비트스트림으로 디코더에 송신된다. 다른 예에서,
Figure 112019126206326-pct00033
Figure 112019126206326-pct00034
에 대한 값들은 비디오 인코더 (22) 에 의해 즉시 생성되고 인코딩된 파일 또는 비트스트림으로 비디오 디코더 (30) 에 송신될 수도 있다.
다른 예에서, HEVC 예측을 사용하는 대신에, 이들 기법들을 수행하는 비디오 코딩 디바이스는 33 개의 지향성 예측들 대신 65 개의 지향성 예측들을 사용하는 것처럼, HEVC 의 수정된 버전을 사용할 수도 있다. 실제로, 임의의 타입의 인트라-프레임 예측이 사용될 수 있다.
다른 예에서, 공식은 계산들을 용이하게 하도록 선택될 수 있다. 예를 들어, 다음의 타입의 예측자를 사용할 수 있다
Figure 112019126206326-pct00035
여기서
Figure 112019126206326-pct00036
그리고
Figure 112019126206326-pct00037
이러한 접근법은 HEVC (또는 다른) 예측의 선형성을 활용할 수도 있다. h 를 사전정의된 세트로부터의 필터 k 의 임펄스 응답으로서 정의하면,
Figure 112019126206326-pct00038
(여기서 "*" 는 콘볼루션을 나타낸다) 을 가지면,
Figure 112019126206326-pct00039
즉, 선형으로 조합된 예측은 선형으로 조합된 레퍼런스로부터 계산될 수도 있다.
공식들 4, 6 및 8 은 공식 4A, 6A, 및 8A 에서 임의의 비디오 코딩 표준에 대해 일반화될 수도 있다:
Figure 112019126206326-pct00040
여기서
Figure 112019126206326-pct00041
그리고
Figure 112019126206326-pct00042
이러한 접근법은 코딩 표준의 예측의 선형성을 활용할 수도 있다. h 를 사전정의된 세트로부터의 필터 k 의 임펄스 응답으로서 정의하면,
Figure 112019126206326-pct00043
(여기서 "*" 는 콘볼루션을 나타낸다) 를 갖는 경우,
Figure 112019126206326-pct00044
즉, 선형으로 조합된 예측은 선형으로 조합된 레퍼런스로부터 계산될 수도 있다.
예에서, 예측 함수들은 레퍼런스 벡터 (예를 들어, rs) 를 단지 입력으로서 사용할 수도 있다. 이 예에서, 레퍼런스 벡터의 거동 (behavior) 은, 레퍼런스가 필터링된 경우 또는 필터링되지 않은 경우 변경되지 않는다. rs 가 동일하면 (예를 들어, 일부 필터링되지 않은 레퍼런스 r 은 다른 필터링된 레퍼런스 s 와 동일하게 된다), 예측 함수들, 예를 들어,
Figure 112019126206326-pct00045
(또한 p(x,y,r) 로서 기입됨) 은 필터링된 및 필터링되지 않은 레퍼런스들에 적용된,
Figure 112019126206326-pct00046
(또한 p(x,y,s) 로서 기입됨) 와 동일하다. 추가적으로, 픽셀 예측들 p 및 q 는 등가일 수도 있다 (예를 들어, 동일한 입력이 주어지면 동일한 출력을 생성한다). 이러한 예에서, 공식들 (1) 내지 (8) 은 픽셀 예측
Figure 112019126206326-pct00047
를 픽셀 예측
Figure 112019126206326-pct00048
로 대체하여 재기입될 수도 있다.
다른 예에서, 예측 (예를 들어, 함수들의 세트들) 은 레퍼런스가 필터링된 정보에 의존하여 변경될 수도 있다. 이 예에서, 상이한 세트들의 함수들이 표기될 수도 있다 (예를 들어,
Figure 112019126206326-pct00049
Figure 112019126206326-pct00050
). 이 경우에, rs 가 동일하더라도,
Figure 112019126206326-pct00051
Figure 112019126206326-pct00052
는 동일하지 않을 수도 있다. 다시 말해서, 동일한 입력은, 그 입력이 필터링되었는지 여부에 의존하여 상이한 출력을 생성할 수 있다. 이러한 예에서,
Figure 112019126206326-pct00053
Figure 112019126206326-pct00054
로 대체될 수 없을 수도 있다.
도시된 예측 방정식들의 이점은, 파라미터화된 공식으로, 최적의 파라미터들의 세트들이 트레이닝과 같은 기법들을 사용하여, 상이한 타입들의 비디오 텍스처들에 대해, 결정될 수 있다 (즉, 예측 정확도를 최적화하는 파라미터들) 는 것이다. 이 접근법은 차례로, 일부 통상의 타입들의 텍스처들에 대해, 여러 세트들의 예측 파라미터들을 계산하고 인코더가 각각의 세트로부터 예측자들을 테스트하는 압축 스킴을 가짐으로써 일부 예들에서 확장될 수도 있고, 최상의 압축을 산출하는 것을 사이드 정보로서 인코딩한다.
상기 논의된 바와 같이, 일부 예들에서, 비디오 인코더 (22) 는 비디오 데이터의 하나 이상의 블록들에 대한 특정한 비디오 코딩 툴의 사용 (예를 들어, 인트라 평활화 필터 및/또는 PDPC 모드가 적용되는지 여부) 을 표시하기 위해 플래그 또는 인덱스를 시그널링하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (22) 는 특정한 코딩 툴 (예를 들어, 인트라 평활화 필터 및/또는 PDPC 모드) 이 블록에 대해 적용되지 않음을 표시하기 위해 0 의 값을 가진 플래그를 생성 및 시그널링하도록 구성될 수도 있는 한편, 1 의 값을 가진 플래그는, 코딩 툴 (예를 들어, 인트라 평활화 필터 및/또는 PDPC 모드) 이 블록에 대해 적용됨을 표시할 수도 있다. 비디오 디코더 (30) 는 플래그와 연관된 비디오 데이터의 하나 이상의 블록들에 대해 특정한 비디오 코딩 툴을 사용할지 여부를 결정하기 위해 이러한 플래그를 수신 및 파싱하도록 구성될 수도 있다.
일부 예들에서, 특정한 비디오 코딩 툴에 대한 플래그를 시그널링하는 것은, 비디오 코딩 툴을 사용하는 것으로부터 얻은 압축 효율이 상당히 감소될 수도 있도록 상당히 많은 수의 비트들을 취할 수도 있다. 본 개시는 변환 프로세싱에 대한 시그널링을 포함하여, 다른 비디오 코딩 프로세스들에 대한 시그널링과 함께 비디오 코딩 툴 오버헤드 시그널링 (예를 들어, 비디오 코딩 툴 사용 및/또는 비디오 코딩 툴 파라미터들을 표시하는 신택스 엘리먼트들) 을 커플링하는 기법들을 설명한다.
예를 들어, 비디오 인코더 (22) 는 프라이머리 또는 세컨더리 변환 플래그들 또는 인덱스들을 포함한, 변환 프로세싱에 대한 신택스 엘리먼트들을 생성 및 시그널링하도록 구성될 수도 있다. 프라이머리 변환 플래그 또는 인덱스 (예를 들어, 멀티-비트 신택스 엘리먼트) 는 다중 변환들 중에서, 비디오 데이터의 블록을 코딩할 때 프라이머리 변환으로서 사용할, 특정한 변환을 표시할 수도 있다. 마찬가지로, 세컨더리 변환 플래그 또는 인덱스 (예를 들어, 멀티-비트 신택스 엘리먼트) 는 다중 변환들 중에서, 비디오 데이터의 블록을 코딩할 때 세컨더리 변환으로서 사용할 특정한 변환을 표시할 수도 있다. 하나의 예로서, 프라이머리 변환은 이산 코사인 변환 (DCT) 또는 이산 사인 변환 (DST) 기반 변환들, JEM 에서 사용된 향상된 다중 변환 (enhanced multiple transform; EMT), 또는 임의의 다른 분리가능 또는 비-분리가능 변환일 수도 있다. 예의 세컨더리 변환들은 회전 변환들 (rotational transforms; ROT) 또는 비-분리가능 세컨더리 변환들 (non-separable secondary transforms; NSST) 을 포함할 수도 있고, 이들 양자 모두는 JEM 에서 현재 채용된다. 그러나, 세컨더리 변환은 임의의 다른 분리가능 또는 비-분리가능 변환을 포함할 수도 있다. 프라이머리 및/또는 세컨더리 변환들은 인덱스로 표시될 수도 있는 변환들의 여러 세트들을 포함할 수도 있다. 예를 들어, 비디오 데이터의 임의의 특정한 블록에 대해 사용할 변환 세트는, 인트라 예측 모드 및/또는 인트라 예측 모드 방향에 의존할 수도 있다. 즉, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 비디오 데이터의 블록을 코딩하는데 사용되는 인트라 예측 모드 및/또는 인트라 예측 모드 방향에 기초하여 비디오 데이터의 특정한 블록을 위해 이용가능한 변환들의 세트를 결정하도록 구성될 수도 있다.
본 개시의 하나의 예에서, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는, 소정의 변환 플래그 또는 인덱스 값(들)이 시그널링되는 경우, 하나 이상의 코딩 툴들 (예를 들어, 인트라 레퍼런스 샘플 평활화 필터 및/또는 PDPC 모드) 이 블록에 대해 적용되고, 그렇지 않고, 소정의 변환 플래그 또는 인덱스 값(들)이 시그널링되지 않는 경우, 코딩 툴이 적용되지 않음을 표시하는 소정의 사전-정의된 룰들을 따르도록 구성될 수도 있다. 이 경우에, 비디오 코딩 툴의 사용을 표시하기 위한 임의의 명시적 플래그는 시그널링될 필요가 없다. 대신에, 특정한 코딩 툴이 사용되는지 여부의 결정은 변환 시그널링으로부터 유도될 수도 있다. 상기의 예들은 인트라 레퍼런스 샘플 평활화 필터들 및 PDPC 모드를 포함하지만, 다른 비디오 코딩 툴 사용이 변환 시그널링과 커플링될 수도 있다.
하나의 예에서, 변환 시그널링에 의해 표시된 비디오 코딩 툴은 MDIS, ARSS 와 같은 인트라 레퍼런스 샘플 평활화 필터, 또는 인트라 레퍼런스 샘플들에 적용된 임의의 다른 평활화 및/또는 필터링일 수 있다. 다른 예에서, 변환 시그널링에 의해 표시된 비디오 코딩 툴은 인트라 예측에 적용된 필터링, 예를 들어, PDPC 모드, 멀티-파라미터 인트라 예측 (MPI) 모드, 또는 유도된 인트라 예측을 위해 적용된 임의의 다른 필터링일 수 있다.
예를 들어, PDPC, MDIS 및 ARSS 또는 단지 PDPC 및 MDIS 와 같이, 여러 툴들이 조합하여 사용될 수 있다. 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 인덱스 또는 인덱스들에 의해 표시된 바와 같이) 소정의 세컨더리 변환으로 코딩된 비디오 데이터의 블록에 대해 특정한 비디오 코딩 툴을 적용하도록 구성될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 소정의 타입의 세컨더리 변환을 표시하는 인덱스의 값에 기초하여 특정한 코딩 툴 (예를 들어, MDIS, ARSS 등) 을 사용할지 여부를 결정하도록 구성될 수도 있다. 이렇게 하여, 세컨더리 변환 및 적어도 하나의 다른 코딩 툴의 사용은 단일 신택스 엘리먼트로 표시될 수도 있다.
하나의 예에서, 비디오 디코더 (30) 는, 세컨더리 변환 (NSST) 인덱스들에 의해 표시된 바와 같이, 소정의 세컨더리 변환들이 적용될 때만 PDPC 모드를 사용하기로 결정할 수도 있다. 마찬가지로, 비디오 인코더 (22) 는 소정의 세컨더리 변환들이 적용될 때만 PDPC 모드를 사용하기로 결정할 수도 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 특정한 세컨더리 변환이 사용될 때 (예를 들어, 값 NSST 인덱스가 1 과 같을 때) PDPC 모드를 사용하도록 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 인덱스의 값에 의해 표시된 바와 같이) 사용된 세컨더리 변환과 상관없이 소정의 인트라 예측 모드들에 대해 PDPC 모드를 사용하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 예측 모드가 평면 모드, 및/또는 DC 모드, 또는 임의의 다른 모드들인 경우들에서 PDPC 모드를 적용하도록 구성될 수도 있다.
다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 (NSST) 인덱스의 값에 의해 표시된 바와 같이) 소정의 세컨더리 변환들에 대해서만 MDIS 비디오 코딩 툴 (또는 다른 인트라 레퍼런스 샘플 평활화 필터들) 을 적용하도록 구성될 수도 있다. 하나의 예로서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 3 과 동일한 NSST 인덱스에 대해서만 MDIS 비디오 코딩 툴 (또는 다른 인트라 레퍼런스 샘플 평활화 필터들) 을 적용하도록 구성될 수도 있다.
일부 예들에서, 1 초과의 비디오 코딩 툴의 사용이 블록을 위해 사용되는 변환에 의존하면 (예를 들어, 비디오 코딩 툴은 변환 인덱스에 맵핑된다), 변환에 대한 비디오 코딩 툴의 맵핑은 상호 배타적일 수도 있다. 즉, 하나의 예에서, 각각의 비디오 코딩 툴은 상이한 변환 인덱스에 대응한다.
상기의 예들은 조합될 수 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 1 의 NSST 인덱스에 대해 PDPC 모드를 적용하도록 구성될 수도 있고, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 3 의 NSST 인덱스에 대해 MDIS 또는 다른 인트라 레퍼런스 평활화 필터를 적용하도록 구성될 수도 있다. 추가로, 비디오 인코더 (22) 및 비디오 디코더 (30) 의 사용은 블록에 대한 NSST 인덱스와 상관없이 평면 인트라 예측 모드를 사용하여 코딩된 비디오 데이터의 블록에 대해 PDPC 모드를 항상 적용하도록 구성될 수도 있다.
또 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 NSST 인덱스가 2 와 동일할 때 ARSS 비디오 코딩 툴을 적용하도록 구성될 수도 있다.
상이한 코딩 툴들 (예를 들어, PDPC, NSST, EMT, ARSS, MDIS, MPI, ROT) 의 활용이 다중 옵션들을 가지면, 코딩 툴의 각각에 대해 별도의 인덱스들을 시그널링하는 대신에, 비디오 인코더 (22) 는 단지 하나의 통일된 인덱스를 시그널링하도록 구성될 수도 있다. 이 예에서, 통일된 인덱스의 값은, 상이한 코딩 툴들이 어떻게 커플링되는지를 특정한다. 하나의 예에서, PDPC 모드가 3 개의 상이한 세트들의 파라미터들로 설계되고, NSST 가 3 개의 상이한 세트들의 NSST 코어들로 설계되면, PDPC 인덱스들 및 NSST 인덱스들을 별도로 시그널링하는 대신에, 비디오 인코더 (22) 는 단지 하나의 통일된 인덱스를 시그널링할 수도 있지만, 이 통일된 인덱스 값은 PDPC 모드와 NSST 양자 모두의 활용을 특정한다. 예를 들어, 이 통일된 인덱스가 0 과 동일할 때, PDPC 또는 NSST 중 어느 것도 적용되지 않는다. 이 통일된 인덱스가 1 과 동일할 때, PDPC 모드 파라미터 세트 1 및 NSST 코어 1 이 사용된다. 이 통일된 인덱스가 2 와 동일할 때, PDPC 모드 파라미터 세트 2 및 NSST 코어 2 가 사용된다. 이 통일된 인덱스가 3 과 동일할 때, PDPC 모드 파라미터 세트 3 및 NSST 코어 3 이 사용된다. 즉, 상이한 PDPC 모드들은 상이한 NSST 인덱스들과 번들링된다. 다른 예에서, 상이한 NSST 인덱스들에 대해, 상이한 필터 계수들을 가진 MDIS 필터가 적용될 수 있다.
하나의 툴 (예를 들어, PDPC, ARSS, 및/또는 MDIS) 과 변환 (예를 들어, EMT, NSST) 간의 커플링은, 인트라 예측 모드, 블록 폭 및 높이, 블록 파티셔닝 심도, 변환 계수를 포함하지만 이에 한정되지 않는, 이미 코딩된 정보에 의존할 수도 있다. 예를 들어, 상이한 인트라 예측 모드들에 대해, PDPC 모드는 상이한 NSST 인덱스들과 커플링될 수도 있다. 예를 들어, 인트라 예측 모드 0 에 대해, PDPC 모드는 NSST 인덱스 1 과 커플링되고, 인트라 예측 모드 1 에 대해, PDPC 는 NSST 인덱스 2 와 커플링된다.
다음 섹션은 강한 인트라 레퍼런스 필터링에 관한 것이다. 2017년 1월 11일자로 출원된 미국 가출원 제62/445,207호, 및 2018년 1월 9일자로 출원된 미국 특허출원 제15/866,287호에서, 분할이 없는 (division free) 강한 인트라 평활화 방법이 설명된다. 일부 예들에서, 비-2 의 거듭제곱 분할 (non-of-power-2 division) 이 사용되면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 프로세스를 여러 부분들로 스플리팅하도록 구성될 수도 있고, 여기서 비디오 인코더 (22) 및 비디오 디코더 (30) 는 프로세스의 각각의 부분에 대해 단지 2 의 거듭제곱 분할 (power-of-2 division) 만을 수행하도록 구성될 수도 있다. 이러한 기법은 단순한 비트 시프트 동작으로서 구현될 수도 있다. 본 개시에서, 더 상세한 예가 설명된다. 직사각형 블록을 고려하며, 여기서 JEM 에서, 비-2 의 거듭제곱의 분할이 블록의 (폭 + 높이) 에 의한 분할로 인해 사용된다. 도 5 는 비-정사각형 블록 (200) 에 대해, 필터링 프로세스가 여러 부분들로 분할되는 예를 도시한다.
도 5 에 도시된 바와 같이, 필터링 프로세스는 좌측 인트라 레퍼런스 샘플들 (202) 및 상부 인트라 레퍼런스 샘플들 (204) (블랙 박스들로 표시됨), 뿐만 아니라 우측 하부 인트라 레퍼런스 샘플들 (206) 및 우측 상부 인트라 레퍼런스 샘플들 (208) (점으로 된 (dotted) 박스들로 표시됨) 에 대해 수행된다. 사용된 분할은 비-2 의 거듭제곱이다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 필터링 프로세스를 수평 및 수직 방향들에 대한 부분들로 스플리팅하도록 구성될 수도 있어, 하나의 부분이 블록 (200) 의 폭 및/또는 높이에 대응하고, 다른 부분이 남은 길이가 된다. 이 특정한 예에서, 남은 부분은 수직 필터링을 위한 폭 길이 및 수평 필터링을 위한 높이 길이 (즉, 점으로 된 박스에서의 좌측 하부 인트라 레퍼런스 샘플들 (206) 및 우측 상부 인트라 레퍼런스 샘플들 (208)) 이다. 알 수 있는 바와 같이, 각각의 부분은, 폭 및 높이가 2 의 거듭제곱인 사이즈가 되도록 요구될 수도 있기 때문에, 2 의 거듭제곱 분할로 필터링 프로세스를 실행할 수 있다.
추가로, 필터링 프로세스에 의존하여, 일부 샘플들이 카피될 수도 있다. 예를 들어, 필터링 공식이 (길이 - i)*a + i*b 인 경우, 여기서 i 는 1 부터 길이 - 1 까지이다. 길이는 필터링될 샘플 어레이의 사이즈이다. 길이는, 예를 들어, 폭 + 높이일 수 있다. 값들 a 및 b 는 필터링될 샘플 어레이의 마지막 샘플들일 수 있다.
하나의 샘플은 i = 0 에 대해 필터링되지 않고, 이 샘플은 직접 카피될 수 있음을 알 수 있다. 필터링 프로세스가 여러 부분들로 스플리팅될 때, 직접 카피된 샘플들의 수는 증가할 수도 있다. 이것은 추가적인 샘플들이 각각의 방향에서 필터링되지 않게 할 수도 있고, 이러한 샘플들은 직접 카피될 수도 있다. 직접 카피는 필터링 프로세스가 그 샘플들에 대해 적용되지 않음을 의미할 수도 있다.
어느 샘플이 직접 카피될 수도 있는지는 가변적일 수도 있다. 본 개시의 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플(들)을 각각의 방향의 인트라 레퍼런스 샘플들의 마지막에, 즉 수직 필터링의 경우 좌측 하부 샘플들 및 수평 필터링의 경우 우측 상부 샘플들에 두도록 구성될 수도 있다. 이렇게 하여, 그 샘플들은 인트라 예측에서 덜 자주 사용될 수도 있다. 이러한 샘플들의 정확도는 이러한 샘플들이 블록에서 가장 멀기 때문에, 인트라 예측의 효율에 덜 민감하다.
다른 예에서, 직접 카피된 샘플들은 필터링 프로세스의 각각의 부분에 배치될 수 있다. 상기의 예에서, 그것은 필터링의 각각의 블랙 및 점으로 된 영역들에서의 하나의 예일 수 있다. 즉, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 좌측 레퍼런스 샘플들 (204), 좌측 하부 레퍼런스 샘플들 (206), 상부 레퍼런스 샘플들 (202), 및 우측 상부 레퍼런스 샘플들 (208) 의 각각에 하나의 직접 카피된 샘플을 배치할 수도 있다. 하나의 예에서, 직접 카피된 샘플들은 각각의 부분의 마지막에 배치될 수 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플을 좌측 레퍼런스 샘플들 (204) 의 하부에 포지셔닝할 수도 있다. 마찬가지로, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플을 좌측 하부 레퍼런스 샘플들 (206) 의 하부에 포지셔닝할 수도 있다. 추가로, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플을 상부 레퍼런스 샘플들 (202) 의 우측 마지막에 포지셔닝할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 또한 직접 카피된 샘플을 우측 상부 레퍼런스 샘플들 (208) 의 우측 마지막에 포지셔닝할 수도 있다. 직접 카피된 샘플들을 소정의 영역에서 그룹화할 필요가 없기 때문에, 이러한 설계의 이점은 필터링 프로세스의 균일성이다.
다른 예에서, 직접 카피된 샘플들은 좌측 상단 영역 (201) (예를 들어, 샘플들 (204 및 202) 의 블록 박스들의 시작부) 에 배치될 수 있다. 보다 일반적인 예에서, 직접 카피된 샘플들은 인트라 레퍼런스 샘플들 내의 임의의 로케이션에 배치될 수 있다.
다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 2 의 거듭제곱이 아닌 제수를 사용한 분할 동작이 회피될 수 있도록, 2-탭 이중선형 필터 대신에 고정된 N-탭 선형 필터로서 강한 평활화를 구현할 수도 있다. 하나의 예에서, 5-탭 또는 7-탭 가우시안 필터가 2-탭 이중선형 강한 평활화 필터를 대신하는데 사용되고, 여기서 가우시안 필터의 파라미터는 사전-정의되거나 또는 블록 사이즈, 블록 형상, 인트라 예측 모드를 포함하지만 이에 한정되지 않는, 이미 코딩된 정보에 의존할 수도 있다.
본 개시의 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 인트라 예측을 사용하여 비-정사각형 블록을 코딩하고, 2 개의 부분들, 즉 블록의 높이 또는 폭의 일방을 따른 인트라 레퍼런스 샘플들과 연관된 제 1 부분, 및 나머지 인트라 레퍼런스 샘플들과 연관된 제 2 부분에서의 인트라 레퍼런스 샘플들에 강한 인트라 레퍼런스 필터링을 적용하도록 구성될 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 1 부분으로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 2 부분으로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 1 부분과 제 2 부분 양자 모두로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다.
도 6 은 본 개시의 기법들을 구현할 수도 있는 예의 비디오 인코더 (22) 를 예시하는 블록 다이어그램이다. 도 6 은 설명을 목적으로 제공되고, 본 개시에서 폭넓게 예시화 및 설명된 바와 같이 기법들의 한정으로 고려되어서는 안된다. 본 개시의 기법들은 다양한 코딩 표준들 또는 방법들에 적용가능할 수도 있다. 비디오 인코더 (22) 는 상기 설명된 조합된 코딩 툴 및 변환 시그널링 기법들을 수행하도록 구성될 수도 있다. 추가로, 비디오 인코더 (22) 는 상기 설명된 바와 같이 강한 인트라 레퍼런스 필터링을 수행하도록 구성될 수도 있다.
도 6 의 예에서, 비디오 인코더 (22) 는 예측 프로세싱 유닛 (100), 비디오 데이터 메모리 (101), 잔차 생성 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역 양자화 유닛 (108), 역 변환 프로세싱 유닛 (110), 재구성 유닛 (112), 필터 유닛 (114), 디코딩된 픽처 버퍼 (116), 및 엔트로피 인코딩 유닛 (118) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터 예측 프로세싱 유닛 (120) 및 인트라 예측 프로세싱 유닛 (126) 을 포함한다. 인터 예측 프로세싱 유닛 (120) 은 모션 추정 유닛 및 모션 보상 유닛 (미도시) 을 포함할 수도 있다.
비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장하도록 구성될 수도 있다. 비디오 데이터 메모리 (101) 에 저장된 비디오 데이터는, 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 예를 들어, 인트라 또는 인터 코딩 모드들에서, 비디오 인코더 (22) 에 의해 비디오 데이터를 인코딩하는데 있어서의 사용을 위해 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 다른 컴포넌트들과 온-칩이거나 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다. 비디오 데이터 메모리 (101) 는 도 1 의 저장 매체들 (20) 과 동일하거나 또는 그 부분일 수도 있다.
비디오 인코더 (22) 는 비디오 데이터를 수신한다. 비디오 인코더 (22) 는 비디오 데이터의 픽처의 슬라이스에서 각각의 CTU 를 인코딩할 수도 있다. CTU들 각각은, 동일하게 사이징된 루마 코딩 트리 블록들 (CTB들) 및 픽처의 대응하는 CTB들과 연관될 수도 있다. CTU 를 인코딩하는 부분으로서, 예측 프로세싱 유닛 (100) 은 파티셔닝을 수행하여 CTU 의 CTB들을 점진적으로 더 작은 블록들로 분할할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 QTBT 구조를 사용하여 블록들을 파티셔닝할 수도 있다. 더 작은 블록들은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 트리 구조에 따라 CTU 와 연관된 CTB 를 파티셔닝할 수도 있다. 본 개시의 하나 이상의 기법들에 따르면, 트리 구조의 각각의 심도 레벨에서의 트리 구조의 각 개별의 비-리프 노드에 대해, 개별의 비-리프 노드에 대한 복수의 허용된 스플리팅 패턴들이 존재하고, 개별의 비-리프 노드에 대응하는 비디오 블록은 복수의 허용가능한 스플리팅 패턴들 중 하나에 따라 개별의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.
비디오 인코더 (22) 는 CTU 의 CU들을 인코딩하여 CU들의 인코딩된 표현들 (즉, 코딩된 CU들) 을 생성할 수도 있다. CU 를 인코딩하는 부분으로서, 예측 프로세싱 유닛 (100) 은 CU 의 하나 이상의 PU들 중에서 CU 와 연관된 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU 는 루마 예측 블록 및 대응하는 크로마 예측 블록들과 연관될 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 다양한 사이즈들을 갖는 PU들을 지원할 수도 있다. 상기 나타낸 바와 같이, CU 의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있고, PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 지칭할 수도 있다. 특정한 CU 의 사이즈가 2N×2N 이라고 가정하면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 예측을 위해 2N×2N 또는 N×N 의 PU 사이즈들, 및 인터 예측을 위해 2N×2N, 2N×N, N×2N, N×N, 또는 유사한 것의 대칭적인 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 또한, 인터 예측을 위해 2N×nU, 2N×nD, nL×2N, 및 nR×2N 의 PU 사이즈들에 대한 비대칭적인 파티셔닝을 지원할 수도 있다.
인터 예측 프로세싱 유닛 (120) 은 CU 의 각각의 PU 에 대해 인터 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는 PU 의 예측 블록들 및 PU 에 대한 모션 정보를 포함할 수도 있다. 인터 예측 프로세싱 유닛 (120) 은, PU 가 I 슬라이스인지, P 슬라이스인지, 또는 B 슬라이스인지에 의존하여 CU 의 PU 에 대해 상이한 동작들을 수행할 수도 있다. I 슬라이스에서, 모든 PU들은 인트라 예측된다. 이런 이유로, PU 가 I 슬라이스에 있으면, 인터 예측 프로세싱 유닛 (120) 은 PU 에 대해 인터 예측을 수행하지 않는다. 따라서, I-모드로 인코딩된 블록들에 대해, 예측된 블록은 동일 프레임 내의 이전에 인코딩된 이웃하는 블록들로부터의 공간 예측을 사용하여 형성된다. PU 가 P 슬라이스에 있으면, 인터 예측 프로세싱 유닛 (120) 은 단방향 인터 예측을 사용하여 PU 의 예측 블록을 생성할 수도 있다. PU 가 B 슬라이스에 있으면, 인터 예측 프로세싱 유닛 (120) 은 단방향 또는 양방향 인터 예측을 사용하여 PU 의 예측 블록을 생성할 수도 있다.
인트라 예측 프로세싱 유닛 (126) 은 PU 에 대해 인트라 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는 PU 의 예측 블록들 및 다양한 신택스 엘리먼트들을 포함할 수도 있다. 인트라 예측 프로세싱 유닛 (126) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에서 PU들에 대해 인트라 예측을 수행할 수도 있다.
PU 에 대해 인트라 예측을 수행하기 위해, 인트라 예측 프로세싱 유닛 (126) 은 다중 인트라 예측 모드들을 사용하여, PU 에 대한 예측 데이터의 다중 세트들을 생성할 수도 있다. 인트라 예측 프로세싱 유닛 (126) 은 이웃하는 PU들의 샘플 블록들로부터의 샘플들을 사용하여 PU 에 대한 예측 블록을 생성할 수도 있다. 이웃하는 PU들은, PU들, CU들, 및 CTU들에 대한 좌-우, 상-하로의 인코딩 순서를 가정하면, PU 의 상부, 상부 및 우측으로, 상부 및 좌측으로, 또는 좌측으로일 수도 있다. 인트라 예측 프로세싱 유닛 (126) 은 다양한 수들의 인트라 예측 모드들, 예를 들어, 33 개의 지향성 인트라 예측 모드들을 사용할 수도 있다. 일부 예들에서, 인트라 예측 모드들의 수는 PU 와 연관된 영역의 사이즈에 의존할 수도 있다.
예측 프로세싱 유닛 (100) 은 PU들에 대한 인터 예측 프로세싱 유닛 (120) 에 의해 생성된 예측 데이터 또는 PU들에 대한 인트라 예측 프로세싱 유닛 (126) 에 의해 생성된 예측 데이터 중에서 CU 의 PU들에 대한 예측 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (100) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여 CU 의 PU들에 대한 예측 데이터를 선택한다. 선택된 예측 데이터의 예측 블록들은 본 명세서에서 선택된 예측 블록들로 지칭될 수도 있다.
잔차 생성 유닛 (102) 은, CU 에 대한 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 및 CU 의 PU들에 대한 선택된 예측 블록들 (예를 들어, 예측 루마, Cb 및 Cr 블록들) 에 기초하여, CU 에 대한 잔차 블록들 (예를 들어, 루마, Cb 및 Cr 잔차 블록들) 을 생성할 수도 있다. 예를 들어, 잔차 생성 유닛 (102) 은, 잔차 블록들에서의 각각의 샘플이 CU 의 코딩 블록에서의 샘플과 CU 의 PU 의 대응하는 선택된 예측 블록에서의 대응하는 샘플 사이의 차이와 동일한 값을 갖도록 CU 의 잔차 블록들을 생성할 수도 있다.
변환 프로세싱 유닛 (104) 은 쿼드트리 파티셔닝을 수행하여, CU 와 연관된 잔차 블록들을 CU 의 TU들과 연관된 변환 블록들로 파티셔닝할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2 개의 크로마 변환 블록들과 연관될 수도 있다. CU 의 TU들의 루마 및 크로마 변환 블록들의 사이즈들 및 포지션들은 CU 의 PU들의 예측 블록들의 사이즈들 및 포지션들에 기초할 수도 있거나 또는 기초하지 않을 수도 있다. "잔차 쿼드트리" (RQT) 로서 공지된 쿼드트리 구조는 그 영역들의 각각과 연관된 노드들을 포함할 수도 있다. CU 의 TU들은 RQT 의 리프 노드들에 대응할 수도 있다.
변환 프로세싱 유닛 (104) 은, TU 의 변환 블록들에 하나 이상의 변환들을 적용함으로써 CU 의 각각의 TU 에 대한 변환 계수 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 TU 와 연관된 변환 블록에 다양한 변환들을 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (DCT), 지향성 변환, 또는 개념적으로 유사한 변환을 변환 블록에 적용할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (104) 은 변환 블록에 변환들을 적용하지 않는다. 이러한 예들에서, 변환 블록은 변환 계수 블록으로서 처리될 수도 있다.
양자화 유닛 (106) 은 계수 블록에서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 변환 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 라운딩 다운될 수도 있고, 여기서 n 은 m 보다 더 크다. 양자화 유닛 (106) 은 CU 와 연관된 양자화 파라미터 (QP) 값에 기초하여 CU 의 TU 와 연관된 계수 블록을 양자화할 수도 있다. 비디오 인코더 (22) 는 CU 와 연관된 QP 값을 조정함으로써 CU 와 연관된 계수 블록들에 적용된 양자화도를 조정할 수도 있다. 양자화는 정보의 손실을 도입할 수도 있다. 따라서, 양자화된 변환 계수들은 원래의 것들보다 더 낮은 정확성을 가질 수도 있다.
역 양자화 유닛 (108) 및 역 변환 프로세싱 유닛 (110) 은 각각 계수 블록에 역 양자화 및 역 변환들을 적용하여, 계수 블록으로부터 잔차 블록을 재구성할 수도 있다. 재구성 유닛 (112) 은 재구성된 잔차 블록을, 예측 프로세싱 유닛 (100) 에 의해 생성된 하나 이상의 예측 블록들로부터의 대응하는 샘플들에 부가하여, TU 와 연관된 재구성된 변환 블록을 생성할 수도 있다. 이러한 방식으로 CU 의 각각의 TU 에 대한 변환 블록들을 재구성함으로써, 비디오 인코더 (22) 는 CU 의 코딩 블록들을 재구성할 수도 있다.
필터 유닛 (114) 은 하나 이상의 디블록킹 (deblocking) 동작들을 수행하여, CU 와 연관된 코딩 블록들에서의 블록킹 아티팩트들을 감소시킬 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 필터 유닛 (114) 이 재구성된 코딩 블록들에 대해 하나 이상의 디블록킹 동작들을 수행한 이후 재구성된 코딩 블록들을 저장할 수도 있다. 인터 예측 프로세싱 유닛 (120) 은 재구성된 코딩 블록들을 포함하는 레퍼런스 픽처를 사용하여, 다른 픽처들의 PU들에 대해 인터 예측을 수행할 수도 있다. 추가로, 인트라 예측 프로세싱 유닛 (126) 은 디코딩된 픽처 버퍼 (116) 에서의 재구성된 코딩 블록들을 사용하여, CU 와 동일한 픽처에서의 다른 PU들에 대해 인트라 예측을 수행할 수도 있다.
엔트로피 인코딩 유닛 (118) 은 비디오 인코더 (22) 의 다른 기능 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있고 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 엔트로피 인코딩된 데이터를 생성하기 위해 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 CABAC 동작, 콘텍스트 적응형 가변 길이 코딩 (CAVLC) 동작, V2V (variable-to-variable) 길이 코딩 동작, 신택스 기반 콘텍스트 적응형 이진 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 인코딩 동작, 또는 다른 타입의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (22) 는 엔트로피 인코딩 유닛 (118) 에 의해 생성된 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 비트스트림은 CU 에 대한 RQT 를 나타내는 데이터를 포함할 수도 있다.
도 7 은 본 개시의 기법들을 구현하도록 구성되는 예의 비디오 디코더 (30) 를 예시하는 블록 다이어그램이다. 도 7 은 설명을 목적으로 제공되고, 본 개시에서 폭넓게 예시화 및 설명된 바와 같이 기법들에 대해 한정하는 것은 아니다. 설명을 목적으로, 본 개시는 HEVC 코딩의 맥락에서 비디오 디코더 (30) 를 설명한다. 그러나, 본 개시의 기법들은 JVET 를 포함한, 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다. 비디오 디코더 (30) 는 상기 설명된 조합된 코딩 툴 및 변환 시그널링 기법들에 따라 시그널링된 신택스 엘리먼트들을 수신 및 파싱하도록 구성될 수도 있다. 추가로, 비디오 디코더 (30) 는 상기 설명된 바와 같이 강한 인트라 레퍼런스 필터링을 수행하도록 구성될 수도 있다.
도 7 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 비디오 데이터 메모리 (151), 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 재구성 유닛 (158), 필터 유닛 (160), 및 디코딩된 픽처 버퍼 (162) 를 포함한다. 예측 프로세싱 유닛 (152) 은 모션 보상 유닛 (164) 및 인트라 예측 프로세싱 유닛 (166) 을 포함한다. 다른 예들에서, 비디오 디코더 (30) 는, 더 많거나, 더 적거나, 또는 상이한 기능 컴포넌트들을 포함할 수도 있다.
비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩될 인코딩된 비디오 데이터, 이를 테면 인코딩된 비디오 비트스트림을 저장할 수도 있다. 비디오 데이터 메모리 (151) 에 저장된 비디오 데이터는, 예를 들어, 컴퓨터 판독가능 매체 (16) 로부터, 예를 들어, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들에 액세스하는 것에 의해, 획득될 수도 있다. 비디오 데이터 메모리 (151) 는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (CPB) 를 형성할 수도 있다. 디코딩된 픽처 버퍼 (162) 는, 출력을 위해, 또는 예를 들어, 인트라- 또는 인터-코딩 모드들에서, 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩하는데 있어서의 사용을 위해 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩이거나, 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다. 비디오 데이터 메모리 (151) 는 도 1 의 저장 매체들 (28) 과 동일하거나 또는 그의 부분일 수도 있다.
비디오 데이터 메모리 (151) 는 비트스트림의 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신 및 저장한다. 엔트로피 디코딩 유닛 (150) 은 비디오 데이터 메모리 (151) 로부터 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신할 수도 있고 NAL 유닛들을 파싱하여 신택스 엘리먼트들을 획득할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 NAL 유닛들에서 엔트로피 인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 재구성 유닛 (158), 및 필터 유닛 (160) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 생성할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 일반적으로 엔트로피 인코딩 유닛 (118) 의 프로세스와 상반되는 프로세스를 수행할 수도 있다.
본 개시의 일부 예들에 따르면, 엔트로피 디코딩 유닛 (150) 은 비트스트림으로부터 신택스 엘리먼트들을 획득하는 부분으로서 트리 구조를 결정할 수도 있다. 트리 구조는 CTB 와 같은 초기 비디오 블록이 코딩 유닛들과 같은 더 작은 비디오 블록들로 파티셔닝되는 방법을 특정할 수도 있다. 본 개시의 하나 이상의 기법들에 따르면, 트리 구조의 각각의 심도 레벨에서의 트리 구조의 각 개별의 비-리프 노드에 대해, 개별의 비-리프 노드에 대한 복수의 허용된 스플리팅 패턴들이 존재하고, 개별의 비-리프 노드에 대응하는 비디오 블록은 복수의 허용가능한 스플리팅 패턴들 중 하나에 따라 개별의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.
비트스트림으로부터 신택스 엘리먼트들을 획득하는 것에 더하여, 비디오 디코더 (30) 는 파티셔닝되지 않은 CU 에 대해 재구성 동작을 수행할 수도 있다. CU 에 대해 재구성 동작을 수행하기 위해, 비디오 디코더 (30) 는 CU 의 각각의 TU 에 대해 재구성 동작을 수행할 수도 있다. CU 의 각각의 TU 에 대해 재구성 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 의 잔차 블록들을 재구성할 수도 있다.
CU 의 TU 에 대해 재구성 동작을 수행하는 부분으로서, 역 양자화 유닛 (154) 은 TU 와 연관된 계수 블록들을, 역 양자화, 즉, 탈양자화할 수도 있다. 역 양자화 유닛 (154) 이 계수 블록을 역 양자화한 이후, 역 변환 프로세싱 유닛 (156) 은 TU 와 연관된 잔차 블록을 생성하기 위하여 계수 블록에 하나 이상의 역 변환들을 적용할 수도 있다. 예를 들어, 역 변환 프로세싱 유닛 (156) 은 역 DCT, 역 정수 변환, 역 KLT (Karhunen-Loeve transform), 역 회전 변환, 역 지향성 변환, 또는 다른 역 변환을 계수 블록에 적용할 수도 있다.
PU 가 인트라 예측을 사용하여 인코딩되면, 인트라 예측 프로세싱 유닛 (166) 은 PU 의 예측 블록들을 생성하기 위해 인트라 예측을 수행할 수도 있다. 인트라 예측 프로세싱 유닛 (166) 은 인트라 예측 모드를 사용하여, 공간적으로 이웃하는 블록들의 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 인트라 예측 프로세싱 유닛 (166) 은 비트스트림으로부터 획득된 하나 이상의 신택스 엘리먼트들에 기초하여 PU 에 대한 인트라 예측 모드를 결정할 수도 있다.
PU 가 인터 예측을 사용하여 인코딩되면, 엔트로피 디코딩 유닛 (150) 은 PU 에 대한 모션 정보를 결정할 수도 있다. 모션 보상 유닛 (164) 은 PU 의 모션 정보에 기초하여, 하나 이상의 레퍼런스 블록들을 결정할 수도 있다. 모션 보상 유닛 (164) 은, 하나 이상의 레퍼런스 블록들에 기초하여, PU 에 대한 예측 블록들 (예를 들어, 예측 루마, Cb 및 Cr 블록들) 을 생성할 수도 있다.
재구성 유닛 (158) 은 CU 의 TU들에 대한 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 및 CU 의 PU들의 예측 블록들 (예를 들어, 루마, Cb 및 Cr 블록들), 즉, 적용가능한 경우, 인트라 예측 데이터 또는 인터 예측 데이터를 사용하여, CU 에 대한 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 재구성할 수도 있다. 예를 들어, 재구성 유닛 (158) 은 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 의 샘플들을 예측 블록들 (예를 들어, 루마, Cb 및 Cr 예측 블록들) 의 대응하는 샘플들에 부가하여 CU 의 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 재구성할 수도 있다.
필터 유닛 (160) 은 디블록킹 동작을 수행하여 CU 의 코딩 블록들과 연관된 블록킹 아티팩트들을 감소시킬 수도 있다. 비디오 디코더 (30) 는 CU 의 코딩 블록들을 디코딩된 픽처 버퍼 (162) 에 저장할 수도 있다. 디코딩된 픽처 버퍼 (162) 는 후속 모션 보상, 인트라 예측, 및 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상으로의 프리젠테이션을 위해 레퍼런스 픽처들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는, 디코딩된 픽처 버퍼 (162) 에서의 블록들에 기초하여, 다른 CU들의 PU들에 대해 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다.
도 8 은 본 개시의 예의 인코딩 방법을 예시하는 플로우차트이다. 비디오 인코더 (22) 의 하나 이상의 구조적 컴포넌트들은 도 8 의 기법들을 수행하도록 구성될 수도 있다.
도 8 의 예에서, 비디오 인코더 (22) 는, 비디오 데이터의 블록을 수신하고 (800), 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고 (802), 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정 (804) 하도록 구성될 수도 있다. 하나의 예에서, PDPC 를 사용할지 여부를 결정하기 위해, 비디오 인코더 (22) 는 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 추가로 구성될 수도 있다.
도 9 는 본 개시의 예의 디코딩 방법을 예시하는 플로우차트이다. 비디오 디코더 (30) 의 하나 이상의 구조적 컴포넌트들은 도 9 의 기법들을 수행하도록 구성될 수도 있다. 도 9 의 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 수신하고 (900), 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고 (902), 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정 (904) 하도록 구성될 수도 있다.
하나의 예에서, 비디오 디코더 (30) 는 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 구성될 수도 있다.
다른 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하고, 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 것으로서, 하나 이상의 비디오 코딩 툴들은 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하고, 그리고 결정된 사용에 기초하여 비디오 데이터의 블록에 하나 이상의 코딩 툴들을 적용하도록 구성될 수도 있다.
다른 예에서, 비디오 디코더 (30) 는 결정된 인트라 예측 모드 및 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트의 값에 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 를 사용할지 여부를 결정하도록 구성될 수도 있다.
다른 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트의 값과 상관없이 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 구성될 수도 있다. 하나의 예에서, 프라이머리 변환은 DCT, DST, 또는 EMT 중 하나이다. 다른 예에서, 세컨더리 변환은 회전 변환 또는 NSST 중 하나이다. 다른 예에서, 하나 이상의 비디오 코딩 툴들은 PDPC 모드, MDIS, RSAF, ARSS, 또는 MPI 중 하나 이상을 포함한다.
다른 예에서, 비디오 디코더 (30) 는, PDPC 모드를 사용하기로 결정되는 경우에 PDPC 모드 및 결정된 인트라 예측 모드를 사용하여 비디오 데이터의 블록을 디코딩하거나, 또는 PDPC 모드를 사용하기로 결정되지 않는 경우에 PDPC 모드를 사용하지 않고 결정된 인트라 예측 모드를 사용하여 비디오 데이터의 블록을 디코딩하도록 구성될 수도 있다. 비디오 디코더 (30) 는 비디오 데이터의 디코딩된 블록을 출력하도록 추가로 구성될 수도 있다.
본 개시의 소정의 양태들은 예시를 목적으로 HEVC 표준 및 JEM 의 확장들에 대하여 설명되었다. 그러나, 본 개시에서 설명된 기법들은, 개발중이거나 또는 아직 개발되지 않은 다른 표준 또는 독점적 비디오 코딩 프로세스들을 포함한, 다른 비디오 코딩 프로세스들에 유용할 수도 있다.
비디오 코더는, 본 개시에서 설명된 바와 같이, 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 유사하게, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 마찬가지로, 비디오 코딩은, 적용가능한 경우, 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
예에 의존하여, 본 명세서에서 설명된 기법들 중 임의의 것의 소정의 액트들 또는 이벤트들은 상이한 시퀀스로 수행될 수 있고, 전체적으로 부가되거나 병합되거나 또는 제거될 수도 있음 (예를 들어, 모든 설명된 액트들 또는 이벤트들이 그 기법들의 실시를 위해 필수적인 것은 아님) 이 인식되어야 한다. 더욱이, 소정의 예들에서, 액트들 또는 이벤트들은 순차적인 것보다는, 예를 들어, 멀티-스레딩된 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들을 통해 동시에 수행될 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현되면, 그 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장 또는 송신될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라, 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체들은 일반적으로, (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
한정이 아닌 일례로, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 캐리어 파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않고, 그 대신 비일시적인, 유형의 저장 매체들로 지향됨이 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본 명세서에서 사용된 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하고, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들로 데이터를 광학적으로 재생한다. 또한, 상기의 조합들이 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를 테면 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 개별의 로직 회로부에 의해 실행될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는, 전술한 구조 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 추가로, 일부 양태들에서, 본 명세서에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되거나, 또는 조합된 코덱에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들면, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하는 것은 아니다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에서 조합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용가능한 하드웨어 유닛들의 콜렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (30)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    비디오 데이터의 블록을 수신하는 단계;
    상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하는 단계;
    상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하는 단계; 및
    결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (position-dependent prediction combination; PDPC) 모드를 사용할지 여부를 결정하는 단계로서, 상기 PDPC 모드를 사용할지 여부를 결정하는 단계는,
    상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하는 단계를 포함하는, 상기 PDPC 모드를 사용할지 여부를 결정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 프라이머리 변환은 이산 코사인 변환 (DCT), 이산 사인 변환 (DSP), 또는 향상된 다중 변환 (EMT) 중 하나인, 비디오 데이터를 디코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 세컨더리 변환은 회전 변환 또는 비-분리가능 세컨더리 변환 (NSST) 중 하나인, 비디오 데이터를 디코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 신택스 엘리먼트는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 대한 인덱스인, 비디오 데이터를 디코딩하는 방법.
  6. 제 1 항에 있어서,
    상기 신택스 엘리먼트는 변환들의 세트에 대한 인덱스인, 비디오 데이터를 디코딩하는 방법.
  7. 제 1 항에 있어서,
    상기 PDPC 모드를 사용하기로 결정되는 경우에 상기 PDPC 모드 및 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하는 단계; 또는
    상기 PDPC 모드를 사용하기로 결정되지 않는 경우에 상기 PDPC 모드를 사용하지 않고 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  8. 제 7 항에 있어서,
    디코딩된 상기 비디오 데이터의 블록을 출력하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  9. 비디오 데이터를 디코딩하도록 구성된 장치로서,
    비디오 데이터의 블록을 저장하도록 구성된 메모리; 및
    상기 메모리와 통신하는 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    상기 비디오 데이터의 블록을 수신하고;
    상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하고;
    상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고; 그리고
    결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하는 것으로서, 상기 PDPC 모드를 사용할지 여부를 결정하기 위해, 상기 하나 이상의 프로세서들은,
    상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하도록 추가로 구성되는, 상기 PDPC 모드를 사용할지 여부를 결정하도록 구성된, 비디오 데이터를 디코딩하도록 구성된 장치.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 프라이머리 변환은 이산 코사인 변환 (DCT), 이산 사인 변환 (DST), 또는 향상된 다중 변환 (EMT) 중 하나인, 비디오 데이터를 디코딩하도록 구성된 장치.
  12. 제 9 항에 있어서,
    상기 세컨더리 변환은 회전 변환 또는 비-분리가능 세컨더리 변환 (NSST) 중 하나인, 비디오 데이터를 디코딩하도록 구성된 장치.
  13. 제 9 항에 있어서,
    상기 신택스 엘리먼트는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 대한 인덱스인, 비디오 데이터를 디코딩하도록 구성된 장치.
  14. 제 9 항에 있어서,
    상기 신택스 엘리먼트는 변환들의 세트에 대한 인덱스인, 비디오 데이터를 디코딩하도록 구성된 장치.
  15. 제 9 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 PDPC 모드를 사용하기로 결정되는 경우에 상기 PDPC 모드 및 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하거나; 또는
    상기 PDPC 모드를 사용하기로 결정되지 않는 경우에 상기 PDPC 모드를 사용하지 않고 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
  16. 제 15 항에 있어서,
    상기 하나 이상의 프로세서들은,
    디코딩된 상기 비디오 데이터의 블록을 출력하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
  17. 비디오 데이터를 디코딩하도록 구성된 장치로서,
    비디오 데이터의 블록을 수신하기 위한 수단;
    상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하기 위한 수단;
    상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하기 위한 수단; 및
    결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하기 위한 수단으로서, 상기 PDPC 모드를 사용할지 여부를 결정하기 위한 수단은,
    상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하기 위한 수단을 포함하는, 상기 PDPC 모드를 사용할지 여부를 결정하기 위한 수단을 포함하는, 비디오 데이터를 디코딩하도록 구성된 장치.
  18. 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 비디오 데이터를 디코딩하도록 구성된 디바이스의 하나 이상의 프로세서들로 하여금,
    비디오 데이터의 블록을 수신하게 하고;
    상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하게 하고;
    상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하게 하고; 그리고
    결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하게 하는 것으로서, 상기 PDPC 모드를 사용할지 여부를 결정하기 위해, 상기 명령들은 또한, 상기 하나 이상의 프로세서들로 하여금,
    상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 값과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하게 하는, 상기 PDPC 모드를 사용할지 여부를 결정하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 비디오 데이터를 인코딩하는 방법으로서,
    비디오 데이터의 블록을 수신하는 단계;
    상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환을 결정하는 단계;
    상기 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하는 단계;
    결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 적어도 기초하여 상기 비디오 데이터의 블록을 인코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하는 단계로서, 상기 PDPC 모드를 사용할지 여부를 결정하는 단계는,
    상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 인코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하는 단계를 포함하는, 상기 PDPC 모드를 사용할지 여부를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  20. 비디오 데이터를 인코딩하도록 구성된 장치로서,
    비디오 데이터의 블록을 저장하도록 구성된 메모리; 및
    상기 메모리와 통신하는 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    상기 비디오 데이터의 블록을 수신하고;
    상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환을 결정하고;
    상기 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고; 그리고
    결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 적어도 기초하여 상기 비디오 데이터의 블록을 인코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하는 것으로서, 상기 PDPC 모드를 사용할지 여부를 결정하기 위해, 상기 하나 이상의 프로세서들은,
    상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 인코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하도록 추가로 구성되는, 상기 PDPC 모드를 사용할지 여부를 결정하도록 구성된, 비디오 데이터를 인코딩하도록 구성된 장치.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020197036176A 2017-06-15 2018-05-24 비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링 KR102278720B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762520426P 2017-06-15 2017-06-15
US62/520,426 2017-06-15
US15/987,560 2018-05-23
US15/987,560 US10805641B2 (en) 2017-06-15 2018-05-23 Intra filtering applied together with transform processing in video coding
PCT/US2018/034352 WO2018231488A1 (en) 2017-06-15 2018-05-24 Intra filtering applied together with transform processing in video coding

Publications (2)

Publication Number Publication Date
KR20200019132A KR20200019132A (ko) 2020-02-21
KR102278720B1 true KR102278720B1 (ko) 2021-07-16

Family

ID=64657715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036176A KR102278720B1 (ko) 2017-06-15 2018-05-24 비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링

Country Status (12)

Country Link
US (1) US10805641B2 (ko)
EP (2) EP4236312A3 (ko)
JP (1) JP6950004B2 (ko)
KR (1) KR102278720B1 (ko)
CN (1) CN110720218B (ko)
AU (1) AU2018282523B2 (ko)
BR (1) BR112019025629A2 (ko)
CA (1) CA3063559C (ko)
CL (1) CL2019003620A1 (ko)
CO (1) CO2019013898A2 (ko)
TW (1) TWI745594B (ko)
WO (1) WO2018231488A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146795B2 (en) 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
CN111386707B (zh) * 2017-11-22 2024-05-17 英迪股份有限公司 图像编码/解码方法和设备以及用于存储比特流的记录介质
EP3496401A1 (en) * 2017-12-05 2019-06-12 Thomson Licensing Method and apparatus for video encoding and decoding based on block shape
US11252420B2 (en) * 2017-12-15 2022-02-15 Lg Electronics Inc. Image coding method on basis of secondary transform and device therefor
US10567752B2 (en) * 2018-07-02 2020-02-18 Tencent America LLC Method and apparatus for intra prediction for non-square blocks in video compression
US10911765B2 (en) * 2018-08-01 2021-02-02 Tencent America LLC Method and apparatus for video coding
US10491893B1 (en) * 2018-08-29 2019-11-26 Tencent America LLC Method and apparatus for multi-line intra prediction
WO2020106186A1 (en) * 2018-11-19 2020-05-28 Huawei Technologies Co., Ltd. Method and apparatus for hierarchical signaling of enabling and disabling prediction mechanisms for video coding
KR20210104895A (ko) 2018-12-28 2021-08-25 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 인코더 및 디코더에서 변환 선택을 선택하기 위한 방법 및 장치
EP3913915A4 (en) 2019-01-14 2022-12-07 Samsung Electronics Co., Ltd. CODING METHOD AND DEVICE ASSOCIATED, AND DECODED METHOD AND DEVICE ASSOCIATED
WO2020164632A1 (en) 2019-02-15 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Non-power-two-partition tree in video compression
JP7293376B2 (ja) * 2019-02-28 2023-06-19 ヒューマックス・カンパニー・リミテッド イントラ予測ベースのビデオ信号処理方法及び装置
JP7100194B2 (ja) * 2019-03-11 2022-07-12 日本放送協会 画像符号化装置、画像復号装置、及びプログラム
WO2020185943A1 (en) * 2019-03-11 2020-09-17 Tencent America LLC Improvement for inter pdpc mode
CN113812149B (zh) * 2019-03-22 2024-04-12 Lg电子株式会社 图像编译系统中的图像解码方法和设备以及图像编码方法和设备
US11616966B2 (en) * 2019-04-03 2023-03-28 Mediatek Inc. Interaction between core transform and secondary transform
CN114223207B (zh) 2019-04-16 2023-09-22 寰发股份有限公司 用次要变换编解码视讯数据的方法以及装置
EP3949407A4 (en) * 2019-04-16 2023-04-12 HFI Innovation Inc. METHODS AND APPARATUS FOR ENCODING VIDEO DATA WITH ADAPTIVE SECONDARY TRANSFORMATION SIGNALING DEPENDING ON THE TB-PLANE SYNTAX
WO2020216303A1 (en) 2019-04-23 2020-10-29 Beijing Bytedance Network Technology Co., Ltd. Selective use of secondary transform in coded video
WO2020228671A1 (en) 2019-05-10 2020-11-19 Beijing Bytedance Network Technology Co., Ltd. Multiple secondary transform matrices for video processing
KR20220006055A (ko) 2019-05-11 2022-01-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 다중 인트라 코딩 방법 사이의 상호 작용
US11641471B2 (en) * 2019-05-27 2023-05-02 Lg Electronics Inc. Image coding method and device on basis of wide-angle intra prediction and transform
EP3967032A4 (en) 2019-06-07 2022-07-27 Beijing Bytedance Network Technology Co., Ltd. CONDITIONAL SIGNALING OF A REDUCED SECONDARY TRANSFORM FOR VIDEO BIANARY FLOWS
US20220337877A1 (en) * 2019-06-21 2022-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for non-separable transform selection in an encoder and decoder
EP3987800A4 (en) * 2019-06-24 2023-03-29 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PERFORMING INTRA PREDICTION CODING IN VIDEO CODING
CN113826403A (zh) 2019-06-25 2021-12-21 Oppo广东移动通信有限公司 信息处理方法及装置、设备、存储介质
JP7422858B2 (ja) 2019-08-03 2024-01-26 北京字節跳動網絡技術有限公司 ビデオ処理方法、装置、記憶媒体及び記憶方法
CN114223208B (zh) 2019-08-17 2023-12-29 北京字节跳动网络技术有限公司 为视频中的缩减二次变换的边信息的上下文建模
BR112022005293A2 (pt) 2019-09-19 2022-09-20 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeo, aparelho para processar dados de vídeo e meios de armazenamento e de gravação não transitórios legíveis por computador
CN114503574A (zh) 2019-09-19 2022-05-13 北京字节跳动网络技术有限公司 视频编解码中的缩放窗口
CA3151584C (en) * 2019-09-20 2024-04-02 Jani Lainema An apparatus, a method and a computer program for video coding and decoding
KR20220070437A (ko) 2019-10-05 2022-05-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩 툴의 레벨 기반 시그널링
EP4042678A4 (en) 2019-10-12 2023-01-18 Beijing Bytedance Network Technology Co., Ltd. USE AND REPORTING OF REFINEMENT VIDEO CODING TOOLS
JP7414980B2 (ja) 2019-10-13 2024-01-16 北京字節跳動網絡技術有限公司 参照ピクチャリサンプリングと映像コーディングツールとの間の相互作用
WO2023200966A1 (en) * 2022-04-13 2023-10-19 Beijing Dajia Internet Information Technology Co., Ltd Method and apparatus for cross-component prediction for video coding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088802A (en) 1997-06-04 2000-07-11 Spyrus, Inc. Peripheral device with integrated security functionality
US7783901B2 (en) 2001-12-05 2010-08-24 At&T Intellectual Property Ii, L.P. Network security device and method
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US8457200B2 (en) 2006-07-07 2013-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Video data management
US8621601B2 (en) 2008-05-21 2013-12-31 Sandisk Technologies Inc. Systems for authentication for access to software development kit for a peripheral device
EP2559239A2 (en) 2010-04-13 2013-02-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction
CN102857752B (zh) 2011-07-01 2016-03-30 华为技术有限公司 一种像素预测方法和装置
US9451287B2 (en) 2011-11-08 2016-09-20 Qualcomm Incorporated Context reduction for context adaptive binary arithmetic coding
US10681036B2 (en) 2014-03-28 2020-06-09 Ncr Corporation Composite security interconnect device and methods
US10445710B2 (en) 2014-08-26 2019-10-15 Ncr Corporation Security device key management
CN104301730A (zh) * 2014-10-14 2015-01-21 河海大学常州校区 基于视频移动设备的双向视频编解码系统及其方法
WO2016154963A1 (en) 2015-04-01 2016-10-06 Mediatek Inc. Methods for chroma coding in video codec
US10425648B2 (en) * 2015-09-29 2019-09-24 Qualcomm Incorporated Video intra-prediction using position-dependent prediction combination for video coding
CN114339228B (zh) * 2016-05-04 2024-04-12 夏普株式会社 用于对变换数据进行编码的系统和方法
CN105872564B (zh) * 2016-05-27 2019-02-19 武汉拓宝科技股份有限公司 H.264/avc到h.265/hevc转码的帧内预测模式决定方法及系统
US20180199062A1 (en) 2017-01-11 2018-07-12 Qualcomm Incorporated Intra prediction techniques for video coding
US11146795B2 (en) 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Panusopone K et al : "Unequal Weigh Planar Prediction and Constrained PDPC", JVET-E0068, 5 January 2017.

Also Published As

Publication number Publication date
EP4236312A3 (en) 2023-10-25
CN110720218A (zh) 2020-01-21
TWI745594B (zh) 2021-11-11
TW201906406A (zh) 2019-02-01
EP4236312A2 (en) 2023-08-30
CL2019003620A1 (es) 2020-06-26
JP6950004B2 (ja) 2021-10-13
CA3063559C (en) 2023-03-28
CN110720218B (zh) 2022-08-16
US20180367814A1 (en) 2018-12-20
EP3639518A1 (en) 2020-04-22
CO2019013898A2 (es) 2020-01-17
KR20200019132A (ko) 2020-02-21
JP2020523910A (ja) 2020-08-06
EP3639518B1 (en) 2023-08-23
AU2018282523B2 (en) 2022-06-02
AU2018282523A1 (en) 2019-12-05
BR112019025629A2 (pt) 2020-06-16
WO2018231488A1 (en) 2018-12-20
US10805641B2 (en) 2020-10-13
CA3063559A1 (en) 2018-12-20

Similar Documents

Publication Publication Date Title
KR102278720B1 (ko) 비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링
US11146795B2 (en) Intra filtering flag in video coding
US10506246B2 (en) Multi-type-tree framework for video coding
US11611757B2 (en) Position dependent intra prediction combination extended with angular modes
KR102089202B1 (ko) 비디오 코딩에서 비-정사각형 블록들에 대한 예측 파라미터들의 결정
US20180199062A1 (en) Intra prediction techniques for video coding

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
GRNT Written decision to grant