KR20200019132A - Intra filtering applied with transform processing in video coding - Google Patents

Intra filtering applied with transform processing in video coding Download PDF

Info

Publication number
KR20200019132A
KR20200019132A KR1020197036176A KR20197036176A KR20200019132A KR 20200019132 A KR20200019132 A KR 20200019132A KR 1020197036176 A KR1020197036176 A KR 1020197036176A KR 20197036176 A KR20197036176 A KR 20197036176A KR 20200019132 A KR20200019132 A KR 20200019132A
Authority
KR
South Korea
Prior art keywords
block
video data
video
mode
pdpc
Prior art date
Application number
KR1020197036176A
Other languages
Korean (ko)
Other versions
KR102278720B1 (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 KR20200019132A publication Critical patent/KR20200019132A/en
Application granted granted Critical
Publication of KR102278720B1 publication Critical patent/KR102278720B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/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/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/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) 모드를 사용할지 여부를 결정하는 단계를 포함한다. 방법은 또한, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하는 단계, 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 단계로서, 하나 이상의 비디오 코딩 툴들은 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 단계, 및 결정된 사용에 기초하여 하나 이상의 코딩 툴들을 비디오 데이터의 블록에 적용하는 단계를 포함할 수도 있다.A method of decoding video data comprises position receiving for receiving a block of video data, determining an intra prediction mode for the block of video data, and decoding the block of video data based at least on the determined intra prediction mode. Determining whether to use predictive combination (PDPC) mode. The method also includes receiving a syntax element associated with a primary transform or a secondary transform used for a block of video data, determining the use of one or more video coding tools based on the value of the syntax element. Coding tools include determining the use of the one or more video coding tools, which are video coding techniques other than a primary or secondary transform, and applying one or more coding tools to a block of video data based on the determined use. You may.

Description

비디오 코딩에서 변환 프로세싱과 함께 적용된 인트라 필터링Intra filtering applied with transform processing in video coding

본 출원은 2017년 6월 15일자로 출원된 미국 가출원 제62/520,426호의 이익을 주장하고, 그의 전체 내용은 본 명세서에 참조에 의해 통합된다.This application claims the benefit of US Provisional Application No. 62 / 520,426, filed June 15, 2017, the entire contents of which are incorporated herein by reference.

기술 분야Technical field

본 개시는 비디오 인코딩 및 비디오 디코딩에 관한 것이다.The present disclosure relates to video encoding and video decoding.

디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 디지털 보조기들 (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) 표준에 의해 정의된 표준들, 및 이러한 표준들의 확장들에서 설명된 것들과 같은 비디오 코딩 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 코딩 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.Digital video capabilities include digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, Wide range of devices, including digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite cordless phones, so-called "smart phones", video teleconferencing devices, video streaming devices, and the like. Can be incorporated into the Digital video devices are MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4, Part 10, Advanced Video Coding (AVC), High Efficiency Video Coding Implement video coding techniques, such as those defined by Efficiency Video Coding (HEVC or H.265) standard, and extensions of these standards. Video devices may transmit, receive, encode, decode, and / or store digital video information more efficiently by implementing such video coding techniques.

비디오 코딩 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소 또는 제거하기 위해 공간 (인트라 픽처) 예측 및/또는 시간 (인터 픽처) 예측을 포함한다. 블록 기반 비디오 코딩에 대해, 비디오 슬라이스 (예를 들어, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝될 수도 있으며, 이 비디오 블록들은 또한 트리블록들, 코딩 유닛들 (CU들) 및/또는 코딩 노드들로 지칭될 수도 있다. 픽처들은 프레임들로 지칭될 수도 있고, 레퍼런스 픽처들은 레퍼런스 프레임들로 지칭될 수도 있다.Video coding techniques include spatial (intra picture) prediction and / or temporal (inter picture) prediction to reduce or eliminate redundancy inherent in video sequences. For block based video coding, a video slice (eg, a video frame or part of a video frame) may be partitioned into video blocks, which video blocks may also be treeblocks, coding units (CUs), and / or the like. Or coding nodes. Pictures may be referred to as frames, and reference pictures may be referred to as reference frames.

공간 또는 시간 예측은 코딩될 블록에 대한 예측 블록을 초래한다. 잔차 데이터는 코딩될 원래의 블록과 예측 블록 간의 픽셀 차이들을 나타낸다. 추가의 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 후에 양자화될 수도 있는 잔차 변환 계수들을 초래할 수도 있다. 엔트로피 코딩이 훨씬 더 많은 압축을 달성하기 위해 적용될 수도 있다.Spatial or temporal prediction results in a predictive block for the block to be coded. Residual data represents pixel differences between the original block to be coded and the predictive block. For further compression, the residual data may be transformed from the pixel domain to the transform domain, resulting in residual transform coefficients that may later be quantized. Entropy coding may be applied to achieve even more compression.

일반적으로, 본 개시는 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 것에 관련된 기법들을 설명한다. 일부 예들에서, 비디오 인코더 또는 디코더는 비디오 데이터의 블록을 위해 사용되는 인트라 예측 모드에 기초하여 비디오 코딩 툴의 사용을 결정할 수도 있다. 다른 예들에서, 비디오 인코더 또는 디코더는 비디오 데이터의 블록을 위해 사용되는 변환에 기초하여 비디오 코딩 툴의 사용을 결정할 수도 있다. 비디오 코딩 툴들은 포지션 의존적 예측 조합 (position-dependent prediction combination; PDPC) 모드 또는 (예를 들어, 모드 의존적 인트라 평활화 (mode dependent intra smoothing; MDIS) 와 같은) 인트라 예측 레퍼런스 샘플들을 필터링하기 위한 기법들을 포함할 수도 있다. 이렇게 하여, 비디오 인코더는 특정한 변환을 표시하는 신택스 엘리먼트를 시그널링하도록 구성될 수도 있고 비디오 디코더는 그 변환과 그 변환에 대한 신택스 엘리먼트로부터의 비디오 코딩 툴의 사용 양자 모두를 결정하도록 구성될 수도 있다. 이로써, 오버헤드 시그널링이 감소되고 압축 효율이 증가될 수도 있다.In general, this disclosure describes techniques related to determining the use of one or more video coding tools. In some examples, the video encoder or decoder may determine the use of the video coding tool based on the intra prediction mode used for the block of video data. In other examples, the video encoder or decoder may determine the use of the video coding tool based on the transform used for the block of video data. Video coding tools include techniques for filtering position-dependent prediction combination (PDPC) mode or intra prediction reference samples (eg, mode dependent intra smoothing (MDIS)). You may. In this way, the video encoder may be configured to signal a syntax element indicating a particular transform and the video decoder may be configured to determine both the transform and the use of a video coding tool from the syntax element for that transform. This may reduce overhead signaling and increase compression efficiency.

하나의 예에서, 비디오 데이터를 디코딩하는 방법은, 비디오 데이터의 블록을 수신하는 단계, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하는 단계, 및 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하는 단계를 포함한다.In one example, a method of decoding video data includes receiving a block of video data, determining an intra prediction mode for a block of video data, and at least based on the determined intra prediction mode. Determining whether to use the PDPC mode for decoding.

다른 예에서, 비디오 데이터를 디코딩하도록 구성된 장치는, 비디오 데이터의 블록을 저장하도록 구성된 메모리, 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성된다.In another example, an apparatus configured to decode video data includes a memory configured to store a block of video data, and one or more processors in communication with the memory, wherein the one or more processors receive a block of video data, Determine an intra prediction mode for a block of and determine whether to use the PDPC mode to decode a block of video data based at least on the determined intra prediction mode.

다른 예에서, 비디오 데이터를 디코딩하도록 구성된 장치는, 비디오 데이터의 블록을 수신하기 위한 수단, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하기 위한 수단, 및 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하기 위한 수단을 포함한다.In another example, an apparatus configured to decode video data includes means for receiving a block of video data, means for determining an intra prediction mode for a block of video data, and at least based on the determined intra prediction mode. Means for determining whether to use the PDPC mode to decode the block.

다른 예에서, 본 개시는 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 설명하고, 그 명령들은, 실행될 때, 비디오 데이터를 디코딩하도록 구성된 디바이스의 하나 이상의 프로세서들로 하여금, 비디오 데이터의 블록을 수신하게 하고, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하게 하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하게 한다.In another example, the present disclosure describes a non-transitory computer readable storage medium storing instructions, which instructions, when executed, cause one or more processors of a device configured to decode video data to receive a block of video data. Determine an intra prediction mode for a block of video data, and determine whether to use a PDPC mode to decode a block of video data based at least on the determined intra prediction mode.

다른 예에서, 비디오 데이터를 인코딩하는 방법은, 비디오 데이터의 블록을 수신하는 단계, 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하는 단계, 및 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하는 단계를 포함한다.In another example, a method of encoding video data includes receiving a block of video data, determining an intra prediction mode for encoding a block of video data, and at least based on the determined intra prediction mode. Determining whether to use the PDPC mode to encode the.

다른 예에서, 비디오 데이터를 인코딩하도록 구성된 장치는, 비디오 데이터의 블록을 저장하도록 구성된 메모리, 및 메모리와 통신하는 하나 이상의 프로세서들을 포함하고, 하나 이상의 프로세서들은, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성된다.In another example, an apparatus configured to encode video data includes a memory configured to store a block of video data, and one or more processors in communication with the memory, wherein the one or more processors receive a block of video data, and Determine an intra prediction mode for encoding a block of, and determine whether to use the PDPC mode to encode a block of video data based at least on the determined intra prediction mode.

본 개시의 하나 이상의 양태들의 상세들은 첨부 도면들 및 이하의 상세한 설명에 기재된다. 본 개시에서 설명된 기법들의 다른 피처들, 목적들, 및 이점들은 상세한 설명, 도면들, 및 청구항들로부터 명백할 것이다.Details of one or more aspects of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the techniques described in this disclosure will be apparent from the description, drawings, and claims.

도 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 is a block diagram illustrating an example video encoding and decoding system configured to implement the techniques of this disclosure.
2A is a conceptual diagram illustrating an example of block partitioning using a quadtree plus binary tree (QTBT) structure.
FIG. 2B is a conceptual diagram illustrating an example tree structure corresponding to block partitioning using the QTBT structure of FIG. 2A.
3 is an example of 35 intra prediction modes defined in HEVC.
4A illustrates prediction of a 4x4 block using an unfiltered reference in accordance with the techniques of this disclosure.
4B illustrates prediction of a 4x4 block using a filtered reference in accordance with the techniques of this disclosure.
5 illustrates an example of intra reference filtering.
6 is a block diagram illustrating an example of a video encoder configured to implement the techniques of this disclosure.
7 is a block diagram illustrating an example of a video decoder configured to implement the techniques of this disclosure.
8 is a flowchart illustrating an encoding method of an example of the present disclosure.
9 is a flowchart illustrating a decoding method of an example of the present disclosure.

본 개시는 인트라 예측을 사용하여 비디오 데이터의 블록을 코딩하기 위한 기법들을 설명한다. 일부 예들에서, 본 개시는 예측 방향들, 인트라 필터링, 변환 프로세싱, 및 비디오 코딩 툴들 (예를 들어, 비디오 인코딩 및 디코딩을 위한 특정 비디오 코딩 기법들) 의 결정을 위한 기법들을 설명한다.This disclosure describes techniques for coding a block of video data using intra prediction. In some examples, this disclosure describes techniques for prediction directions, intra filtering, transform processing, and determination of video coding tools (eg, specific video coding techniques for video encoding and decoding).

도 1 은 인트라 예측 필터링 및 변환 프로세싱을 위해 본 개시의 기법들을 수행하도록 구성될 수도 있는 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록 다이어그램이다. 도 1 에 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 비디오 데이터를 컴퓨터 판독가능 매체 (16) 를 통해 목적지 디바이스 (14) 에 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (예를 들어, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋들, 이를 테면 소위 "스마트" 폰들 (또는 더 일반적으로, 이동국들), 태블릿 컴퓨터들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한, 광범위한 디바이스들 중 임의의 것을 포함할 수도 있다. 이동국은 무선 네트워크를 통해 통신할 수 있는 임의의 디바이스일 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신을 위해 장비될 수도 있다. 따라서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 무선 통신 디바이스들 (예를 들어, 이동국들) 일 수도 있다. 소스 디바이스 (12) 는 예의 비디오 인코딩 디바이스 (즉, 비디오 데이터를 인코딩하기 위한 디바이스) 이다. 목적지 디바이스 (14) 는 예의 비디오 디코딩 디바이스 (즉, 비디오 데이터를 디코딩하기 위한 디바이스) 이다.1 is a block diagram illustrating an example video encoding and decoding system 10 that may be configured to perform the techniques of this disclosure for intra prediction filtering and transform processing. As shown in FIG. 1, system 10 includes a source device 12 that provides encoded video data to be decoded later by destination device 14. In particular, source device 12 provides video data to destination device 14 via computer readable medium 16. Source device 12 and destination device 14 may be desktop computers, notebook (eg, laptop) computers, tablet computers, set-top boxes, telephone handsets, such as so-called “smart” phones (or more general). And mobile stations), tablet computers, televisions, cameras, display devices, digital media players, video gaming consoles, video streaming devices, and the like. The mobile station may be any device capable of communicating over a wireless network. In some cases, source device 12 and destination device 14 may be equipped for wireless communication. Thus, source device 12 and destination device 14 may be wireless communication devices (eg, mobile stations). Source device 12 is an example video encoding device (ie, a device for encoding video data). Destination device 14 is an example video decoding device (ie, a device for decoding video data).

도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 데이터를 저장하도록 구성된 저장 매체들 (20), 비디오 인코더 (22), 및 출력 인터페이스 (24) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (26), 인코딩된 비디오 데이터를 저장하도록 구성된 저장 매체들 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 다른 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 다른 컴포넌트들 또는 어레인지먼트들을 포함한다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스 (32) 를 포함하는 것보다는 외부 디스플레이 디바이스와 인터페이스할 수도 있다.In the example of FIG. 1, source device 12 includes a video source 18, storage media 20 configured to store video data, video encoder 22, and output interface 24. Destination device 14 includes an input interface 26, storage media 28 configured to store encoded video data, video decoder 30, and display device 32. In other examples, source device 12 and destination device 14 include other components or arrangements. For example, source device 12 may receive video data from an external video source, such as an external camera. Similarly, destination device 14 may interface with an external display device rather than include an integrated display device 32.

도 1 의 예시된 시스템 (10) 은 하나의 예일 뿐이다. 비디오 데이터를 프로세싱 및/또는 코딩 (예를 들어, 인코딩 및/또는 디코딩) 하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 본 개시의 기법들은 일반적으로 비디오 인코딩 디바이스 및/또는 비디오 디코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, 통상적으로 "CODEC" 으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 단지, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이런 이유로, 시스템 (10) 은 예를 들면, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해, 소스 디바이스 (12) 와 목적지 디바이스 (14) 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.The illustrated system 10 of FIG. 1 is just one example. Techniques for processing and / or coding (eg, encoding and / or decoding) video data may be performed by any digital video encoding and / or decoding device. The techniques of this disclosure are generally performed by a video encoding device and / or a video decoding device, but the techniques may also be performed by a video encoder / decoder, commonly referred to as "CODEC". Source device 12 and destination device 14 are merely examples of such coding devices in which source device 12 generates coded video data for transmission to destination device 14. In some examples, source device 12 and destination device 14 may operate in a substantially symmetrical manner such that each of source device 12 and destination device 14 include video encoding and decoding components. For this reason, system 10 may support one-way or two-way video transmission between source device 12 and destination device 14, for example, for video streaming, video playback, video broadcasting, or video telephony. .

소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 및/또는 비디오 콘텐트 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스 (video feed interface) 를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (18) 는 컴퓨터 그래픽 기반 데이터를 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 생성할 수도 있다. 소스 디바이스 (12) 는 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들 (예를 들어, 저장 매체들 (20)) 을 포함할 수도 있다. 본 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 사전-캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 출력 인터페이스 (24) 는 인코딩된 비디오 정보 (예를 들어, 인코딩된 비디오 데이터의 비트스트림) 를 컴퓨터 판독가능 매체 (16) 로 출력할 수도 있다.Video source 18 of source device 12 is a video capture device, such as a video camera, a video archive containing previously captured video, and / or a video feed for receiving video data from a video content provider. It may also include a video feed interface. As a further alternative, video source 18 may generate computer graphics based data as a source video, or a combination of live video, archived video, and computer generated video. Source device 12 may include one or more data storage media (eg, storage media 20) configured to store video data. The techniques described in this disclosure may be applicable to video coding in general, and may be applied to wireless and / or wired applications. In each case, the captured, pre-captured, or computer-generated video may be encoded by video encoder 22. Output interface 24 may output encoded video information (eg, a bitstream of encoded video data) to computer readable medium 16.

목적지 디바이스 (14) 는, 컴퓨터 판독가능 매체 (16) 를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터 판독가능 매체 (16) 는, 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 일부 예들에서, 컴퓨터 판독가능 매체 (16) 는, 소스 디바이스 (12) 로 하여금, 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 에 실시간으로 송신할 수 있게 하는 통신 매체를 포함한다. 인코딩된 비디오 데이터는 통신 표준, 이를 테면 무선 통신 프로토콜에 따라 변조되고, 목적지 디바이스 (14) 에 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를 테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 목적지 디바이스 (14) 는 인코딩된 비디오 데이터 및 디코딩된 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들을 포함할 수도 있다.Destination device 14 may receive encoded video data to be decoded via computer readable medium 16. Computer-readable medium 16 may include any type of medium or device capable of moving the encoded video data from source device 12 to destination device 14. In some examples, computer readable medium 16 includes a communication medium that enables source device 12 to transmit encoded video data directly to destination device 14 in real time. The encoded video data may be modulated according to a communication standard, such as a wireless communication protocol, and transmitted to the destination device 14. The communication medium may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. The communication medium may include routers, switches, base stations, or any other equipment that may be useful for facilitating communication from source device 12 to destination device 14. Destination device 14 may include one or more data storage media configured to store encoded video data and decoded video data.

일부 예들에서, 인코딩된 데이터는 출력 인터페이스 (24) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스된 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는, 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 임의의 타입의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예를 들어, 웹사이트용), FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함한 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 이들 양자 모두의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.In some examples, encoded data may be output from output interface 24 to a storage device. Similarly, encoded data may be accessed from a storage device by an input interface. The storage device may be variously distributed, such as a hard drive, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or nonvolatile memory, or any other suitable digital storage medium for storing encoded video data. And may include any of the data storage media that have been accessed or locally accessed. In a further example, the storage device may correspond to a file server or other intermediate storage device that may store the encoded video generated by source device 12. Destination device 14 may access stored video data from the storage device via streaming or download. The file server may be any type of server capable of storing encoded video data and transmitting that encoded video data to the destination device 14. Example file servers include a web server (eg, for a website), an FTP server, network attached storage (NAS) devices, or a local disk drive. Destination device 14 may access the encoded video data via any standard data connection, including an internet connection. This may be a wireless channel (eg Wi-Fi connection), wired connection (eg DSL, cable modem, etc.), or a combination of both, suitable for accessing encoded video data stored on a file server. It may also include. The transmission of encoded video data from the storage device may be a streaming transmission, a download transmission, or a combination thereof.

본 개시에서 설명된 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, DASH (dynamic adaptive streaming over HTTP) 와 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중 임의의 멀티미디어 애플리케이션의 지원으로 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.The techniques described in this disclosure include over-the-air television broadcasts, cable television transmissions, satellite television transmissions, internet streaming video transmissions such as dynamic adaptive streaming over HTTP (DASH), and data storage. It may be applied to video coding with the support of any of a variety of multimedia applications, such as digital video encoded on a medium, decoding of digital video stored on a data storage medium, or other applications. In some examples, system 10 may be configured to support one-way or two-way video transmission to support applications such as video streaming, video playback, video broadcasting, and / or video telephony.

컴퓨터 판독가능 매체 (16) 는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적 매체들, 또는 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들과 같은 저장 매체들 (즉, 비일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 예를 들어 네트워크 송신을 통해 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생성 설비의 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 수신하고, 인코딩된 비디오 데이터를 포함하는 디스크를 생성할 수도 있다. 따라서, 컴퓨터 판독가능 매체 (16) 는, 다양한 예들에 있어서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하도록 이해될 수도 있다.Computer readable medium 16 may be transitory media such as a wireless broadcast or wired network transmission, or storage such as a hard disk, flash drive, compact disk, digital video disk, Blu-ray disk, or other computer readable media. Media may be included (ie, non-transitory storage media). In some examples, a network server (not shown) may receive encoded video data from source device 12 and provide the encoded video data to destination device 14 via, for example, a network transmission. Similarly, a computing device in a media generation facility, such as a disc stamping facility, may receive encoded video data from source device 12 and generate a disc that includes the encoded video data. Thus, computer readable medium 16 may be understood to include one or more computer readable media of various forms, in various examples.

목적지 디바이스 (14) 의 입력 인터페이스 (26) 는 컴퓨터 판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터 판독가능 매체 (16) 의 정보는, 비디오 인코더 (22) 의 비디오 인코더 (22) 에 의해 정의되고 또한 비디오 디코더 (30) 에 의해 사용되는 신택스 정보를 포함할 수도 있고, 이 신택스 정보는 블록들 및 다른 코딩된 유닛들, 예를 들어, 픽처들의 그룹들 (GOP들) 의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함한다. 저장 매체들 (28) 은 입력 인터페이스 (26) 에 의해 수신된 인코딩된 비디오 데이터를 저장할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.Input interface 26 of destination device 14 receives information from computer readable medium 16. The information of computer readable medium 16 may include syntax information defined by video encoder 22 of video encoder 22 and also used by video decoder 30, which syntax information may include blocks. And syntax elements that describe the characteristics and / or processing of other coded units, eg, groups of pictures (GOPs). Storage media 28 may store encoded video data received by input interface 26. Display device 32 displays decoded video data to a user and displays various display devices, such as cathode ray tubes (CRT), liquid crystal displays (LCD), plasma displays, organic light emitting diode (OLED) displays, or other types of display devices. It may also include any of these.

비디오 인코더 (22) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적합한 비디오 인코더 및/또는 비디오 디코더 회로부 중 임의의 것으로서 구현될 수도 있다. 기법들이 부분적으로 소프트웨어로 구현될 경우, 디바이스는 적합한 비일시적 컴퓨터 판독가능 매체에 소프트웨어에 대한 명령들을 저장하고, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하는 하드웨어로 명령들을 실행할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나는 개별의 디바이스에 있어서 조합된 CODEC 의 부분으로서 통합될 수도 있다.Each of video encoder 22 and video decoder 30 is one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic May be implemented as any of a variety of suitable video encoder and / or video decoder circuitry such as software, hardware, firmware or any combination thereof. If the techniques are implemented in part in software, the device may store the instructions for the software in a suitable non-transitory computer readable medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Each of video encoder 22 and video decoder 30 may be included in one or more encoders or decoders, either of which may be integrated as part of a combined CODEC for a separate device.

일부 예들에서, 비디오 인코더 (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 에 의해 개발된 비디오 코덱들을 포함한다.In some examples, video encoder 22 and video decoder 30 may operate according to a video coding standard. Example video coding standards include ITU-T H.261, ISO / IEC MPEG-1 Visual, ITU-T H.262 or ISO / IEC MPEG-2 Visual, ITU-T H.263, ISO / IEC MPEG-4 Visual and ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC), including but not limited to its scalable video coding (SVC) and multi-view video coding (MVC) extensions) . In addition, new video coding standards, namely high efficiency video coding (HEVC) or ITU-T H.265 (its range and screen content coding extensions, 3D video coding (3D-HEVC) and multiview extensions (MV- HEVC) and Scalable Extensions (SHVC)) by the Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Expert Group (VCEG) and the ISO / IEC Motion Picture Expert Group (MPEG). Developed. Video coding standards also include proprietary video codecs such as Google VP8, VP9, VP10, and video codecs developed by other organizations, such as the Alliance for Open Media.

일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 JVET (Joint Video Exploration Team) 에 의해 탐색되는 새로운 비디오 코딩 기법들을 포함한, 다른 비디오 코딩 기법들 및/또는 표준들에 따라 동작하도록 구성될 수도 있다. JVET 는 JEM (Joint Exploratory Model) 으로 불리는 소프트웨어 모델에 따라 테스팅을 수행한다.In some examples, video encoder 22 and video decoder 30 may be configured to operate in accordance with other video coding techniques and / or standards, including new video coding techniques searched by Joint Video Exploration Team (JVET). It may be. JVET performs testing according to a software model called Joint Exploratory Model (JEM).

이하에 더 상세히 설명될 바와 같이, 본 개시의 하나의 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성될 수도 있다. 마찬가지로, 비디오 인코더 (22) 는, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성될 수도 있다.As will be described in more detail below, in one example of the present disclosure, video decoder 30 receives a block of video data, determines an intra prediction mode for the block of video data, and determines the determined intra prediction mode. May be configured to determine whether to use the PDPC mode to decode a block of video data based at least on. Similarly, video encoder 22 receives a block of video data, determines an intra prediction mode for encoding a block of video data, and encodes the PDPC to encode a block of video data based at least on the determined intra prediction mode. It may be configured to determine whether to use the mode.

HEVC 및 다른 비디오 코딩 명세들에서, 비디오 시퀀스는 통상적으로 일련의 픽처들을 포함한다. 픽처들은 또한 "프레임들" 로 지칭될 수도 있다. 픽처는 SL, SCb, 및 SCr 로 표기된 3 개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2-차원 어레이 (예를 들어, 블록) 이다. SCb 는 Cb 크로미넌스 샘플들의 2-차원 어레이이다. SCr 는 Cr 크로미넌스 샘플들의 2-차원 어레이이다. 크로미넌스 샘플들은 또한, 본 명세서에서 "크로마 (chroma)" 샘플들로 지칭될 수도 있다. 다른 인스턴스들에서, 픽처는 단색 (monochrome) 일 수도 있고 루마 샘플들의 어레이를 단지 포함할 수도 있다.In HEVC and other video coding specifications, a video sequence typically includes a series of pictures. Pictures may also be referred to as “frames”. The picture may include three sample arrays labeled S L , S Cb , and S Cr . S L is a two-dimensional array (eg, a block) of luma samples. S Cb is a two-dimensional array of Cb chrominance samples. S Cr is a two-dimensional array of Cr chrominance samples. Chrominance samples may also be referred to herein as "chroma" samples. In other instances, the picture may be monochrome and may only contain an array of luma samples.

픽처의 인코딩된 표현 (예를 들어, 인코딩된 비디오 비트스트림) 을 생성하기 위해, 비디오 인코더 (22) 는 코딩 트리 유닛들 (CTU들) 의 세트를 생성할 수도 있다. CTU들의 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, CTU 는 단일 코딩 트리 블록 및 코딩 트리 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 N×N 블록일 수도 있다. CTU 는 또한 "트리 블록" 또는 "최대 코딩 유닛 (LCU)" 으로 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은 다른 표준들의 매크로블록들과 대체로 유사할 수도 있다. 그러나, CTU 는 특정한 사이즈에 반드시 한정되는 것은 아니며 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 래스터 스캔 순서로 연속적으로 순서화된 정수 개의 CTU들을 포함할 수도 있다.To generate an encoded representation of a picture (eg, an encoded video bitstream), video encoder 22 may generate a set of coding tree units (CTUs). Each of the CTUs may include a coding tree block of luma samples, two corresponding coding tree blocks of chroma samples, and syntax structures used to code the samples of the coding tree blocks. In monochrome pictures or pictures with three separate color planes, the CTU may include syntax structures used to code samples of a single coding tree block and a coding tree block. The coding tree block may be an N × N block of samples. CTU may also be referred to as a “tree block” or “maximum coding unit (LCU)”. The CTUs of HEVC may be largely similar to macroblocks of other standards such as H.264 / AVC. However, a CTU is not necessarily limited to a particular size and may include one or more coding units (CUs). A slice may include integer CTUs sequentially ordered in raster scan order.

코딩된 CTU 를 생성하기 위해, 비디오 인코더 (22) 는 CTU 의 코딩 트리 블록들에 대해 쿼드트리 파티셔닝을 재귀적으로 수행하여, 코딩 트리 블록들을 코딩 블록들, 따라서, 일명 "코딩 트리 유닛들" 로 분할할 수도 있다. 코딩 블록은 샘플들의 N×N 블록이다. CU 는 루마 샘플들의 코딩 블록 및 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 갖는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, CU 는 단일 코딩 블록 및 코딩 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다.To generate a coded CTU, video encoder 22 recursively performs quadtree partitioning on the coding tree blocks of the CTU to convert the coding tree blocks into coding blocks, thus referred to as "coding tree units". You can also divide. The coding block is an N × N block of samples. A CU may include a coding block of luma samples and two corresponding coding blocks of chroma samples of a picture having a luma sample array, a Cb sample array, and a Cr sample array, and syntax structures used to code the samples of the coding blocks. It may be. In monochrome pictures or pictures with three separate color planes, a CU may include a single coding block and syntax structures used to code the samples of the coding block.

비디오 인코더 (22) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은, 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록들을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, PU 는 단일 예측 블록 및 예측 블록을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (22) 는 CU 의 각각의 PU 의 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 에 대한 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 을 생성할 수도 있다.Video encoder 22 may partition a coding block of a CU into one or more prediction blocks. The prediction block is a rectangular (ie square or non-square) block of samples to which the same prediction is applied. The prediction unit (PU) of the CU may include a prediction block of luma samples, two corresponding prediction blocks of chroma samples, and syntax structures used to predict the prediction blocks. In monochrome pictures or pictures with three separate color planes, a PU may include syntax structures used to predict a single prediction block and a prediction block. Video encoder 22 performs prediction blocks (eg, luma, Cb, and Cr prediction blocks) for the prediction blocks (eg, luma, Cb, and Cr prediction blocks) of each PU of the CU. You can also create

비디오 인코더 (22) 는 PU 에 대한 예측 블록들을 생성하기 위해 인트라 예측 또는 인터 예측을 사용할 수도 있다. 비디오 인코더 (22) 가 PU 의 예측 블록들을 생성하기 위해 인트라 예측을 사용하면, 비디오 인코더 (22) 는 PU 를 포함하는 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.Video encoder 22 may use intra prediction or inter prediction to generate predictive blocks for a PU. If video encoder 22 uses intra prediction to generate the predictive blocks of the PU, video encoder 22 may generate the predictive blocks of the PU based on decoded samples of the picture that includes the 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 코딩 블록에서의 대응하는 샘플 간의 차이를 표시할 수도 있다. 그러나, 크로마 예측을 위한 다른 기법들이 사용될 수도 있음을 이해해야 한다.After video encoder 22 generates prediction blocks (eg, luma, Cb, and Cr prediction blocks) for one or more PUs of a CU, video encoder 22 generates one or more residual blocks for the CU. You can also create them. As one example, video encoder 22 may generate a luma residual block for a CU. Each sample in a luma residual block of a CU indicates a difference between a luma sample in one of the predictive luma blocks of the CU and a corresponding sample in the original luma coding block of the CU. In addition, video encoder 22 may generate a Cb residual block for the CU. In one example of chroma prediction, each sample in the Cb residual block of the CU may indicate a difference between the Cb sample in one of the predictive Cb blocks of the CU and the corresponding sample in the original Cb coding block of the CU. have. Video encoder 22 may also generate a Cr residual block for the CU. Each sample in the Cr residual block of the CU may indicate a difference between the Cr sample in one of the CU's predictive Cr blocks and the corresponding sample in the original Cr coding block of the CU. However, it should be understood that other techniques for chroma prediction may be used.

더욱이, 비디오 인코더 (22) 는 CU 의 잔차 블록들 (예를 들어, 루마, Cb, 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예를 들어, 루마, Cb, 및 Cr 변환 블록들) 로 분해하기 위해 쿼드트리 파티셔닝을 사용할 수도 있다. 변환 블록은, 동일한 변환이 적용되는 샘플들의 직사각형 (예를 들어, 정사각형 또는 비-정사각형) 블록이다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록을 가질 수도 있다. TU 의 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, TU 는 단일 변환 블록 및 변환 블록의 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다.Moreover, video encoder 22 converts the residual blocks (eg, luma, Cb, and Cr residual blocks) of the CU into one or more transform blocks (eg, luma, Cb, and Cr transform blocks). You can also use quadtree partitioning to decompose. A transform block is a rectangular (eg, square or non-square) block of samples to which the same transform is applied. A transform unit (TU) of a CU may include a transform block of luma samples, two corresponding transform blocks of chroma samples, and syntax structures used to transform transform block samples. Thus, each TU of a CU may have a luma transform block, a Cb transform block, and a Cr transform block. The luma transform block of the TU may be a sub-block of the luma residual block of the CU. The Cb transform block may be a sub-block of the Cb residual block of the CU. The Cr transform block may be a sub-block of the Cr residual block of the CU. In monochrome pictures or pictures with three separate color planes, the TU may include syntax structures used to transform a single transform block and samples of the transform block.

비디오 인코더 (22) 는 TU 에 대한 계수 블록을 생성하기 위해 TU 의 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 TU 에 대한 루마 계수 블록을 생성하기 위해 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 계수 블록은 변환 계수들의 2-차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cb 계수 블록을 생성하기 위해 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cr 계수 블록을 생성하기 위해 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용할 수도 있다.Video encoder 22 may apply one or more transforms to a transform block of the TU to generate a coefficient block for the TU. For example, video encoder 22 may apply one or more transforms to a luma transform block of the TU to generate a luma coefficient block for the TU. The coefficient block may be a two-dimensional array of transform coefficients. The transform coefficients may be scalar quantities. Video encoder 22 may apply one or more transforms to the Cb transform block of the TU to generate a Cb coefficient block for the TU. Video encoder 22 may apply one or more transforms to the Cr transform block of the TU to generate a Cr coefficient block for the TU.

계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (22) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들이 그 변환 계수들을 나타내는데 사용되는 데이터의 양을 가능하게는 감소시키도록 양자화되어 추가의 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (22) 가 계수 블록을 양자화한 후, 비디오 인코더 (22) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들에 대해 콘텍스트-적응형 이진 산술 코딩 (CABAC) 을 수행할 수도 있다.After generating a coefficient block (eg, a luma coefficient block, a Cb coefficient block, or a Cr coefficient block), video encoder 22 may quantize the coefficient block. Quantization generally refers to a process in which transform coefficients are quantized to possibly reduce the amount of data used to represent the transform coefficients to provide further compression. After video encoder 22 quantizes a coefficient block, video encoder 22 may entropy encode syntax elements that indicate quantized transform coefficients. For example, video encoder 22 may perform context-adaptive binary arithmetic coding (CABAC) on syntax elements indicative of quantized transform coefficients.

비디오 인코더 (22) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 따라서, 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은, NAL 유닛에서의 데이터의 타입의 표시, 및 필요에 따라 에뮬레이션 방지 비트들로 산재된 원시 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 의 형태로 그 데이터를 포함하는 바이트들을 포함하는 신택스 구조이다. NAL 유닛들의 각각은, NAL 유닛 헤더를 포함할 수도 있고 RBSP 를 캡슐화 (encapsulate) 한다. NAL 유닛 헤더는, NAL 유닛 타입 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 표시한다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수 개의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 인스턴스들에서, RBSP 는 제로 비트들을 포함한다.Video encoder 22 may output a bitstream that includes a sequence of bits that form a representation of coded pictures and associated data. Thus, the bitstream contains an encoded representation of the video data. The bitstream may include a sequence of network abstraction layer (NAL) units. The NAL unit includes an indication of the type of data in the NAL unit, and bytes containing the data in the form of a raw byte sequence payload (RBSP) interspersed with emulation prevention bits as needed. It is a syntax structure. Each of the NAL units may include a NAL unit header and encapsulates the RBSP. The NAL unit header may include a syntax element indicating the NAL unit type code. The NAL unit type code specified by the NAL unit header of the NAL unit indicates the type of the NAL unit. The RBSP may be a syntax structure that includes integer bytes encapsulated within a NAL unit. In some instances, the RBSP includes zero bits.

비디오 디코더 (30) 는 비디오 인코더 (22) 에 의해 생성된 인코딩된 비디오 비트스트림을 수신할 수도 있다. 추가로, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위해 비트스트림을 파싱할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 재구성할 수도 있다. 비디오 데이터를 재구성하기 위한 프로세스는 일반적으로 비디오 인코더 (22) 에 의해 수행되는 프로세스와 상반될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들을 결정하기 위해 PU들의 모션 벡터들을 사용할 수도 있다. 추가로, 비디오 디코더 (30) 는 현재의 CU 의 TU들의 계수 블록들을 역 양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU들의 변환 블록들을 재구성하기 위해 계수 블록들에 대해 역 변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU들의 변환 블록들의 대응하는 샘플들에 부가함으로써 현재의 CU 의 코딩 블록들을 재구성할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 재구성함으로써, 비디오 디코더 (30) 는 픽처를 재구성할 수도 있다.Video decoder 30 may receive the encoded video bitstream generated by video encoder 22. In addition, video decoder 30 may parse the bitstream to obtain syntax elements from the bitstream. Video decoder 30 may reconstruct pictures of video data based at least in part on syntax elements obtained from the bitstream. The process for reconstructing video data may generally be contrary to the process performed by video encoder 22. For example, video decoder 30 may use the motion vectors of the PUs to determine predictive blocks for the PUs of the current CU. In addition, video decoder 30 may inverse quantize coefficient blocks of TUs of the current CU. Video decoder 30 may perform inverse transforms on the coefficient blocks to reconstruct transform blocks of TUs of the current CU. Video decoder 30 may reconstruct coding blocks of the current CU by adding samples of predictive blocks for PUs of the current CU to corresponding samples of transform blocks of TUs of the current CU. By reconstructing the coding blocks for each CU of a picture, video decoder 30 may reconstruct the picture.

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 에서 사용된 쿼드트리 구조보다 더 효율적일 수도 있다는 것을 보여주었다.The quadtree plus binary tree (QTBT) partition structure is currently being studied by the Joint Video Exploration Team (JVET). In J. An et al, "Block partitioning structure for next generation video coding", International Telecommunications Union, COM16-C966, September 2015 ("VCEG proposed COM16-C966"), QTBT partitioning techniques are the The video coding standard has been described. Simulations show that the proposed QTBT structure may be more efficient than the quadtree structure used in HEVC.

VCEG 제안 COM16-C966 에서 설명된 QTBT 구조에서, CTB 는 먼저 쿼드트리 파티셔닝 기법들을 사용하여 파티셔닝되고, 여기서 하나의 노드의 쿼드트리 스플리팅은 노드가 최소 허용된 쿼드트리 리프 노드 사이즈에 도달할 때까지 반복될 수 있다. 최소 허용된 쿼드트리 리프 노드 사이즈는 신택스 엘리먼트 MinQTSize 의 값에 의해 비디오 디코더 (30) 에 표시될 수도 있다. 쿼드트리 리프 노드 사이즈가 (예를 들어, 신택스 엘리먼트 MaxBTSize 로 표시된 바와 같은) 최대 허용된 이진 트리 루트 노드 사이즈보다 크지 않은 경우, 쿼드트리 리프 노드는 이진 트리 파티셔닝을 사용하여 추가로 파티셔닝될 수 있다. 하나의 노드의 이진 트리 파티셔닝은 노드가 (예를 들어, 신택스 엘리먼트 MinBTSize 로 표시된 바와 같은) 최소 허용된 이진 트리 리프 노드 사이즈 또는 (예를 들어, 신택스 엘리먼트 MaxBTDepth 로 표시된 바와 같은) 최대 허용된 이진 트리 심도에 도달할 때까지 반복될 수 있다. VCEG 제안 COM16-C966 은 이진-트리 리프 노드들을 지칭하기 위해 용어 "CU" 를 사용한다. VCEG 제안 COM16-C966 에서, CU들은 어떤 추가의 파티셔닝 없는 변환 및 예측 (예를 들어, 인트라 예측, 인터 예측 등) 을 위해 사용된다. 일반적으로, QTBT 기법들에 따르면, 이진 트리 스플리팅을 위한 2 개의 스플리팅 타입들: 대칭적 수평 스플리팅 및 대칭적 수직 스플리팅이 존재한다. 각각의 경우에, 블록은 그 블록의 중간을 수평으로 또는 수직으로 양분하는 것에 의해 스플리팅된다. 이것은 블록을 4 개의 블록들로 분할하는 쿼드트리 파티셔닝과는 상이하다.In the QTBT structure described in the VCEG proposal COM16-C966, CTB is first partitioned using quadtree partitioning techniques, where quadtree splitting of one node occurs when the node reaches the minimum allowed quadtree leaf node size. Can be repeated. The minimum allowed quadtree leaf node size may be indicated to video decoder 30 by the value of syntax element MinQTSize. If the quadtree leaf node size is not greater than the maximum allowed binary tree root node size (eg, indicated by syntax element MaxBTSize), the quadtree leaf node may be further partitioned using binary tree partitioning. Binary tree partitioning of one node means that the node has a minimum allowed binary tree leaf node size (e.g., as indicated by the syntax element MinBTSize) or a maximum allowed binary tree (e.g., as indicated by the syntax element MaxBTDepth). It can be repeated until the depth is reached. VCEG proposal COM16-C966 uses the term “CU” to refer to binary-tree leaf nodes. In the VCEG proposal COM16-C966, CUs are used for transform and prediction (eg intra prediction, inter prediction, etc.) without any additional partitioning. In general, according to QTBT techniques, there are two splitting types for binary tree splitting: symmetrical horizontal splitting and symmetrical vertical splitting. In each case, the block is split by dividing the middle of the block horizontally or vertically. This is different from quadtree partitioning, which divides a block into four blocks.

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들) 은 어떤 추가의 파티셔닝 없이 (예를 들어, 예측 프로세스 및 변환 프로세스를 수행하는 것에 의해) 추가로 프로세싱된다.In one example of a QTBT partitioning structure, the CTU size is set as 128 × 128 (eg, 128 × 128 luma block and two corresponding 64 × 64 chroma blocks), MinQTSize is set as 16 × 16, MaxBTSize is set to 64x64, MinBTSize (for both width and height) is set to 4, and MaxBTDepth is set to 4. Quadtree partitioning is first applied to the CTU to create quadtree leaf nodes. Quadtree leaf nodes may have a size from 16 × 16 (ie MinQTSize is 16 × 16) to 128 × 128 (ie, CTU size). According to one example of QTBT partitioning, if the leaf quadtree node is 128 × 128, the leaf quadtree node is added by the binary tree because the size of the leaf quadtree node exceeds MaxBTSize (ie 64 × 64). Cannot be split into Otherwise, the leaf quadtree node is further partitioned by the binary tree. Thus, the quadtree leaf node is also the root node for the binary tree and has a binary tree depth as zero. A binary tree depth reaching MaxBTDepth (eg 4) means no further splitting. A binary tree node with the same width as MinBTSize (eg 4) means no more horizontal splitting. Similarly, a binary tree node whose height is equal to MinBTSize means there is no more vertical splitting. Leaf nodes (CUs) of the binary tree are further processed (eg, by performing a prediction process and a transformation process) without any further partitioning.

도 2a 는 QTBT 파티셔닝 기법들을 사용하여 파티셔닝된 블록 (50) (예를 들어, CTB) 의 예를 예시한다. 도 2a 에 도시된 바와 같이, QTBT 파티션 기법들을 사용하여, 결과의 블록들의 각각은 각각의 블록의 중심을 통해 대칭적으로 스플리팅된다. 도 2b 는 도 2a 의 블록 파티셔닝에 대응하는 트리 구조를 예시한다. 도 2b 에서의 실선들은 쿼드트리 스플리팅을 표시하고 점선들은 이진 트리 스플리팅을 표시한다. 하나의 예에서, 이진 트리의 각각의 스플리팅 (즉, 비-리프) 노드에서, 신택스 엘리먼트 (예를 들어, 플래그) 가 수행된 스플리팅의 타입 (예를 들어, 수평 또는 수직) 을 표시하기 위해 시그널링되고, 여기서 0 은 수평 스플리팅을 표시하고 1 은 수직 스플리팅을 표시한다. 쿼드트리 스플리팅에 대해서는, 스플리팅 타입을 표시할 필요가 없는데, 쿼드트리 스플리팅은 항상 블록을 동일한 사이즈를 가진 4 개의 서브-블록들로 수평으로 및 수직으로 스플리팅하기 때문이다.2A illustrates an example of block 50 (eg, CTB) partitioned using QTBT partitioning techniques. As shown in FIG. 2A, using QTBT partitioning techniques, each of the resulting blocks is symmetrically split through the center of each block. FIG. 2B illustrates a tree structure corresponding to the block partitioning of FIG. 2A. Solid lines in FIG. 2B indicate quadtree splitting and dotted lines indicate binary tree splitting. In one example, at each splitting (ie non-leaf) node of the binary tree, the type of splitting (eg, horizontal or vertical) on which the syntax element (eg, flag) is performed is performed. Signaled to indicate, where 0 indicates horizontal splitting and 1 indicates vertical splitting. For quadtree splitting, there is no need to indicate the splitting type, because quadtree splitting always splits a block horizontally and vertically into four sub-blocks of the same size. .

도 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 로 마킹된다.As shown in FIG. 2B, at node 70, block 50 is split into four blocks 51, 52, 53, and 54, shown in FIG. 2A, using quadtree partitioning. Will be added. Block 54 is no longer split, and thus is a leaf node. At node 72, block 51 is further split into two blocks using binary tree partitioning. As shown in FIG. 2B, node 72 is marked 1, indicating vertical splitting. As such, splitting at node 72 results in a block that includes block 57 and both blocks 55 and 56. Blocks 55 and 56 are created by additional vertical splitting at node 74. At node 76, block 52 is further split into two blocks 58 and 59 using binary tree partitioning. As shown in FIG. 2B, node 76 is marked 1, indicating horizontal splitting.

노드 (78) 에서, 블록 (53) 은 쿼드트리 파티셔닝을 사용하여 4 개의 동일한 사이즈 블록들로 스플리팅된다. 블록들 (63 및 66) 은 이 쿼드트리 파티셔닝으로부터 생성되고 추가로 스플리팅되지 않는다. 노드 (80) 에서, 좌측 상단 블록은 먼저 수직 이진 트리 스플리팅을 사용하여 스플리팅되어 블록 (60) 및 우측 수직 블록을 초래한다. 우측 수직 블록은 그 후 수평 이진 트리 스플리팅을 사용하여 블록들 (61 및 62) 로 스플리팅된다. 노드 (78) 에서의 쿼드트리 스플리팅으로부터 생성된 우측 하단 블록은 노드 (84) 에서 수평 이진 트리 스플리팅을 사용하여 블록들 (64 및 65) 로 스플리팅된다.At node 78, block 53 is split into four equally sized blocks using quadtree partitioning. Blocks 63 and 66 are generated from this quadtree partitioning and are not split further. At node 80, the upper left block is first split using vertical binary tree splitting to result in block 60 and the right vertical block. The right vertical block is then split into blocks 61 and 62 using horizontal binary tree splitting. The lower right block generated from quadtree splitting at node 78 is split into blocks 64 and 65 using horizontal binary tree splitting at node 84.

QTBT 파티셔닝의 하나의 예에서, 루마 및 크로마 파티셔닝은, 예를 들어, 쿼드트리 파티셔닝이 루마 및 크로마 블록들에 대해 공동으로 수행되는 HEVC 와는 반대로, I-슬라이스들에 대해 서로 독립적으로 수행될 수도 있다. 즉, 일부 예들에서, 루마 블록들 및 크로마 블록들은 루마 블록들 및 크로마 블록들이 직접 오버랩하지 않도록 별도로 파티셔닝될 수도 있다. 이로써, QTBT 파티셔닝의 일부 예들에서, 적어도 하나의 파티셔닝된 크로마 블록이 단일 파티셔닝된 루마 블록과 공간적으로 정렬되지 않도록 하는 방식으로 크로마 블록들이 파티셔닝될 수도 있다. 즉, 특정한 크로마 블록과 병치되는 루마 샘플들은 2 개 이상의 상이한 루마 파티션들 내에 있을 수도 있다.In one example of QTBT partitioning, luma and chroma partitioning may be performed independently of one another on I-slices, for example, as opposed to HEVC where quadtree partitioning is performed jointly on luma and chroma blocks. . That is, in some examples, luma blocks and chroma blocks may be partitioned separately so that the luma blocks and chroma blocks do not directly overlap. As such, in some examples of QTBT partitioning, the chroma blocks may be partitioned in such a way that at least one partitioned chroma block is not spatially aligned with a single partitioned luma block. That is, luma samples collocated with a particular chroma block may be in two or more different luma partitions.

HEVC 및 JEM 에서, 인트라 레퍼런스 (예를 들어, 인트라 예측을 위해 사용되는 레퍼런스 픽셀들/이웃 샘플들) 는 평활화될 수 있다. 일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 레퍼런스 샘플들에 필터를 적용하도록 구성될 수도 있다. HEVC 에서, 모드 의존적 인트라 평활화 (MDIS) 는, 비디오 인코더 (22) 및 비디오 디코더 (30) 가 특정한 인트라 예측 모드들에 대한 이웃 샘플들로부터 인트라 예측을 생성하기 전에 인트라 레퍼런스 (예를 들어, 이웃 샘플들) 에 필터를 적용하도록 구성된다.In HEVC and JEM, an intra reference (eg, reference pixels / neighbor samples used for intra prediction) can be smoothed. In some examples, video encoder 22 and video decoder 30 may be configured to apply a filter to intra reference samples. In HEVC, mode dependent intra smoothing (MDIS) is an intra reference (eg, neighbor sample) before video encoder 22 and video decoder 30 generate intra prediction from neighbor samples for particular intra prediction modes. Are applied to the filter.

도 3 은 HEVC 에서 정의된 35 개의 인트라 예측 모드들의 예를 도시하는 개념 다이어그램이다. HEVC 에서, 루마 블록은 평면 모드, DC 모드 및 33 개의 각도 모드들을 포함하는, 35 개의 인트라 예측 중 하나를 사용하여 예측될 수도 있다. HEVC 에서 정의된 인트라 예측의 35 개의 모드들은 이하의 표 1 에 도시된 바와 같이 인덱싱된다:3 is a conceptual diagram illustrating an example of 35 intra prediction modes defined in HEVC. In HEVC, a luma block may be predicted using one of 35 intra predictions, including planar mode, DC mode, and 33 angular modes. The 35 modes of intra prediction defined in HEVC are indexed as shown in Table 1 below:

Figure pct00001
Figure 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 필터를 적용하지 않을 수도 있다.Video encoder 22 and video decoder 30 are intra-segment MDIS enabled based on how close or how dust the current intra prediction mode is to the horizontal or vertical direction (e.g., horizontal or vertical intra prediction direction). It may be configured to derive the prediction modes. In one example, video encoder 22 and video decoder 30 are specified based on an absolute difference between the intra mode index for the current intra prediction mode and the intra prediction mode index of the horizontal and / or vertical mode intra prediction mode. The intra mode may be configured to induce how close or how dusty the horizontal or vertical direction is. If this absolute difference exceeds a predetermined threshold (eg, the threshold may be block size dependent), video encoder 22 and video decoder 30 may be configured to apply an MDIS filter to reference samples. have. If this absolute difference is below a certain threshold (eg, the threshold may be block size dependent), video encoder 22 and video decoder 30 may be configured to not apply an MDIS filter to the reference samples. have. Examples of thresholds are 10 (eg for 4 × 4 blocks), 7 (eg for 8 × 8 blocks), 1 (eg for 16 × 16 blocks), and 0 (eg For example, 32 × 32 blocks). In other words, for intra prediction modes remote from the horizontal or vertical directions, video encoder 22 and video decoder 30 may not apply an intra reference filter. In some examples, video encoder 22 and video decoder 30 may not apply an MDIS filter for non-angle intra prediction modes such as DC mode or planar mode.

JEM 에서, MDIS 는 평활화 필터 (예를 들어, 레퍼런스 샘플 적응형 필터링 (RSAF) 또는 적응형 레퍼런스 샘플 평활화 (ARSS)) 로 대체되었고, 이는 모든 인트라 모드들에 대해 적용될 수 있다. 이러한 평활화 필터의, 인트라 레퍼런스 샘플들에 대한 적용은 인트라 평활화로 지칭될 수도 있다. 일부 예들에서, 평활화 필터는 DC 모드에 대해 적용되지 않는다. 비디오 인코더 (22) 는 평활화 필터가 현재의 블록에서 적용되는지 여부를 표시하기 위해 플래그를 생성 및 시그널링하도록 구성될 수도 있다. 비디오 디코더 (30) 는 현재의 블록에 대해 평활화 필터를 적용할지 여부를 결정하기 위해 이러한 플래그를 수신 및 파싱하도록 구성될 수도 있다.In JEM, MDIS has been replaced with a smoothing filter (eg, Reference Sample Adaptive Filtering (RSAF) or Adaptive Reference Sample Smoothing (ARSS)), which can be applied for all intra modes. The application of such smoothing filter to intra reference samples may be referred to as intra smoothing. In some examples, the smoothing filter is not applied for DC mode. Video encoder 22 may be configured to generate and signal a flag to indicate whether a smoothing filter is applied in the current block. Video decoder 30 may be configured to receive and parse this flag to determine whether to apply a smoothing filter to the current block.

일부 예들에서, 비디오 인코더 (22) 는 이러한 플래그를 명시적 플래그로서 시그널링하지 않도록 구성될 수도 있지만, 오히려, 비디오 인코더 (22) 는 평활화 필터가 변환 계수들의 특성 (예를 들어, 변환 계수들의 패리티) 에서 적용되는지 여부의 표시를 숨기도록 구성될 수도 있다. 마찬가지로, 비디오 디코더 (30) 는 변환 계수들의 특성 (예를 들어, 변환 계수들의 패리티) 으로부터 평활화 필터가 적용되는지 여부를 결정 (예를 들어, 플래그의 값을 결정) 하도록 구성될 수도 있다. 예를 들어, 변환 계수들이 소정의 패리티 조건 (예를 들어, 홀수 또는 짝수) 을 충족하는 경우, 플래그의 값은 1 로서 유도되고, 그렇지 않으면 플래그의 값은 0 으로서 유도된다.In some examples, video encoder 22 may be configured not to signal such a flag as an explicit flag, but rather, video encoder 22 may indicate that a smoothing filter is a characteristic of transform coefficients (eg, parity of transform coefficients). It may also be configured to hide an indication of whether it applies in. Similarly, video decoder 30 may be configured to determine whether a smoothing filter is applied (eg, determine the value of a flag) from the nature of the transform coefficients (eg, the parity of the transform coefficients). For example, if the transform coefficients meet a predetermined parity condition (eg, odd or even), the value of the flag is derived as 1, otherwise the value of the flag is derived as 0.

JEM 에서 사용되는 다른 툴은 포지션 의존적 인트라 예측 조합 (PDPC) 모드이다. PDPC 모드는 인트라 예측자 및 인트라 레퍼런스 샘플들을 가중화하는 툴이고, 여기서 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (폭 및 높이를 포함하는) 코딩되는 블록의 블록 사이즈 및 인트라 예측 모드에 기초하여 가중치들을 유도한다.Another tool used in JEM is position dependent intra prediction combination (PDPC) mode. The PDPC mode is a tool for weighting intra predictors and intra reference samples, where video encoder 22 and video decoder 30 are based on the block size and intra prediction mode of the block being coded (including width and height). To derive the weights.

본 개시에서 설명된 기법들은 임의의 조합으로 그리고 다른 방법들과의 임의의 결합으로 사용될 수도 있다. 인트라 평활화 및 PDPC 모드는 예시 및 설명을 목적으로 사용되고, 본 개시의 기법들은 그 예들에 한정되지 않고 개시된 방법들은 다른 툴들에 적용될 수 있다.The techniques described in this disclosure may be used in any combination and in any combination with other methods. Intra smoothing and PDPC modes are used for purposes of illustration and description, and the techniques of this disclosure are not limited to the examples and the disclosed methods may be applied to other tools.

다음의 섹션들은 포지션 의존적 인트라 예측 조합 (PDPC) 코딩 모드에 대한 파라미터들을 결정하기 위한 기법들을 설명한다. 본 개시의 인트라 평활화 기법들은 PDPC 모드와 함께 사용될 수도 있다. 그러나, 인트라 평활화 및 PDPC 모드는 예시 및 설명을 목적으로 사용되고, 본 개시의 기법들은 그 예들에 한정되지 않고 개시된 방법들은 다른 툴들에 적용될 수 있다.The following sections describe techniques for determining parameters for position dependent intra prediction combination (PDPC) coding mode. Intra smoothing techniques of the present disclosure may be used with the PDPC mode. However, intra smoothing and PDPC modes are used for purposes of illustration and description, and the techniques of this disclosure are not limited to the examples and the disclosed methods may be applied to other tools.

PDPC 코딩 모드를 사용하여 비디오 데이터를 코딩할 때, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 필터링된 및 필터링되지 않은 레퍼런스 값들에 기초하여 그리고 예측된 픽셀의 포지션에 기초하여 예측들을 조합하는 방법을 정의하는 하나 이상의 파라미터화된 방정식들을 사용할 수도 있다. 본 개시는, 비디오 인코더 (22) 가 (예를 들어, 레이트-왜곡 분석을 통해, 예를 들어, 이를 사용하여) 파라미터들의 세트들을 테스트하고 비디오 디코더 (30) 에 최적의 파라미터들 (예를 들어, 테스트되는 그 파라미터들 중에서 최상의 레이트-왜곡 성능을 초래하는 파라미터들) 을 시그널링하도록 구성될 수도 있다. 일부 예들에서, 비디오 디코더 (30) 는 비디오 데이터의 특성들 (예를 들어, 블록 사이즈, 블록 높이, 블록 폭 등) 로부터 PDPC 파라미터들을 결정하도록 구성될 수도 있다.When coding video data using the PDPC coding mode, video encoder 22 and / or video decoder 30 combine the predictions based on filtered and unfiltered reference values and based on the position of the predicted pixel. One or more parameterized equations may be used to define how to do this. The disclosure discloses that video encoder 22 tests sets of parameters (eg, using, for example, rate-distortion analysis) and optimizes parameters (eg, using video decoder 30). , Parameters that result in the best rate-distortion performance among those parameters being tested). In some examples, video decoder 30 may be configured to determine PDPC parameters from characteristics of the video data (eg, block size, block height, block width, etc.).

도 4a 는 본 개시의 기법들에 따른 필터링되지 않은 레퍼런스 (r) 를 사용한 4×4 블록의 예측 (p) 을 예시한다. 도 4b 는 본 개시의 기법들에 따른 필터링된 레퍼런스 (s) 를 사용한 4×4 블록의 예측 (q) 을 예시한다. 도 4a 및 도 4b 양자 모두는 4×4 픽셀 블록 및 17 (4x4+1) 개의 개별의 레퍼런스 값들을 예시하지만, 본 개시의 기법들은 임의의 블록 사이즈 및 수의 레퍼런스 값들에 적용될 수도 있다.4A illustrates prediction (p) of a 4x4 block using an unfiltered reference (r) in accordance with the techniques of this disclosure. 4B illustrates prediction (q) of a 4x4 block using filtered reference (s) in accordance with the techniques of this disclosure. Although both FIGS. 4A and 4B illustrate a 4 × 4 pixel block and 17 (4 × 4 + 1) individual reference values, the techniques of this disclosure may be applied to any block size and number of reference values.

PDPC 코딩 모드를 수행할 때, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는 필터링된 예측 (q) 과 필터링되지 않은 예측 (p) 간의 조합을 활용할 수도 있어, 코딩될 현재의 블록에 대한 예측된 블록이 필터링된 레퍼런스 (s) 및 필터링되지 않은 레퍼런스 (r) 어레이들 양자 모두로부터의 픽셀 값들을 사용하여 계산될 수 있다.When performing the PDPC coding mode, video encoder 22 and / or video decoder 30 may utilize a combination between the filtered prediction (q) and the unfiltered prediction (p), thus, for the current block to be coded. The predicted block can be calculated using pixel values from both filtered reference (s) and unfiltered reference (r) arrays.

PDPC 의 기법들의 하나의 예에서, 각각 필터링되지 않은 및 필터링된 레퍼런스들 rs 만을 사용하여 계산된, 임의의 2 개의 세트의 픽셀 예측들

Figure pct00002
Figure pct00003
가 주어지면,
Figure pct00004
로 표기된, 픽셀의 조합된 예측된 값은 다음으로 정의되고,In one example of the techniques of PDPC, any two sets of pixel predictions, calculated using only unfiltered and filtered references r and s , respectively
Figure pct00002
And
Figure pct00003
Is given,
Figure pct00004
The combined predicted value of a pixel, denoted by, is defined as

Figure pct00005
Figure pct00005

여기서

Figure pct00006
는 조합 파라미터들의 세트이다. 가중치
Figure pct00007
의 값은 0 과 1 사이의 값일 수도 있다. 가중치들
Figure pct00008
Figure pct00009
의 합은 1 과 동일할 수도 있다.here
Figure pct00006
Is a set of combination parameters. weight
Figure pct00007
The value of may be a value between 0 and 1. Weights
Figure pct00008
Wow
Figure pct00009
The sum of may be equal to one.

소정의 예들에서, 블록에서의 픽셀들의 수 만큼 큰 파라미터들의 세트를 갖는 것은 실용적이지 않을 수도 있다. 이러한 예들에서,

Figure pct00010
는 훨씬 더 작은 파라미터들의 세트, 플러스 이들 파라미터들로부터 모든 조합 값들을 계산하기 위한 방정식으로 정의될 수도 있다. 이러한 예에서, 다음의 공식이 사용될 수도 있다:In certain examples, it may not be practical to have a set of parameters as large as the number of pixels in the block. In these examples,
Figure pct00010
May be defined as a much smaller set of parameters, plus an equation for calculating all combination values from these parameters. In this example, the following formula may be used:

Figure pct00011
Figure pct00011

여기서,

Figure pct00012
Figure pct00013
는 예측 파라미터들이고, N 은 블록 사이즈이고,
Figure pct00014
Figure pct00015
는 각각 필터링되지 않은 및 필터링된 레퍼런스들을 사용하여, 특정 모드에 대해, HEVC 표준에 따르는 것을 사용하여 계산된 예측 값들이고, 그리고 here,
Figure pct00012
And
Figure pct00013
Is the prediction parameters, N is the block size,
Figure pct00014
And
Figure pct00015
Are predictive values computed using the conforming to the HEVC standard for a particular mode, using unfiltered and filtered references, respectively, and

Figure pct00016
Figure pct00016

은 예측 파라미터들에 의해 정의된, (즉,

Figure pct00017
Figure pct00018
에 할당된 전체 가중치들이 1 을 증가시키게 하는) 정규화 팩터이다.Is defined by the prediction parameters, i.e.
Figure pct00017
And
Figure pct00018
The total weights assigned to are increased by 1).

공식 2 는 공식 2A 에서 임의의 비디오 코딩 표준에 대해 일반화될 수도 있다:Equation 2 may be generalized for any video coding standard in Equation 2A:

Figure pct00019
Figure pct00019

여기서,

Figure pct00020
Figure pct00021
는 예측 파라미터들이고, N 은 블록 사이즈이고,
Figure pct00022
Figure pct00023
는 각각 필터링되지 않은 및 필터링된 레퍼런스들을 사용하여, 특정 모드에 대해, 비디오 코딩 표준 (또는 비디오 코딩 스킴 또는 알고리즘) 에 따르는 것을 사용하여 계산된 예측 값들이고, 그리고here,
Figure pct00020
And
Figure pct00021
Is the prediction parameters, N is the block size,
Figure pct00022
And
Figure pct00023
Are predictive values computed using the compliant with video coding standard (or video coding scheme or algorithm), for a particular mode, using unfiltered and filtered references, respectively, and

Figure pct00024
Figure pct00024

는 예측 파라미터들에 의해 정의된, (즉,

Figure pct00025
Figure pct00026
에 할당된 전체 가중치들이 1 을 증가시키게 하는) 정규화 팩터이다.Is defined by the prediction parameters, i.e.
Figure pct00025
And
Figure pct00026
The total weights assigned to are increased by 1).

이들 예측 파라미터들은 사용된 예측 모드의 타입 (예를 들어, HEVC 의 DC, 평면, 및 33 개의 지향성 모드들) 에 따라 예측된 항들의 최적의 선형 조합을 제공하기 위한 가중치들을 포함할 수도 있다. 예를 들어, HEVC 는 35 개의 예측 모드들을 포함한다. 룩업 테이블은 예측 모드들의 각각에 대한 예측 파라미터들

Figure pct00027
Figure pct00028
의 각각에 대한 값들 (즉, 각각의 예측 모드에 대한
Figure pct00029
Figure pct00030
의 35 개의 값들) 로 구성될 수도 있다. 이러한 값들은 비디오와 비트스트림으로 인코딩될 수도 있거나 또는 미리 인코더 및 디코더에 의해 알려진 상수 값들일 수도 있고 파일 또는 비트스트림으로 송신될 필요가 없을 수도 있다.
Figure pct00031
Figure pct00032
에 대한 값들은 트레이닝 비디오들의 세트에 대해 최상의 압축을 제공하는 예측 파라미터들에 대한 값들을 발견하는 것에 의해 최적화 트레이닝 알고리즘에 의해 결정될 수도 있다.These prediction parameters may include weights to provide an optimal linear combination of the predicted terms depending on the type of prediction mode used (eg, DC, plane, and 33 directional modes of HEVC). For example, HEVC includes 35 prediction modes. The lookup table includes prediction parameters for each of the prediction modes.
Figure pct00027
And
Figure pct00028
Values for each of (i.e., for each prediction mode
Figure pct00029
And
Figure pct00030
35 values). These values may be encoded in the video and the bitstream or may be constant values known by the encoder and decoder in advance and may not need to be transmitted in the file or bitstream.
Figure pct00031
And
Figure pct00032
The values for may be determined by the optimization training algorithm by finding values for prediction parameters that provide the best compression for the set of training videos.

다른 예에서, (예를 들어, 룩업 테이블에서) 각각의 예측 모드에 대한 복수의 사전정의된 예측 파라미터 세트들이 존재하고 선택된 예측 파라미터 세트 (그러나 파라미터들 그것들 자체는 아님) 는 인코딩된 파일 또는 비트스트림으로 디코더에 송신된다. 다른 예에서,

Figure pct00033
Figure pct00034
에 대한 값들은 비디오 인코더 (22) 에 의해 즉시 생성되고 인코딩된 파일 또는 비트스트림으로 비디오 디코더 (30) 에 송신될 수도 있다.In another example, there are a plurality of predefined prediction parameter sets for each prediction mode (eg, in a lookup table) and the selected prediction parameter set (but not the parameters themselves) is an encoded file or bitstream. Is sent to the decoder. In another example,
Figure pct00033
And
Figure pct00034
The values for may be immediately generated by video encoder 22 and transmitted to video decoder 30 in an encoded file or bitstream.

다른 예에서, HEVC 예측을 사용하는 대신에, 이들 기법들을 수행하는 비디오 코딩 디바이스는 33 개의 지향성 예측들 대신 65 개의 지향성 예측들을 사용하는 것처럼, HEVC 의 수정된 버전을 사용할 수도 있다. 실제로, 임의의 타입의 인트라-프레임 예측이 사용될 수 있다.In another example, instead of using HEVC prediction, a video coding device performing these techniques may use a modified version of HEVC, such as using 65 directional predictions instead of 33 directional predictions. Indeed, any type of intra-frame prediction may be used.

다른 예에서, 공식은 계산들을 용이하게 하도록 선택될 수 있다. 예를 들어, 다음의 타입의 예측자를 사용할 수 있다 In another example, the formula can be selected to facilitate the calculations. For example, you can use the following types of predictors:

Figure pct00035
Figure pct00035

여기서here

Figure pct00036
Figure pct00036

그리고And

Figure pct00037
Figure pct00037

이러한 접근법은 HEVC (또는 다른) 예측의 선형성을 활용할 수도 있다. h 를 사전정의된 세트로부터의 필터 k 의 임펄스 응답으로서 정의하면,This approach may utilize the linearity of HEVC (or other) prediction. If h is defined as the impulse response of filter k from a predefined set,

Figure pct00038
Figure pct00038

(여기서 "*" 는 콘볼루션을 나타낸다) 을 가지면,(Where "*" represents convolution),

Figure pct00039
Figure pct00039

즉, 선형으로 조합된 예측은 선형으로 조합된 레퍼런스로부터 계산될 수도 있다.That is, the linearly combined prediction may be calculated from the linearly combined reference.

공식들 4, 6 및 8 은 공식 4A, 6A, 및 8A 에서 임의의 비디오 코딩 표준에 대해 일반화될 수도 있다:Formulas 4, 6, and 8 may be generalized for any video coding standard in Formulas 4A, 6A, and 8A:

Figure pct00040
Figure pct00040

여기서here

Figure pct00041
Figure pct00041

그리고And

Figure pct00042
Figure pct00042

이러한 접근법은 코딩 표준의 예측의 선형성을 활용할 수도 있다. h 를 사전정의된 세트로부터의 필터 k 의 임펄스 응답으로서 정의하면,This approach may utilize the linearity of prediction of the coding standard. If h is defined as the impulse response of filter k from a predefined set,

Figure pct00043
Figure pct00043

(여기서 "*" 는 콘볼루션을 나타낸다) 를 갖는 경우,(Where "*" represents convolution),

Figure pct00044
Figure pct00044

즉, 선형으로 조합된 예측은 선형으로 조합된 레퍼런스로부터 계산될 수도 있다.That is, the linearly combined prediction may be calculated from the linearly combined reference.

예에서, 예측 함수들은 레퍼런스 벡터 (예를 들어, rs) 를 단지 입력으로서 사용할 수도 있다. 이 예에서, 레퍼런스 벡터의 거동 (behavior) 은, 레퍼런스가 필터링된 경우 또는 필터링되지 않은 경우 변경되지 않는다. rs 가 동일하면 (예를 들어, 일부 필터링되지 않은 레퍼런스 r 은 다른 필터링된 레퍼런스 s 와 동일하게 된다), 예측 함수들, 예를 들어,

Figure pct00045
(또한 p(x,y,r) 로서 기입됨) 은 필터링된 및 필터링되지 않은 레퍼런스들에 적용된,
Figure pct00046
(또한 p(x,y,s) 로서 기입됨) 와 동일하다. 추가적으로, 픽셀 예측들 p 및 q 는 등가일 수도 있다 (예를 들어, 동일한 입력이 주어지면 동일한 출력을 생성한다). 이러한 예에서, 공식들 (1) 내지 (8) 은 픽셀 예측
Figure pct00047
를 픽셀 예측
Figure pct00048
로 대체하여 재기입될 수도 있다.In an example, prediction functions may only use a reference vector (eg, r and s ) as input. In this example, the behavior of the reference vector does not change if the reference is filtered or unfiltered. If r and s are equal (e.g. some unfiltered reference r becomes equal to other filtered reference s ), then prediction functions, e.g.
Figure pct00045
(Also written as p (x, y, r )) is applied to the filtered and unfiltered references,
Figure pct00046
(Also written as p (x, y, s )). Additionally, pixel predictions p and q may be equivalent (eg, produce the same output given the same input). In this example, formulas (1) through (8) are pixel prediction
Figure pct00047
Pixel prediction
Figure pct00048
It can also be rewritten in place of.

다른 예에서, 예측 (예를 들어, 함수들의 세트들) 은 레퍼런스가 필터링된 정보에 의존하여 변경될 수도 있다. 이 예에서, 상이한 세트들의 함수들이 표기될 수도 있다 (예를 들어,

Figure pct00049
Figure pct00050
). 이 경우에, rs 가 동일하더라도,
Figure pct00051
Figure pct00052
는 동일하지 않을 수도 있다. 다시 말해서, 동일한 입력은, 그 입력이 필터링되었는지 여부에 의존하여 상이한 출력을 생성할 수 있다. 이러한 예에서,
Figure pct00053
Figure pct00054
로 대체될 수 없을 수도 있다.In another example, the prediction (eg, sets of functions) may be changed depending on the information for which the reference was filtered. In this example, different sets of functions may be written (eg,
Figure pct00049
And
Figure pct00050
). In this case, even though r and s are equal,
Figure pct00051
And
Figure pct00052
May not be the same. In other words, the same input can produce a different output depending on whether the input is filtered. In this example,
Figure pct00053
Is
Figure pct00054
May not be replaced.

도시된 예측 방정식들의 이점은, 파라미터화된 공식으로, 최적의 파라미터들의 세트들이 트레이닝과 같은 기법들을 사용하여, 상이한 타입들의 비디오 텍스처들에 대해, 결정될 수 있다 (즉, 예측 정확도를 최적화하는 파라미터들) 는 것이다. 이 접근법은 차례로, 일부 통상의 타입들의 텍스처들에 대해, 여러 세트들의 예측 파라미터들을 계산하고 인코더가 각각의 세트로부터 예측자들을 테스트하는 압축 스킴을 가짐으로써 일부 예들에서 확장될 수도 있고, 최상의 압축을 산출하는 것을 사이드 정보로서 인코딩한다.The advantage of the prediction equations shown is that, with a parameterized formula, the sets of optimal parameters can be determined for different types of video textures using techniques such as training (ie, parameters that optimize prediction accuracy). ) Will be. This approach may, in turn, be extended in some examples by calculating several sets of prediction parameters and having an compression scheme where the encoder tests predictors from each set, for some conventional types of textures, The output is encoded as side information.

상기 논의된 바와 같이, 일부 예들에서, 비디오 인코더 (22) 는 비디오 데이터의 하나 이상의 블록들에 대한 특정한 비디오 코딩 툴의 사용 (예를 들어, 인트라 평활화 필터 및/또는 PDPC 모드가 적용되는지 여부) 을 표시하기 위해 플래그 또는 인덱스를 시그널링하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (22) 는 특정한 코딩 툴 (예를 들어, 인트라 평활화 필터 및/또는 PDPC 모드) 이 블록에 대해 적용되지 않음을 표시하기 위해 0 의 값을 가진 플래그를 생성 및 시그널링하도록 구성될 수도 있는 한편, 1 의 값을 가진 플래그는, 코딩 툴 (예를 들어, 인트라 평활화 필터 및/또는 PDPC 모드) 이 블록에 대해 적용됨을 표시할 수도 있다. 비디오 디코더 (30) 는 플래그와 연관된 비디오 데이터의 하나 이상의 블록들에 대해 특정한 비디오 코딩 툴을 사용할지 여부를 결정하기 위해 이러한 플래그를 수신 및 파싱하도록 구성될 수도 있다.As discussed above, in some examples, video encoder 22 may determine the use of a particular video coding tool for one or more blocks of video data (eg, whether an intra smoothing filter and / or PDPC mode is applied). It may be configured to signal a flag or index to indicate. For example, video encoder 22 is configured to generate and signal a flag with a value of zero to indicate that a particular coding tool (eg, intra smoothing filter and / or PDPC mode) is not applied for the block. While a flag with a value of 1 may indicate that a coding tool (eg, an intra smoothing filter and / or PDPC mode) is applied for the block. Video decoder 30 may be configured to receive and parse this flag to determine whether to use a particular video coding tool for one or more blocks of video data associated with the flag.

일부 예들에서, 특정한 비디오 코딩 툴에 대한 플래그를 시그널링하는 것은, 비디오 코딩 툴을 사용하는 것으로부터 얻은 압축 효율이 상당히 감소될 수도 있도록 상당히 많은 수의 비트들을 취할 수도 있다. 본 개시는 변환 프로세싱에 대한 시그널링을 포함하여, 다른 비디오 코딩 프로세스들에 대한 시그널링과 함께 비디오 코딩 툴 오버헤드 시그널링 (예를 들어, 비디오 코딩 툴 사용 및/또는 비디오 코딩 툴 파라미터들을 표시하는 신택스 엘리먼트들) 을 커플링하는 기법들을 설명한다.In some examples, signaling a flag for a particular video coding tool may take a significant number of bits so that the compression efficiency obtained from using the video coding tool may be significantly reduced. This disclosure includes signaling for transform processing, including syntax elements for indicating video coding tool overhead signaling (eg, video coding tool usage and / or video coding tool parameters) along with signaling for other video coding processes. We describe the techniques for coupling

예를 들어, 비디오 인코더 (22) 는 프라이머리 또는 세컨더리 변환 플래그들 또는 인덱스들을 포함한, 변환 프로세싱에 대한 신택스 엘리먼트들을 생성 및 시그널링하도록 구성될 수도 있다. 프라이머리 변환 플래그 또는 인덱스 (예를 들어, 멀티-비트 신택스 엘리먼트) 는 다중 변환들 중에서, 비디오 데이터의 블록을 코딩할 때 프라이머리 변환으로서 사용할, 특정한 변환을 표시할 수도 있다. 마찬가지로, 세컨더리 변환 플래그 또는 인덱스 (예를 들어, 멀티-비트 신택스 엘리먼트) 는 다중 변환들 중에서, 비디오 데이터의 블록을 코딩할 때 세컨더리 변환으로서 사용할 특정한 변환을 표시할 수도 있다. 하나의 예로서, 프라이머리 변환은 이산 코사인 변환 (DCT) 또는 이산 사인 변환 (DST) 기반 변환들, JEM 에서 사용된 향상된 다중 변환 (enhanced multiple transform; EMT), 또는 임의의 다른 분리가능 또는 비-분리가능 변환일 수도 있다. 예의 세컨더리 변환들은 회전 변환들 (rotational transforms; ROT) 또는 비-분리가능 세컨더리 변환들 (non-separable secondary transforms; NSST) 을 포함할 수도 있고, 이들 양자 모두는 JEM 에서 현재 채용된다. 그러나, 세컨더리 변환은 임의의 다른 분리가능 또는 비-분리가능 변환을 포함할 수도 있다. 프라이머리 및/또는 세컨더리 변환들은 인덱스로 표시될 수도 있는 변환들의 여러 세트들을 포함할 수도 있다. 예를 들어, 비디오 데이터의 임의의 특정한 블록에 대해 사용할 변환 세트는, 인트라 예측 모드 및/또는 인트라 예측 모드 방향에 의존할 수도 있다. 즉, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 비디오 데이터의 블록을 코딩하는데 사용되는 인트라 예측 모드 및/또는 인트라 예측 모드 방향에 기초하여 비디오 데이터의 특정한 블록을 위해 이용가능한 변환들의 세트를 결정하도록 구성될 수도 있다.For example, video encoder 22 may be configured to generate and signal syntax elements for transform processing, including primary or secondary transform flags or indexes. The primary transform flag or index (eg, a multi-bit syntax element) may indicate a particular transform, among the multiple transforms, to use as the primary transform when coding a block of video data. Similarly, a secondary transform flag or index (eg, a multi-bit syntax element) may indicate, among the multiple transforms, a particular transform to use as the secondary transform when coding a block of video data. As one example, the primary transform may be a discrete cosine transform (DCT) or discrete sign transform (DST) based transforms, an enhanced multiple transform (EMT) used in JEM, or any other separable or non- It may be a separable transform. Example secondary transforms may include rotational transforms (ROT) or non-separable secondary transforms (NSST), both of which are currently employed in JEM. However, the secondary transform may include any other separable or non-separable transform. Primary and / or secondary transforms may include several sets of transforms, which may be indicated by index. For example, the transform set to use for any particular block of video data may depend on the intra prediction mode and / or intra prediction mode direction. That is, video encoder 22 and video decoder 30 determine the set of transforms available for a particular block of video data based on the intra prediction mode and / or intra prediction mode direction used to code the block of video data. It may be configured to.

본 개시의 하나의 예에서, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는, 소정의 변환 플래그 또는 인덱스 값(들)이 시그널링되는 경우, 하나 이상의 코딩 툴들 (예를 들어, 인트라 레퍼런스 샘플 평활화 필터 및/또는 PDPC 모드) 이 블록에 대해 적용되고, 그렇지 않고, 소정의 변환 플래그 또는 인덱스 값(들)이 시그널링되지 않는 경우, 코딩 툴이 적용되지 않음을 표시하는 소정의 사전-정의된 룰들을 따르도록 구성될 수도 있다. 이 경우에, 비디오 코딩 툴의 사용을 표시하기 위한 임의의 명시적 플래그는 시그널링될 필요가 없다. 대신에, 특정한 코딩 툴이 사용되는지 여부의 결정은 변환 시그널링으로부터 유도될 수도 있다. 상기의 예들은 인트라 레퍼런스 샘플 평활화 필터들 및 PDPC 모드를 포함하지만, 다른 비디오 코딩 툴 사용이 변환 시그널링과 커플링될 수도 있다.In one example of this disclosure, video encoder 22 and / or video decoder 30 are one or more coding tools (eg, an intra reference sample) when a predetermined transform flag or index value (s) is signaled. Smoothing filter and / or PDPC mode) is applied for the block, and if a certain transform flag or index value (s) is not signaled, a predefined pre-defined rule indicating that no coding tool is applied It may be configured to follow these. In this case, any explicit flag to indicate the use of the video coding tool does not need to be signaled. Instead, the determination of whether a particular coding tool is used may be derived from transform signaling. The above examples include intra reference sample smoothing filters and PDPC mode, but other video coding tool usage may be coupled with transform signaling.

하나의 예에서, 변환 시그널링에 의해 표시된 비디오 코딩 툴은 MDIS, ARSS 와 같은 인트라 레퍼런스 샘플 평활화 필터, 또는 인트라 레퍼런스 샘플들에 적용된 임의의 다른 평활화 및/또는 필터링일 수 있다. 다른 예에서, 변환 시그널링에 의해 표시된 비디오 코딩 툴은 인트라 예측에 적용된 필터링, 예를 들어, PDPC 모드, 멀티-파라미터 인트라 예측 (MPI) 모드, 또는 유도된 인트라 예측을 위해 적용된 임의의 다른 필터링일 수 있다.In one example, the video coding tool indicated by transform signaling may be an intra reference sample smoothing filter such as MDIS, ARSS, or any other smoothing and / or filtering applied to intra reference samples. In another example, the video coding tool indicated by transform signaling may be filtering applied to intra prediction, eg, PDPC mode, multi-parameter intra prediction (MPI) mode, or any other filtering applied for derived intra prediction. have.

예를 들어, PDPC, MDIS 및 ARSS 또는 단지 PDPC 및 MDIS 와 같이, 여러 툴들이 조합하여 사용될 수 있다. 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 인덱스 또는 인덱스들에 의해 표시된 바와 같이) 소정의 세컨더리 변환으로 코딩된 비디오 데이터의 블록에 대해 특정한 비디오 코딩 툴을 적용하도록 구성될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 소정의 타입의 세컨더리 변환을 표시하는 인덱스의 값에 기초하여 특정한 코딩 툴 (예를 들어, MDIS, ARSS 등) 을 사용할지 여부를 결정하도록 구성될 수도 있다. 이렇게 하여, 세컨더리 변환 및 적어도 하나의 다른 코딩 툴의 사용은 단일 신택스 엘리먼트로 표시될 수도 있다.For example, several tools may be used in combination, such as PDPC, MDIS and ARSS or just PDPC and MDIS. In one example, video encoder 22 and video decoder 30 are video coding specific for a block of video data coded with a predetermined secondary transform (eg, as indicated by the secondary transform index or indexes). It may also be configured to apply the tool. For example, video decoder 30 may be configured to determine whether to use a particular coding tool (eg, MDIS, ARSS, etc.) based on the value of an index indicating a certain type of secondary transform. In this way, the use of the secondary transform and at least one other coding tool may be represented by a single syntax element.

하나의 예에서, 비디오 디코더 (30) 는, 세컨더리 변환 (NSST) 인덱스들에 의해 표시된 바와 같이, 소정의 세컨더리 변환들이 적용될 때만 PDPC 모드를 사용하기로 결정할 수도 있다. 마찬가지로, 비디오 인코더 (22) 는 소정의 세컨더리 변환들이 적용될 때만 PDPC 모드를 사용하기로 결정할 수도 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 특정한 세컨더리 변환이 사용될 때 (예를 들어, 값 NSST 인덱스가 1 과 같을 때) PDPC 모드를 사용하도록 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 인덱스의 값에 의해 표시된 바와 같이) 사용된 세컨더리 변환과 상관없이 소정의 인트라 예측 모드들에 대해 PDPC 모드를 사용하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 예측 모드가 평면 모드, 및/또는 DC 모드, 또는 임의의 다른 모드들인 경우들에서 PDPC 모드를 적용하도록 구성될 수도 있다.In one example, video decoder 30 may decide to use the PDPC mode only when certain secondary transforms are applied, as indicated by the secondary transform (NSST) indexes. Similarly, video encoder 22 may decide to use the PDPC mode only when certain secondary transforms are applied. For example, video encoder 22 and video decoder 30 may be configured to use the PDPC mode when a particular secondary transform is used (eg, when the value NSST index is equal to 1). In another example, video encoder 22 and video decoder 30 set the PDPC mode for certain intra prediction modes regardless of the secondary transform used (eg, as indicated by the value of the secondary transform index). It may be configured to use. For example, video encoder 22 and video decoder 30 may be configured to apply PDPC mode in cases where intra prediction mode is planar mode, and / or DC mode, or any other modes.

다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 (NSST) 인덱스의 값에 의해 표시된 바와 같이) 소정의 세컨더리 변환들에 대해서만 MDIS 비디오 코딩 툴 (또는 다른 인트라 레퍼런스 샘플 평활화 필터들) 을 적용하도록 구성될 수도 있다. 하나의 예로서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 3 과 동일한 NSST 인덱스에 대해서만 MDIS 비디오 코딩 툴 (또는 다른 인트라 레퍼런스 샘플 평활화 필터들) 을 적용하도록 구성될 수도 있다.In another example, video encoder 22 and video decoder 30 are MDIS video coding tool (or other intra only for certain secondary transforms (eg, as indicated by the value of the secondary transform (NSST) index). Reference sample smoothing filters). As one example, video encoder 22 and video decoder 30 may be configured to apply the MDIS video coding tool (or other intra reference sample smoothing filters) only for an NSST index equal to three.

일부 예들에서, 1 초과의 비디오 코딩 툴의 사용이 블록을 위해 사용되는 변환에 의존하면 (예를 들어, 비디오 코딩 툴은 변환 인덱스에 맵핑된다), 변환에 대한 비디오 코딩 툴의 맵핑은 상호 배타적일 수도 있다. 즉, 하나의 예에서, 각각의 비디오 코딩 툴은 상이한 변환 인덱스에 대응한다.In some examples, if the use of more than one video coding tool depends on the transform used for the block (eg, the video coding tool is mapped to a transform index), the mapping of the video coding tool to the transform will be mutually exclusive. It may be. That is, in one example, each video coding tool corresponds to a different transform index.

상기의 예들은 조합될 수 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 1 의 NSST 인덱스에 대해 PDPC 모드를 적용하도록 구성될 수도 있고, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 3 의 NSST 인덱스에 대해 MDIS 또는 다른 인트라 레퍼런스 평활화 필터를 적용하도록 구성될 수도 있다. 추가로, 비디오 인코더 (22) 및 비디오 디코더 (30) 의 사용은 블록에 대한 NSST 인덱스와 상관없이 평면 인트라 예측 모드를 사용하여 코딩된 비디오 데이터의 블록에 대해 PDPC 모드를 항상 적용하도록 구성될 수도 있다.The above examples can be combined. For example, video encoder 22 and video decoder 30 may be configured to apply PDPC mode for an NSST index of 1, and video encoder 22 and video decoder 30 may be configured for an NSST index of 3. It may be configured to apply an MDIS or other intra reference smoothing filter. In addition, the use of video encoder 22 and video decoder 30 may be configured to always apply a PDPC mode to a block of video data coded using the planar intra prediction mode regardless of the NSST index for the block. .

또 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 NSST 인덱스가 2 와 동일할 때 ARSS 비디오 코딩 툴을 적용하도록 구성될 수도 있다.In another example, video encoder 22 and video decoder 30 may be configured to apply an ARSS video coding tool when the NSST index is equal to two.

상이한 코딩 툴들 (예를 들어, 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 필터가 적용될 수 있다.If the utilization of different coding tools (eg PDPC, NSST, EMT, ARSS, MDIS, MPI, ROT) has multiple options, instead of signaling separate indices for each of the coding tool, video encoder 22 May be configured to signal only one unified index. In this example, the value of the unified index specifies how the different coding tools are coupled. In one example, if PDPC mode is designed with three different sets of parameters and NSST is designed with three different sets of NSST cores, instead of signaling PDPC indexes and NSST indexes separately, video encoder 22 ) May signal only one unified index, but this unified index value specifies the utilization of both PDPC mode and NSST. For example, when this unified index is equal to 0, neither PDPC nor NSST apply. When this unified index is equal to 1, PDPC mode parameter set 1 and NSST core 1 are used. When this unified index is equal to 2, PDPC mode parameter set 2 and NSST core 2 are used. When this unified index is equal to 3, PDPC mode parameter set 3 and NSST core 3 are used. That is, different PDPC modes are bundled with different NSST indexes. In another example, for different NSST indices, an MDIS filter with different filter coefficients may be applied.

하나의 툴 (예를 들어, PDPC, ARSS, 및/또는 MDIS) 과 변환 (예를 들어, EMT, NSST) 간의 커플링은, 인트라 예측 모드, 블록 폭 및 높이, 블록 파티셔닝 심도, 변환 계수를 포함하지만 이에 한정되지 않는, 이미 코딩된 정보에 의존할 수도 있다. 예를 들어, 상이한 인트라 예측 모드들에 대해, PDPC 모드는 상이한 NSST 인덱스들과 커플링될 수도 있다. 예를 들어, 인트라 예측 모드 0 에 대해, PDPC 모드는 NSST 인덱스 1 과 커플링되고, 인트라 예측 모드 1 에 대해, PDPC 는 NSST 인덱스 2 와 커플링된다.Coupling between one tool (eg PDPC, ARSS, and / or MDIS) and a transform (eg EMT, NSST) includes intra prediction mode, block width and height, block partitioning depth, transform coefficients However, the present invention may rely on already coded information, which is not limited thereto. For example, for different intra prediction modes, PDPC mode may be coupled with different NSST indices. For example, for intra prediction mode 0, PDPC mode is coupled with NSST index 1, and for intra prediction mode 1, PDPC is coupled with NSST index 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) 에 대해, 필터링 프로세스가 여러 부분들로 분할되는 예를 도시한다.The next section is about strong intra reference filtering. In U.S. Provisional Application No. 62 / 445,207, filed January 11, 2017, and U.S. Patent Application No. 15 / 866,287, filed January 9, 2018, a strong division free intra smoothing method is described. do. In some examples, if non-of-power-2 division is used, video encoder 22 and video decoder 30 may be configured to split the process into several parts. Where video encoder 22 and video decoder 30 may be configured to perform only two power-of-2 divisions for each portion of the process. This technique may be implemented as a simple bit shift operation. In this disclosure, more detailed examples are described. Consider a rectangular block, where in JEM, a division of powers of non-2 is used due to the division by (width + height) of the block. 5 shows an example where the filtering process is divided into several parts, for the non-square block 200.

도 5 에 도시된 바와 같이, 필터링 프로세스는 좌측 인트라 레퍼런스 샘플들 (202) 및 상부 인트라 레퍼런스 샘플들 (204) (블랙 박스들로 표시됨), 뿐만 아니라 우측 하부 인트라 레퍼런스 샘플들 (206) 및 우측 상부 인트라 레퍼런스 샘플들 (208) (점으로 된 (dotted) 박스들로 표시됨) 에 대해 수행된다. 사용된 분할은 비-2 의 거듭제곱이다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 필터링 프로세스를 수평 및 수직 방향들에 대한 부분들로 스플리팅하도록 구성될 수도 있어, 하나의 부분이 블록 (200) 의 폭 및/또는 높이에 대응하고, 다른 부분이 남은 길이가 된다. 이 특정한 예에서, 남은 부분은 수직 필터링을 위한 폭 길이 및 수평 필터링을 위한 높이 길이 (즉, 점으로 된 박스에서의 좌측 하부 인트라 레퍼런스 샘플들 (206) 및 우측 상부 인트라 레퍼런스 샘플들 (208)) 이다. 알 수 있는 바와 같이, 각각의 부분은, 폭 및 높이가 2 의 거듭제곱인 사이즈가 되도록 요구될 수도 있기 때문에, 2 의 거듭제곱 분할로 필터링 프로세스를 실행할 수 있다.As shown in FIG. 5, the filtering process includes left intra reference samples 202 and top intra reference samples 204 (indicated by black boxes), as well as right bottom intra reference samples 206 and top right. Intra reference samples 208 (indicated by dotted boxes) are performed. The division used is a power of non-2. Video encoder 22 and video decoder 30 may be configured to split the filtering process into portions for the horizontal and vertical directions, such that one portion corresponds to the width and / or height of block 200. The other part becomes the remaining length. In this particular example, the remainder is the width length for vertical filtering and the height length for horizontal filtering (ie, lower left intra reference samples 206 and right upper intra reference samples 208 in a dotted box). to be. As can be seen, since each portion may be required to be a size whose width and height are powers of two, the filtering process can be performed with power of two.

추가로, 필터링 프로세스에 의존하여, 일부 샘플들이 카피될 수도 있다. 예를 들어, 필터링 공식이 (길이 - i)*a + i*b 인 경우, 여기서 i 는 1 부터 길이 - 1 까지이다. 길이는 필터링될 샘플 어레이의 사이즈이다. 길이는, 예를 들어, 폭 + 높이일 수 있다. 값들 a 및 b 는 필터링될 샘플 어레이의 마지막 샘플들일 수 있다.In addition, depending on the filtering process, some samples may be copied. For example, if the filtering formula is (length-i) * a + i * b, then i is from 1 to length-1. The length is the size of the sample array to be filtered. The length can be, for example, width + height. The values a and b may be the last samples of the sample array to be filtered.

하나의 샘플은 i = 0 에 대해 필터링되지 않고, 이 샘플은 직접 카피될 수 있음을 알 수 있다. 필터링 프로세스가 여러 부분들로 스플리팅될 때, 직접 카피된 샘플들의 수는 증가할 수도 있다. 이것은 추가적인 샘플들이 각각의 방향에서 필터링되지 않게 할 수도 있고, 이러한 샘플들은 직접 카피될 수도 있다. 직접 카피는 필터링 프로세스가 그 샘플들에 대해 적용되지 않음을 의미할 수도 있다.It can be seen that one sample is not filtered for i = 0 and this sample can be copied directly. When the filtering process is split into several parts, the number of directly copied samples may increase. This may prevent additional samples from being filtered in each direction, and these samples may be copied directly. Direct copy may mean that no filtering process is applied for those samples.

어느 샘플이 직접 카피될 수도 있는지는 가변적일 수도 있다. 본 개시의 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플(들)을 각각의 방향의 인트라 레퍼런스 샘플들의 마지막에, 즉 수직 필터링의 경우 좌측 하부 샘플들 및 수평 필터링의 경우 우측 상부 샘플들에 두도록 구성될 수도 있다. 이렇게 하여, 그 샘플들은 인트라 예측에서 덜 자주 사용될 수도 있다. 이러한 샘플들의 정확도는 이러한 샘플들이 블록에서 가장 멀기 때문에, 인트라 예측의 효율에 덜 민감하다.Which samples may be copied directly may be variable. In one example of this disclosure, video encoder 22 and video decoder 30 transfer the directly copied sample (s) to the end of the intra reference samples in each direction, i.e., for the lower left samples and the horizontal for vertical filtering. In the case of filtering, it may be configured to put in the upper right samples. In this way, the samples may be used less often in intra prediction. The accuracy of these samples is less sensitive to the efficiency of intra prediction because these samples are the furthest from the block.

다른 예에서, 직접 카피된 샘플들은 필터링 프로세스의 각각의 부분에 배치될 수 있다. 상기의 예에서, 그것은 필터링의 각각의 블랙 및 점으로 된 영역들에서의 하나의 예일 수 있다. 즉, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 좌측 레퍼런스 샘플들 (204), 좌측 하부 레퍼런스 샘플들 (206), 상부 레퍼런스 샘플들 (202), 및 우측 상부 레퍼런스 샘플들 (208) 의 각각에 하나의 직접 카피된 샘플을 배치할 수도 있다. 하나의 예에서, 직접 카피된 샘플들은 각각의 부분의 마지막에 배치될 수 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플을 좌측 레퍼런스 샘플들 (204) 의 하부에 포지셔닝할 수도 있다. 마찬가지로, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플을 좌측 하부 레퍼런스 샘플들 (206) 의 하부에 포지셔닝할 수도 있다. 추가로, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 직접 카피된 샘플을 상부 레퍼런스 샘플들 (202) 의 우측 마지막에 포지셔닝할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 또한 직접 카피된 샘플을 우측 상부 레퍼런스 샘플들 (208) 의 우측 마지막에 포지셔닝할 수도 있다. 직접 카피된 샘플들을 소정의 영역에서 그룹화할 필요가 없기 때문에, 이러한 설계의 이점은 필터링 프로세스의 균일성이다.In another example, the directly copied samples can be placed in each part of the filtering process. In the example above, it may be one example in each of the black and dotted areas of filtering. That is, video encoder 22 and video decoder 30 are each of left reference samples 204, lower left reference samples 206, upper reference samples 202, and right upper reference samples 208, respectively. One directly copied sample may be placed in the. In one example, directly copied samples may be placed at the end of each portion. For example, video encoder 22 and video decoder 30 may position the directly copied sample below the left reference samples 204. Similarly, video encoder 22 and video decoder 30 may position the directly copied sample below the left lower reference samples 206. In addition, video encoder 22 and video decoder 30 may position the directly copied sample at the right end of the upper reference samples 202. Video encoder 22 and video decoder 30 may also position the directly copied sample at the right end of the right upper reference samples 208. The advantage of this design is the uniformity of the filtering process since there is no need to group directly copied samples in a given area.

다른 예에서, 직접 카피된 샘플들은 좌측 상단 영역 (201) (예를 들어, 샘플들 (204 및 202) 의 블록 박스들의 시작부) 에 배치될 수 있다. 보다 일반적인 예에서, 직접 카피된 샘플들은 인트라 레퍼런스 샘플들 내의 임의의 로케이션에 배치될 수 있다.In another example, the directly copied samples can be placed in the upper left region 201 (eg, the beginning of the block boxes of the samples 204 and 202). In a more general example, directly copied samples may be placed in any location within intra reference samples.

다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 2 의 거듭제곱이 아닌 제수를 사용한 분할 동작이 회피될 수 있도록, 2-탭 이중선형 필터 대신에 고정된 N-탭 선형 필터로서 강한 평활화를 구현할 수도 있다. 하나의 예에서, 5-탭 또는 7-탭 가우시안 필터가 2-탭 이중선형 강한 평활화 필터를 대신하는데 사용되고, 여기서 가우시안 필터의 파라미터는 사전-정의되거나 또는 블록 사이즈, 블록 형상, 인트라 예측 모드를 포함하지만 이에 한정되지 않는, 이미 코딩된 정보에 의존할 수도 있다.In another example, video encoder 22 and video decoder 30 are fixed N-tap linear filters instead of two-tap bilinear filters so that splitting operations using non- power divisors of two can be avoided. Strong smoothing can also be achieved. In one example, a 5-tap or 7-tap Gaussian filter is used to replace the 2-tap bilinear strong smoothing filter, where the parameters of the Gaussian filter are pre-defined or include block size, block shape, intra prediction mode. However, the present invention may rely on already coded information, which is not limited thereto.

본 개시의 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 인트라 예측을 사용하여 비-정사각형 블록을 코딩하고, 2 개의 부분들, 즉 블록의 높이 또는 폭의 일방을 따른 인트라 레퍼런스 샘플들과 연관된 제 1 부분, 및 나머지 인트라 레퍼런스 샘플들과 연관된 제 2 부분에서의 인트라 레퍼런스 샘플들에 강한 인트라 레퍼런스 필터링을 적용하도록 구성될 수도 있다.In one example of this disclosure, video encoder 22 and video decoder 30 use intra prediction to code a non-square block, and intra, along two portions, one along the height or width of the block. It may be configured to apply strong intra reference filtering to the intra reference samples in the first portion associated with the reference samples, and the second portion associated with the remaining intra reference samples.

비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 1 부분으로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 2 부분으로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 1 부분과 제 2 부분 양자 모두로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다.Video encoder 22 and video decoder 30 may be further configured to copy at least one reference sample directly from the first portion. In another example, video encoder 22 and video decoder 30 may be further configured to copy at least one reference sample directly from the second portion. In another example, video encoder 22 and video decoder 30 may be further configured to copy at least one reference sample directly from both the first portion and the second portion.

도 6 은 본 개시의 기법들을 구현할 수도 있는 예의 비디오 인코더 (22) 를 예시하는 블록 다이어그램이다. 도 6 은 설명을 목적으로 제공되고, 본 개시에서 폭넓게 예시화 및 설명된 바와 같이 기법들의 한정으로 고려되어서는 안된다. 본 개시의 기법들은 다양한 코딩 표준들 또는 방법들에 적용가능할 수도 있다. 비디오 인코더 (22) 는 상기 설명된 조합된 코딩 툴 및 변환 시그널링 기법들을 수행하도록 구성될 수도 있다. 추가로, 비디오 인코더 (22) 는 상기 설명된 바와 같이 강한 인트라 레퍼런스 필터링을 수행하도록 구성될 수도 있다.6 is a block diagram illustrating an example video encoder 22 that may implement the techniques of this disclosure. 6 is provided for illustrative purposes and should not be considered limiting of the techniques as broadly exemplified and described in this disclosure. The techniques of this disclosure may be applicable to various coding standards or methods. Video encoder 22 may be configured to perform the combined coding tool and transform signaling techniques described above. In addition, video encoder 22 may be configured to perform strong intra reference filtering as described above.

도 6 의 예에서, 비디오 인코더 (22) 는 예측 프로세싱 유닛 (100), 비디오 데이터 메모리 (101), 잔차 생성 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역 양자화 유닛 (108), 역 변환 프로세싱 유닛 (110), 재구성 유닛 (112), 필터 유닛 (114), 디코딩된 픽처 버퍼 (116), 및 엔트로피 인코딩 유닛 (118) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터 예측 프로세싱 유닛 (120) 및 인트라 예측 프로세싱 유닛 (126) 을 포함한다. 인터 예측 프로세싱 유닛 (120) 은 모션 추정 유닛 및 모션 보상 유닛 (미도시) 을 포함할 수도 있다.In the example of FIG. 6, video encoder 22 includes prediction processing unit 100, video data memory 101, residual generation unit 102, transform processing unit 104, quantization unit 106, inverse quantization unit ( 108, inverse transform processing unit 110, reconstruction unit 112, filter unit 114, decoded picture buffer 116, and entropy encoding unit 118. Prediction processing unit 100 includes inter prediction processing unit 120 and intra prediction processing unit 126. Inter prediction processing unit 120 may include a motion estimation unit and a motion compensation unit (not shown).

비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장하도록 구성될 수도 있다. 비디오 데이터 메모리 (101) 에 저장된 비디오 데이터는, 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 예를 들어, 인트라 또는 인터 코딩 모드들에서, 비디오 인코더 (22) 에 의해 비디오 데이터를 인코딩하는데 있어서의 사용을 위해 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 다른 컴포넌트들과 온-칩이거나 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다. 비디오 데이터 메모리 (101) 는 도 1 의 저장 매체들 (20) 과 동일하거나 또는 그 부분일 수도 있다.Video data memory 101 may be configured to store video data to be encoded by the components of video encoder 22. Video data stored in video data memory 101 may be obtained from video source 18, for example. Decoded picture buffer 116 may be a reference picture memory that stores reference video data for use in encoding video data by video encoder 22, eg, in intra or inter coding modes. . Video data memory 101 and decoded picture buffer 116 may include dynamic random access memory (DRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices, including synchronous DRAM (SDRAM). It may be formed by any of a variety of memory devices, such as. Video data memory 101 and decoded picture buffer 116 may be provided by the same memory device or separate memory devices. In various examples, video data memory 101 may be on-chip with other components of video encoder 22 or off-chip with respect to those components. Video data memory 101 may be the same as or part of storage media 20 of FIG. 1.

비디오 인코더 (22) 는 비디오 데이터를 수신한다. 비디오 인코더 (22) 는 비디오 데이터의 픽처의 슬라이스에서 각각의 CTU 를 인코딩할 수도 있다. CTU들 각각은, 동일하게 사이징된 루마 코딩 트리 블록들 (CTB들) 및 픽처의 대응하는 CTB들과 연관될 수도 있다. CTU 를 인코딩하는 부분으로서, 예측 프로세싱 유닛 (100) 은 파티셔닝을 수행하여 CTU 의 CTB들을 점진적으로 더 작은 블록들로 분할할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 QTBT 구조를 사용하여 블록들을 파티셔닝할 수도 있다. 더 작은 블록들은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 트리 구조에 따라 CTU 와 연관된 CTB 를 파티셔닝할 수도 있다. 본 개시의 하나 이상의 기법들에 따르면, 트리 구조의 각각의 심도 레벨에서의 트리 구조의 각 개별의 비-리프 노드에 대해, 개별의 비-리프 노드에 대한 복수의 허용된 스플리팅 패턴들이 존재하고, 개별의 비-리프 노드에 대응하는 비디오 블록은 복수의 허용가능한 스플리팅 패턴들 중 하나에 따라 개별의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.Video encoder 22 receives video data. Video encoder 22 may encode each CTU in a slice of a picture of the video data. Each of the CTUs may be associated with equally sized luma coding tree blocks (CTBs) and corresponding CTBs of a picture. As part of encoding the CTU, prediction processing unit 100 may perform partitioning to gradually divide the CTBs of the CTU into smaller blocks. In some examples, video encoder 22 may partition blocks using a QTBT structure. Smaller blocks may be coding blocks of CUs. For example, prediction processing unit 100 may partition the CTB associated with the CTU according to the tree structure. According to one or more techniques of this disclosure, for each individual non-leaf node of the tree structure at each depth level of the tree structure, there are a plurality of allowed splitting patterns for the individual non-leaf node. The video block corresponding to the individual non-leaf node is partitioned into video blocks corresponding to the child nodes of the individual non-leaf node according to one of the plurality of allowable splitting patterns.

비디오 인코더 (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 사이즈들에 대한 비대칭적인 파티셔닝을 지원할 수도 있다.Video encoder 22 may encode the CUs of the CTU to generate encoded representations of the CUs (ie, coded CUs). As part of encoding a CU, prediction processing unit 100 may partition coding blocks associated with the CU among one or more PUs of the CU. Thus, each PU may be associated with a luma prediction block and corresponding chroma prediction blocks. Video encoder 22 and video decoder 30 may support PUs having various sizes. As indicated above, the size of a CU may refer to the size of the luma coding block of the CU, and the size of the PU may refer to the size of the luma prediction block of the PU. Assuming that the size of a particular CU is 2N × 2N, video encoder 22 and video decoder 30 are PU sizes of 2N × 2N or N × N for intra prediction, and 2N × 2N, 2N for inter prediction. It may support symmetric PU sizes of × N, N × 2N, N × N, or the like. Video encoder 22 and video decoder 30 may also support asymmetric partitioning for PU sizes of 2N × nU, 2N × nD, nL × 2N, and nR × 2N for inter prediction.

인터 예측 프로세싱 유닛 (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 의 예측 블록을 생성할 수도 있다.Inter prediction processing unit 120 may generate predictive data for a PU by performing inter prediction on each PU of a CU. The predictive data for the PU may include predictive blocks of the PU and motion information for the PU. Inter prediction processing unit 120 may perform different operations on the PU of the CU depending on whether the PU is an I slice, a P slice, or a B slice. In an I slice, all PUs are intra predicted. For this reason, if the PU is in an I slice, inter prediction processing unit 120 does not perform inter prediction on the PU. Thus, for blocks encoded in I-mode, the predicted block is formed using spatial prediction from previously encoded neighboring blocks within the same frame. If the PU is in a P slice, inter prediction processing unit 120 may generate the predictive block of the PU using unidirectional inter prediction. If the PU is in a B slice, inter prediction processing unit 120 may generate the predictive block of the PU using unidirectional or bidirectional inter prediction.

인트라 예측 프로세싱 유닛 (126) 은 PU 에 대해 인트라 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는 PU 의 예측 블록들 및 다양한 신택스 엘리먼트들을 포함할 수도 있다. 인트라 예측 프로세싱 유닛 (126) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에서 PU들에 대해 인트라 예측을 수행할 수도 있다.Intra prediction processing unit 126 may generate prediction data for the PU by performing intra prediction on the PU. The predictive data for the PU may include the predictive blocks of the PU and various syntax elements. Intra prediction processing unit 126 may perform intra prediction on PUs in I slices, P slices, and B slices.

PU 에 대해 인트라 예측을 수행하기 위해, 인트라 예측 프로세싱 유닛 (126) 은 다중 인트라 예측 모드들을 사용하여, PU 에 대한 예측 데이터의 다중 세트들을 생성할 수도 있다. 인트라 예측 프로세싱 유닛 (126) 은 이웃하는 PU들의 샘플 블록들로부터의 샘플들을 사용하여 PU 에 대한 예측 블록을 생성할 수도 있다. 이웃하는 PU들은, PU들, CU들, 및 CTU들에 대한 좌-우, 상-하로의 인코딩 순서를 가정하면, PU 의 상부, 상부 및 우측으로, 상부 및 좌측으로, 또는 좌측으로일 수도 있다. 인트라 예측 프로세싱 유닛 (126) 은 다양한 수들의 인트라 예측 모드들, 예를 들어, 33 개의 지향성 인트라 예측 모드들을 사용할 수도 있다. 일부 예들에서, 인트라 예측 모드들의 수는 PU 와 연관된 영역의 사이즈에 의존할 수도 있다.To perform intra prediction on a PU, intra prediction processing unit 126 may use multiple intra prediction modes to generate multiple sets of prediction data for the PU. Intra prediction processing unit 126 may generate a predictive block for a PU using samples from sample blocks of neighboring PUs. Neighboring PUs may be to the top, top and right, top and left, or left of the PU, assuming the left-right, up-down encoding order for PUs, CUs, and CTUs. . Intra prediction processing unit 126 may use various numbers of intra prediction modes, eg, 33 directional intra prediction modes. In some examples, the number of intra prediction modes may depend on the size of the region associated with the PU.

예측 프로세싱 유닛 (100) 은 PU들에 대한 인터 예측 프로세싱 유닛 (120) 에 의해 생성된 예측 데이터 또는 PU들에 대한 인트라 예측 프로세싱 유닛 (126) 에 의해 생성된 예측 데이터 중에서 CU 의 PU들에 대한 예측 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (100) 은 예측 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여 CU 의 PU들에 대한 예측 데이터를 선택한다. 선택된 예측 데이터의 예측 블록들은 본 명세서에서 선택된 예측 블록들로 지칭될 수도 있다.Prediction processing unit 100 predicts the PUs of the CU from the predictive data generated by inter prediction processing unit 120 for PUs or the predictive data generated by intra prediction processing unit 126 for PUs. You can also select data. In some examples, prediction processing unit 100 selects the prediction data for the PUs of the CU based on the rate / distortion metrics of the sets of prediction data. The predictive blocks of the selected prediction data may be referred to herein as the selected prediction blocks.

잔차 생성 유닛 (102) 은, CU 에 대한 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 및 CU 의 PU들에 대한 선택된 예측 블록들 (예를 들어, 예측 루마, Cb 및 Cr 블록들) 에 기초하여, CU 에 대한 잔차 블록들 (예를 들어, 루마, Cb 및 Cr 잔차 블록들) 을 생성할 수도 있다. 예를 들어, 잔차 생성 유닛 (102) 은, 잔차 블록들에서의 각각의 샘플이 CU 의 코딩 블록에서의 샘플과 CU 의 PU 의 대응하는 선택된 예측 블록에서의 대응하는 샘플 사이의 차이와 동일한 값을 갖도록 CU 의 잔차 블록들을 생성할 수도 있다.Residual generation unit 102 includes coding blocks (eg, luma, Cb and Cr coding blocks) for the CU and selected prediction blocks (eg, prediction luma, Cb and Cr) for the PUs of the CU. Based on the blocks), residual blocks (eg, luma, Cb, and Cr residual blocks) for the CU may be generated. For example, residual generation unit 102 may determine that each sample in the residual blocks is equal to the difference between the sample in the coding block of the CU and the corresponding sample in the corresponding selected prediction block of the PU of the CU. Residual blocks of a CU may be generated to have.

변환 프로세싱 유닛 (104) 은 쿼드트리 파티셔닝을 수행하여, CU 와 연관된 잔차 블록들을 CU 의 TU들과 연관된 변환 블록들로 파티셔닝할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2 개의 크로마 변환 블록들과 연관될 수도 있다. CU 의 TU들의 루마 및 크로마 변환 블록들의 사이즈들 및 포지션들은 CU 의 PU들의 예측 블록들의 사이즈들 및 포지션들에 기초할 수도 있거나 또는 기초하지 않을 수도 있다. "잔차 쿼드트리" (RQT) 로서 공지된 쿼드트리 구조는 그 영역들의 각각과 연관된 노드들을 포함할 수도 있다. CU 의 TU들은 RQT 의 리프 노드들에 대응할 수도 있다.Transform processing unit 104 may perform quadtree partitioning to partition the residual blocks associated with a CU into transform blocks associated with TUs of the CU. Thus, a TU may be associated with a luma transform block and two chroma transform blocks. The sizes and positions of the luma and chroma transform blocks of the TUs of a CU may or may not be based on the sizes and positions of the predictive blocks of the PUs of the CU. A quadtree structure known as a "residual quadtree" (RQT) may include nodes associated with each of those regions. TUs of a CU may correspond to leaf nodes of an RQT.

변환 프로세싱 유닛 (104) 은, TU 의 변환 블록들에 하나 이상의 변환들을 적용함으로써 CU 의 각각의 TU 에 대한 변환 계수 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 TU 와 연관된 변환 블록에 다양한 변환들을 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (DCT), 지향성 변환, 또는 개념적으로 유사한 변환을 변환 블록에 적용할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (104) 은 변환 블록에 변환들을 적용하지 않는다. 이러한 예들에서, 변환 블록은 변환 계수 블록으로서 처리될 수도 있다.Transform processing unit 104 may generate transform coefficient blocks for each TU of a CU by applying one or more transforms to the transform blocks of the TU. Transform processing unit 104 may apply various transforms to a transform block associated with a TU. For example, transform processing unit 104 may apply a discrete cosine transform (DCT), a directional transform, or a conceptually similar transform to the transform block. In some examples, transform processing unit 104 does not apply transforms to the transform block. In such examples, the transform block may be treated as a transform coefficient block.

양자화 유닛 (106) 은 계수 블록에서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 변환 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 라운딩 다운될 수도 있고, 여기서 n 은 m 보다 더 크다. 양자화 유닛 (106) 은 CU 와 연관된 양자화 파라미터 (QP) 값에 기초하여 CU 의 TU 와 연관된 계수 블록을 양자화할 수도 있다. 비디오 인코더 (22) 는 CU 와 연관된 QP 값을 조정함으로써 CU 와 연관된 계수 블록들에 적용된 양자화도를 조정할 수도 있다. 양자화는 정보의 손실을 도입할 수도 있다. 따라서, 양자화된 변환 계수들은 원래의 것들보다 더 낮은 정확성을 가질 수도 있다.Quantization unit 106 may quantize the transform coefficients in the coefficient block. The quantization process may reduce the bit depth associated with some or all of the transform coefficients. For example, the n-bit transform coefficients may be rounded down to m-bit transform coefficients during quantization, where n is greater than m. Quantization unit 106 may quantize a coefficient block associated with a TU of the CU based on a quantization parameter (QP) value associated with the CU. Video encoder 22 may adjust the quantization applied to coefficient blocks associated with a CU by adjusting the QP value associated with the CU. Quantization may introduce loss of information. Thus, quantized transform coefficients may have lower accuracy than the original ones.

역 양자화 유닛 (108) 및 역 변환 프로세싱 유닛 (110) 은 각각 계수 블록에 역 양자화 및 역 변환들을 적용하여, 계수 블록으로부터 잔차 블록을 재구성할 수도 있다. 재구성 유닛 (112) 은 재구성된 잔차 블록을, 예측 프로세싱 유닛 (100) 에 의해 생성된 하나 이상의 예측 블록들로부터의 대응하는 샘플들에 부가하여, TU 와 연관된 재구성된 변환 블록을 생성할 수도 있다. 이러한 방식으로 CU 의 각각의 TU 에 대한 변환 블록들을 재구성함으로써, 비디오 인코더 (22) 는 CU 의 코딩 블록들을 재구성할 수도 있다.Inverse quantization unit 108 and inverse transform processing unit 110 may apply inverse quantization and inverse transforms to the coefficient block, respectively, to reconstruct the residual block from the coefficient block. Reconstruction unit 112 may add the reconstructed residual block to corresponding samples from one or more prediction blocks generated by prediction processing unit 100 to generate a reconstructed transform block associated with the TU. By reconstructing the transform blocks for each TU of a CU in this manner, video encoder 22 may reconstruct the coding blocks of the CU.

필터 유닛 (114) 은 하나 이상의 디블록킹 (deblocking) 동작들을 수행하여, CU 와 연관된 코딩 블록들에서의 블록킹 아티팩트들을 감소시킬 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 필터 유닛 (114) 이 재구성된 코딩 블록들에 대해 하나 이상의 디블록킹 동작들을 수행한 이후 재구성된 코딩 블록들을 저장할 수도 있다. 인터 예측 프로세싱 유닛 (120) 은 재구성된 코딩 블록들을 포함하는 레퍼런스 픽처를 사용하여, 다른 픽처들의 PU들에 대해 인터 예측을 수행할 수도 있다. 추가로, 인트라 예측 프로세싱 유닛 (126) 은 디코딩된 픽처 버퍼 (116) 에서의 재구성된 코딩 블록들을 사용하여, CU 와 동일한 픽처에서의 다른 PU들에 대해 인트라 예측을 수행할 수도 있다.Filter unit 114 may perform one or more deblocking operations to reduce blocking artifacts in coding blocks associated with the CU. Decoded picture buffer 116 may store the reconstructed coding blocks after filter unit 114 performs one or more deblocking operations on the reconstructed coding blocks. Inter prediction processing unit 120 may perform inter prediction on PUs of other pictures using a reference picture that includes the reconstructed coding blocks. In addition, intra prediction processing unit 126 may use intra reconstructed coding blocks in decoded picture buffer 116 to perform intra prediction on other PUs in the same picture as the CU.

엔트로피 인코딩 유닛 (118) 은 비디오 인코더 (22) 의 다른 기능 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있고 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 엔트로피 인코딩된 데이터를 생성하기 위해 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 CABAC 동작, 콘텍스트 적응형 가변 길이 코딩 (CAVLC) 동작, V2V (variable-to-variable) 길이 코딩 동작, 신택스 기반 콘텍스트 적응형 이진 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 인코딩 동작, 또는 다른 타입의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (22) 는 엔트로피 인코딩 유닛 (118) 에 의해 생성된 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 비트스트림은 CU 에 대한 RQT 를 나타내는 데이터를 포함할 수도 있다.Entropy encoding unit 118 may receive data from other functional components of video encoder 22. For example, entropy encoding unit 118 may receive coefficient blocks from quantization unit 106 and receive syntax elements from prediction processing unit 100. Entropy encoding unit 118 may perform one or more entropy encoding operations on the data to generate entropy encoded data. For example, entropy encoding unit 118 may include a CABAC operation, a context adaptive variable length coding (CAVLC) operation, a variable-to-variable length coding operation, a syntax based context adaptive binary arithmetic coding (SBAC) operation, Probability interval partitioning entropy (PIPE) coding operations, exponential-Golomb encoding operations, or other types of entropy encoding operations may be performed on the data. Video encoder 22 may output a bitstream that includes entropy encoded data generated by entropy encoding unit 118. For example, the bitstream may include data indicating the RQT for the CU.

도 7 은 본 개시의 기법들을 구현하도록 구성되는 예의 비디오 디코더 (30) 를 예시하는 블록 다이어그램이다. 도 7 은 설명을 목적으로 제공되고, 본 개시에서 폭넓게 예시화 및 설명된 바와 같이 기법들에 대해 한정하는 것은 아니다. 설명을 목적으로, 본 개시는 HEVC 코딩의 맥락에서 비디오 디코더 (30) 를 설명한다. 그러나, 본 개시의 기법들은 JVET 를 포함한, 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다. 비디오 디코더 (30) 는 상기 설명된 조합된 코딩 툴 및 변환 시그널링 기법들에 따라 시그널링된 신택스 엘리먼트들을 수신 및 파싱하도록 구성될 수도 있다. 추가로, 비디오 디코더 (30) 는 상기 설명된 바와 같이 강한 인트라 레퍼런스 필터링을 수행하도록 구성될 수도 있다.7 is a block diagram illustrating an example video decoder 30 that is configured to implement the techniques of this disclosure. 7 is provided for purposes of explanation and is not limiting on techniques, as broadly exemplified and described in this disclosure. For purposes of explanation, this disclosure describes video decoder 30 in the context of HEVC coding. However, the techniques of this disclosure may be applicable to other coding standards or methods, including JVET. Video decoder 30 may be configured to receive and parse signaled syntax elements in accordance with the combined coding tool and transform signaling techniques described above. In addition, video decoder 30 may be configured to perform strong intra reference filtering as described above.

도 7 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 비디오 데이터 메모리 (151), 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 재구성 유닛 (158), 필터 유닛 (160), 및 디코딩된 픽처 버퍼 (162) 를 포함한다. 예측 프로세싱 유닛 (152) 은 모션 보상 유닛 (164) 및 인트라 예측 프로세싱 유닛 (166) 을 포함한다. 다른 예들에서, 비디오 디코더 (30) 는, 더 많거나, 더 적거나, 또는 상이한 기능 컴포넌트들을 포함할 수도 있다.In the example of FIG. 7, video decoder 30 includes entropy decoding unit 150, video data memory 151, prediction processing unit 152, inverse quantization unit 154, inverse transform processing unit 156, reconstruction unit 158, filter unit 160, and decoded picture buffer 162. Prediction processing unit 152 includes motion compensation unit 164 and intra prediction processing unit 166. In other examples, video decoder 30 may include more, fewer, or different functional components.

비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩될 인코딩된 비디오 데이터, 이를 테면 인코딩된 비디오 비트스트림을 저장할 수도 있다. 비디오 데이터 메모리 (151) 에 저장된 비디오 데이터는, 예를 들어, 컴퓨터 판독가능 매체 (16) 로부터, 예를 들어, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들에 액세스하는 것에 의해, 획득될 수도 있다. 비디오 데이터 메모리 (151) 는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (CPB) 를 형성할 수도 있다. 디코딩된 픽처 버퍼 (162) 는, 출력을 위해, 또는 예를 들어, 인트라- 또는 인터-코딩 모드들에서, 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩하는데 있어서의 사용을 위해 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩이거나, 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다. 비디오 데이터 메모리 (151) 는 도 1 의 저장 매체들 (28) 과 동일하거나 또는 그의 부분일 수도 있다.Video data memory 151 may store encoded video data, such as an encoded video bitstream, to be decoded by the components of video decoder 30. Video data stored in video data memory 151 may be, for example, from computer readable medium 16, for example from a local video source such as a camera, via wired or wireless network communication of video data, or physically. By accessing data storage media. Video data memory 151 may form a coded picture buffer (CPB) that stores encoded video data from an encoded video bitstream. Decoded picture buffer 162 stores reference video data for output or for use in decoding video data by video decoder 30, for example in intra- or inter-coding modes. It may be a reference picture memory. Video data memory 151 and decoded picture buffer 162 may include dynamic random access memory (DRAM) including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. It may be formed by any of a variety of memory devices, such as. Video data memory 151 and decoded picture buffer 162 may be provided by the same memory device or separate memory devices. In various examples, video data memory 151 may be on-chip with other components of video decoder 30 or off-chip with respect to those components. Video data memory 151 may be the same as or part of storage media 28 of FIG. 1.

비디오 데이터 메모리 (151) 는 비트스트림의 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신 및 저장한다. 엔트로피 디코딩 유닛 (150) 은 비디오 데이터 메모리 (151) 로부터 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신할 수도 있고 NAL 유닛들을 파싱하여 신택스 엘리먼트들을 획득할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 NAL 유닛들에서 엔트로피 인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 재구성 유닛 (158), 및 필터 유닛 (160) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 생성할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 일반적으로 엔트로피 인코딩 유닛 (118) 의 프로세스와 상반되는 프로세스를 수행할 수도 있다.Video data memory 151 receives and stores encoded video data (eg, NAL units) of the bitstream. Entropy decoding unit 150 may receive encoded video data (eg, NAL units) from video data memory 151 and parse the NAL units to obtain syntax elements. Entropy decoding unit 150 may entropy decode entropy encoded syntax elements in NAL units. Prediction processing unit 152, inverse quantization unit 154, inverse transform processing unit 156, reconstruction unit 158, and filter unit 160 are decoded video data based on syntax elements extracted from the bitstream. You can also create Entropy decoding unit 150 may generally perform a process that is contrary to the process of entropy encoding unit 118.

본 개시의 일부 예들에 따르면, 엔트로피 디코딩 유닛 (150) 은 비트스트림으로부터 신택스 엘리먼트들을 획득하는 부분으로서 트리 구조를 결정할 수도 있다. 트리 구조는 CTB 와 같은 초기 비디오 블록이 코딩 유닛들과 같은 더 작은 비디오 블록들로 파티셔닝되는 방법을 특정할 수도 있다. 본 개시의 하나 이상의 기법들에 따르면, 트리 구조의 각각의 심도 레벨에서의 트리 구조의 각 개별의 비-리프 노드에 대해, 개별의 비-리프 노드에 대한 복수의 허용된 스플리팅 패턴들이 존재하고, 개별의 비-리프 노드에 대응하는 비디오 블록은 복수의 허용가능한 스플리팅 패턴들 중 하나에 따라 개별의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.According to some examples of this disclosure, entropy decoding unit 150 may determine the tree structure as part of obtaining syntax elements from the bitstream. The tree structure may specify how an initial video block, such as a CTB, is partitioned into smaller video blocks, such as coding units. According to one or more techniques of this disclosure, for each individual non-leaf node of the tree structure at each depth level of the tree structure, there are a plurality of allowed splitting patterns for the individual non-leaf node. The video block corresponding to the individual non-leaf node is partitioned into video blocks corresponding to the child nodes of the individual non-leaf node according to one of the plurality of allowable splitting patterns.

비트스트림으로부터 신택스 엘리먼트들을 획득하는 것에 더하여, 비디오 디코더 (30) 는 파티셔닝되지 않은 CU 에 대해 재구성 동작을 수행할 수도 있다. CU 에 대해 재구성 동작을 수행하기 위해, 비디오 디코더 (30) 는 CU 의 각각의 TU 에 대해 재구성 동작을 수행할 수도 있다. CU 의 각각의 TU 에 대해 재구성 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 의 잔차 블록들을 재구성할 수도 있다.In addition to obtaining syntax elements from the bitstream, video decoder 30 may perform a reconstruction operation on an unpartitioned CU. To perform a reconstruction operation on a CU, video decoder 30 may perform a reconstruction operation on each TU of the CU. By performing a reconstruction operation for each TU of a CU, video decoder 30 may reconstruct the residual blocks of the CU.

CU 의 TU 에 대해 재구성 동작을 수행하는 부분으로서, 역 양자화 유닛 (154) 은 TU 와 연관된 계수 블록들을, 역 양자화, 즉, 탈양자화할 수도 있다. 역 양자화 유닛 (154) 이 계수 블록을 역 양자화한 이후, 역 변환 프로세싱 유닛 (156) 은 TU 와 연관된 잔차 블록을 생성하기 위하여 계수 블록에 하나 이상의 역 변환들을 적용할 수도 있다. 예를 들어, 역 변환 프로세싱 유닛 (156) 은 역 DCT, 역 정수 변환, 역 KLT (Karhunen-Loeve transform), 역 회전 변환, 역 지향성 변환, 또는 다른 역 변환을 계수 블록에 적용할 수도 있다.As part of performing a reconstruction operation on a TU of a CU, inverse quantization unit 154 may inverse quantize, ie, dequantize, coefficient blocks associated with the TU. After inverse quantization unit 154 inverse quantizes the coefficient block, inverse transform processing unit 156 may apply one or more inverse transforms to the coefficient block to generate a residual block associated with the TU. For example, inverse transform processing unit 156 may apply an inverse DCT, an inverse integer transform, an inverse Karhunen-Loeve transform (KLT), an inverse rotation transform, an inverse directional transform, or other inverse transform to the coefficient block.

PU 가 인트라 예측을 사용하여 인코딩되면, 인트라 예측 프로세싱 유닛 (166) 은 PU 의 예측 블록들을 생성하기 위해 인트라 예측을 수행할 수도 있다. 인트라 예측 프로세싱 유닛 (166) 은 인트라 예측 모드를 사용하여, 공간적으로 이웃하는 블록들의 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 인트라 예측 프로세싱 유닛 (166) 은 비트스트림으로부터 획득된 하나 이상의 신택스 엘리먼트들에 기초하여 PU 에 대한 인트라 예측 모드를 결정할 수도 있다.If a PU is encoded using intra prediction, intra prediction processing unit 166 may perform intra prediction to generate predictive blocks of the PU. Intra prediction processing unit 166 may use intra prediction mode to generate predictive blocks of the PU based on samples of spatially neighboring blocks. Intra prediction processing unit 166 may determine an intra prediction mode for the PU based on one or more syntax elements obtained from the bitstream.

PU 가 인터 예측을 사용하여 인코딩되면, 엔트로피 디코딩 유닛 (150) 은 PU 에 대한 모션 정보를 결정할 수도 있다. 모션 보상 유닛 (164) 은 PU 의 모션 정보에 기초하여, 하나 이상의 레퍼런스 블록들을 결정할 수도 있다. 모션 보상 유닛 (164) 은, 하나 이상의 레퍼런스 블록들에 기초하여, PU 에 대한 예측 블록들 (예를 들어, 예측 루마, Cb 및 Cr 블록들) 을 생성할 수도 있다.If a PU is encoded using inter prediction, entropy decoding unit 150 may determine motion information for the PU. Motion compensation unit 164 may determine one or more reference blocks based on the motion information of the PU. Motion compensation unit 164 may generate predictive blocks (eg, predictive luma, Cb and Cr blocks) for the PU based on one or more reference blocks.

재구성 유닛 (158) 은 CU 의 TU들에 대한 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 및 CU 의 PU들의 예측 블록들 (예를 들어, 루마, Cb 및 Cr 블록들), 즉, 적용가능한 경우, 인트라 예측 데이터 또는 인터 예측 데이터를 사용하여, CU 에 대한 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 재구성할 수도 있다. 예를 들어, 재구성 유닛 (158) 은 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 의 샘플들을 예측 블록들 (예를 들어, 루마, Cb 및 Cr 예측 블록들) 의 대응하는 샘플들에 부가하여 CU 의 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 재구성할 수도 있다.Reconstruction unit 158 includes transform blocks (eg, luma, Cb and Cr transform blocks) for the TUs of the CU and predictive blocks (eg, luma, Cb and Cr blocks) of PUs of the CU. In other words, if applicable, intra prediction data or inter prediction data may be used to reconstruct coding blocks (eg, luma, Cb and Cr coding blocks) for a CU. For example, the reconstruction unit 158 may take samples of transform blocks (eg, luma, Cb, and Cr transform blocks) from corresponding blocks of predictive blocks (eg, luma, Cb, and Cr prediction blocks). In addition to the samples, the coding blocks of the CU (eg, luma, Cb and Cr coding blocks) may be reconstructed.

필터 유닛 (160) 은 디블록킹 동작을 수행하여 CU 의 코딩 블록들과 연관된 블록킹 아티팩트들을 감소시킬 수도 있다. 비디오 디코더 (30) 는 CU 의 코딩 블록들을 디코딩된 픽처 버퍼 (162) 에 저장할 수도 있다. 디코딩된 픽처 버퍼 (162) 는 후속 모션 보상, 인트라 예측, 및 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상으로의 프리젠테이션을 위해 레퍼런스 픽처들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는, 디코딩된 픽처 버퍼 (162) 에서의 블록들에 기초하여, 다른 CU들의 PU들에 대해 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다.Filter unit 160 may perform a deblocking operation to reduce blocking artifacts associated with coding blocks of the CU. Video decoder 30 may store the coding blocks of the CU in decoded picture buffer 162. Decoded picture buffer 162 may provide reference pictures for subsequent motion compensation, intra prediction, and presentation on a display device, such as display device 32 of FIG. 1. For example, video decoder 30 may perform intra prediction or inter prediction operations on PUs of other CUs based on blocks in decoded picture buffer 162.

도 8 은 본 개시의 예의 인코딩 방법을 예시하는 플로우차트이다. 비디오 인코더 (22) 의 하나 이상의 구조적 컴포넌트들은 도 8 의 기법들을 수행하도록 구성될 수도 있다.8 is a flowchart illustrating an encoding method of an example of the present disclosure. One or more structural components of video encoder 22 may be configured to perform the techniques of FIG. 8.

도 8 의 예에서, 비디오 인코더 (22) 는, 비디오 데이터의 블록을 수신하고 (800), 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고 (802), 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정 (804) 하도록 구성될 수도 있다. 하나의 예에서, PDPC 를 사용할지 여부를 결정하기 위해, 비디오 인코더 (22) 는 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 추가로 구성될 수도 있다.In the example of FIG. 8, video encoder 22 receives a block of video data 800, determines an intra prediction mode for encoding a block of video data 802, and based at least on the determined intra prediction mode. To determine 804 whether to use the PDPC mode to encode a block of video data. In one example, to determine whether to use PDPC, video encoder 22 may be further configured to determine to use the PDPC mode to encode a block of video data when the intra prediction mode is planar mode. It may be.

도 9 는 본 개시의 예의 디코딩 방법을 예시하는 플로우차트이다. 비디오 디코더 (30) 의 하나 이상의 구조적 컴포넌트들은 도 9 의 기법들을 수행하도록 구성될 수도 있다. 도 9 의 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 수신하고 (900), 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고 (902), 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정 (904) 하도록 구성될 수도 있다.9 is a flowchart illustrating a decoding method of an example of the present disclosure. One or more structural components of video decoder 30 may be configured to perform the techniques of FIG. 9. In the example of FIG. 9, video decoder 30 receives a block of video data (900), determines an intra prediction mode for the block of video data (902), and at least based on the determined intra prediction mode. It may be configured to determine 904 whether to use the PDPC mode to decode a block of data.

하나의 예에서, 비디오 디코더 (30) 는 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 구성될 수도 있다.In one example, video decoder 30 may be configured to determine to use the PDPC mode to decode a block of video data when the intra prediction mode is planar mode.

다른 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하고, 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 것으로서, 하나 이상의 비디오 코딩 툴들은 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하고, 그리고 결정된 사용에 기초하여 비디오 데이터의 블록에 하나 이상의 코딩 툴들을 적용하도록 구성될 수도 있다.In another example, video decoder 30 receives a syntax element associated with a primary transform or a secondary transform used for a block of video data, and determines the use of one or more video coding tools based on the value of the syntax element. As one or more video coding tools determine the use of the one or more video coding tools, which are video coding techniques other than a primary or secondary transform, and apply one or more coding tools to a block of video data based on the determined use. It may be configured to.

다른 예에서, 비디오 디코더 (30) 는 결정된 인트라 예측 모드 및 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트의 값에 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 를 사용할지 여부를 결정하도록 구성될 수도 있다.In another example, video decoder 30 may use the PDPC to decode a block of video data based on the determined intra prediction mode and the value of a syntax element associated with the primary transform or secondary transform used for the block of video data. It may be configured to determine whether.

다른 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트의 값과 상관없이 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 구성될 수도 있다. 하나의 예에서, 프라이머리 변환은 DCT, DST, 또는 EMT 중 하나이다. 다른 예에서, 세컨더리 변환은 회전 변환 또는 NSST 중 하나이다. 다른 예에서, 하나 이상의 비디오 코딩 툴들은 PDPC 모드, MDIS, RSAF, ARSS, 또는 MPI 중 하나 이상을 포함한다.In another example, video decoder 30 decodes a block of video data when the intra prediction mode is planar mode regardless of the value of the syntax element associated with the primary or secondary transform used for the block of video data. May be configured to decide to use the PDPC mode. In one example, the primary transform is one of DCT, DST, or EMT. In another example, the secondary transform is either a rotation transform or an NSST. In another example, one or more video coding tools include one or more of PDPC mode, MDIS, RSAF, ARSS, or MPI.

다른 예에서, 비디오 디코더 (30) 는, PDPC 모드를 사용하기로 결정되는 경우에 PDPC 모드 및 결정된 인트라 예측 모드를 사용하여 비디오 데이터의 블록을 디코딩하거나, 또는 PDPC 모드를 사용하기로 결정되지 않는 경우에 PDPC 모드를 사용하지 않고 결정된 인트라 예측 모드를 사용하여 비디오 데이터의 블록을 디코딩하도록 구성될 수도 있다. 비디오 디코더 (30) 는 비디오 데이터의 디코딩된 블록을 출력하도록 추가로 구성될 수도 있다.In another example, video decoder 30 decodes a block of video data using the PDPC mode and the determined intra prediction mode when it is determined to use the PDPC mode, or when it is not determined to use the PDPC mode. It may be configured to decode a block of video data using the intra prediction mode determined without using the PDPC mode. Video decoder 30 may be further configured to output a decoded block of video data.

본 개시의 소정의 양태들은 예시를 목적으로 HEVC 표준 및 JEM 의 확장들에 대하여 설명되었다. 그러나, 본 개시에서 설명된 기법들은, 개발중이거나 또는 아직 개발되지 않은 다른 표준 또는 독점적 비디오 코딩 프로세스들을 포함한, 다른 비디오 코딩 프로세스들에 유용할 수도 있다.Certain aspects of the present disclosure have been described with respect to the HEVC standard and extensions of JEM for purposes of illustration. However, the techniques described in this disclosure may be useful for other video coding processes, including other standard or proprietary video coding processes that are under development or not yet developed.

비디오 코더는, 본 개시에서 설명된 바와 같이, 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 유사하게, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 지칭할 수도 있다. 마찬가지로, 비디오 코딩은, 적용가능한 경우, 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.A video coder may refer to a video encoder or video decoder, as described in this disclosure. Similarly, a video coding unit may refer to a video encoder or video decoder. Similarly, video coding may refer to video encoding or video decoding, where applicable.

예에 의존하여, 본 명세서에서 설명된 기법들 중 임의의 것의 소정의 액트들 또는 이벤트들은 상이한 시퀀스로 수행될 수 있고, 전체적으로 부가되거나 병합되거나 또는 제거될 수도 있음 (예를 들어, 모든 설명된 액트들 또는 이벤트들이 그 기법들의 실시를 위해 필수적인 것은 아님) 이 인식되어야 한다. 더욱이, 소정의 예들에서, 액트들 또는 이벤트들은 순차적인 것보다는, 예를 들어, 멀티-스레딩된 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들을 통해 동시에 수행될 수도 있다.Depending on the example, certain acts or events of any of the techniques described herein may be performed in a different sequence and may be added, merged, or removed in their entirety (eg, all described acts Or events are not essential for the implementation of the techniques). Moreover, in certain examples, acts or events may be performed concurrently, eg, through multi-threaded processing, interrupt processing, or multiple processors, rather than sequential.

하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현되면, 그 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장 또는 송신될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들, 또는 예를 들어, 통신 프로토콜에 따라, 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체들은 일반적으로, (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어 파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. Computer readable media may be computer readable storage media corresponding to a tangible medium such as data storage media, or to facilitate transfer of a computer program from one place to another, for example, in accordance with a communication protocol. It may include communication media including any medium. In this manner, computer readable media may generally correspond to (1) non-transitory tangible computer readable storage media or (2) a communication medium such as a signal or carrier wave. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and / or data structures for implementing the techniques described in this disclosure. . The computer program product may include a computer readable medium.

한정이 아닌 일례로, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 캐리어 파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않고, 그 대신 비일시적인, 유형의 저장 매체들로 지향됨이 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본 명세서에서 사용된 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하고, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들로 데이터를 광학적으로 재생한다. 또한, 상기의 조합들이 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.By way of example, and not limitation, such computer readable storage media may be in the form of RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or instructions or data structures. And any other medium that can be used to store desired program code and can be accessed by a computer. Also, any connection is properly termed a computer readable medium. For example, if commands are sent from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, wireless, and microwave, Cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, wireless, and microwave are included in the definition of the medium. However, it should be understood that computer readable storage media and data storage media do not comprise connections, carrier waves, signals, or other temporary media, but instead are directed to non-transitory, tangible storage media. Disks and disks, as used herein, include compact disks (CD), laser disks, optical disks, digital versatile disks (DVD), floppy disks, and Blu-ray disks, where: Discs usually reproduce data magnetically, while discs optically reproduce data with lasers. Combinations of the above should also be included within the scope of computer-readable media.

명령들은 하나 이상의 프로세서들, 이를 테면 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적 또는 개별의 로직 회로부에 의해 실행될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는, 전술한 구조 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 추가로, 일부 양태들에서, 본 명세서에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되거나, 또는 조합된 코덱에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.The instructions may be one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integration. Or by separate logic circuits. As such, the term “processor” as used herein may refer to any of the structures described above or any other structure suitable for the implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding or integrated into a combined codec. Also, the techniques can be fully implemented in one or more circuits or logic elements.

본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들면, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하는 것은 아니다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에서 조합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용가능한 하드웨어 유닛들의 콜렉션에 의해 제공될 수도 있다.The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (eg, a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, the various units may be provided by a collection of interoperable hardware units, including one or more processors as described above, combined in a codec hardware unit or together with suitable software and / or firmware. It may be.

다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.Various examples have been described. These and other examples are within the scope of the following claims.

Claims (30)

비디오 데이터를 디코딩하는 방법으로서,
비디오 데이터의 블록을 수신하는 단계;
상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하는 단계; 및
결정된 상기 인트라 예측 모드에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (position-dependent prediction combination; PDPC) 모드를 사용할지 여부를 결정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
A method of decoding video data,
Receiving a block of video data;
Determining an intra prediction mode for the block of video data; And
Determining whether to use a position-dependent prediction combination (PDPC) mode to decode the block of video data based at least on the determined intra prediction mode. .
제 1 항에 있어서,
상기 PDPC 를 사용할지 여부를 결정하는 단계는,
상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
The method of claim 1,
Determining whether to use the PDPC,
Determining to use the PDPC mode to decode the block of video data when the intra prediction mode is planar mode.
제 1 항에 있어서,
상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하는 단계;
상기 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용 (usage) 을 결정하는 단계로서, 상기 하나 이상의 비디오 코딩 툴들은 상기 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 단계; 및
결정된 상기 사용에 기초하여 상기 하나 이상의 코딩 툴들을 상기 비디오 데이터의 블록에 적용하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
The method of claim 1,
Receiving a syntax element associated with a primary transform or a secondary transform used for the block of video data;
Determining usage of one or more video coding tools based on a value of the syntax element, wherein the one or more video coding tools are video coding techniques other than the primary or secondary transform. Determining use of the tools; And
Applying the one or more coding tools to the block of video data based on the determined use.
제 3 항에 있어서,
상기 하나 이상의 비디오 코딩 툴들은 상기 PDPC 모드를 포함하고, 상기 비디오 데이터를 디코딩하는 방법은,
결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 상기 값에 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 를 사용할지 여부를 결정하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
The method of claim 3, wherein
The one or more video coding tools include the PDPC mode, and the method of decoding the video data,
Whether to use the PDPC to decode the block of video data based on the determined intra prediction mode and the value of the syntax element associated with the primary transform or the secondary transform used for the block of video data. And determining the video data.
제 4 항에 있어서,
상기 PDPC 를 사용할지 여부를 결정하는 단계는,
상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 상기 값과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
The method of claim 4, wherein
Determining whether to use the PDPC,
The PDPC mode to decode the block of video data when the intra prediction mode is planar regardless of the value of the syntax element associated with the primary or secondary transform used for the block of video data. Determining to use the method.
제 3 항에 있어서,
상기 프라이머리 변환은 이산 코사인 변환 (DCT), 이산 사인 변환 (DSP), 또는 향상된 다중 변환 (EMT) 중 하나인, 비디오 데이터를 디코딩하는 방법.
The method of claim 3, wherein
Wherein the primary transform is one of a discrete cosine transform (DCT), a discrete sine transform (DSP), or an enhanced multiple transform (EMT).
제 3 항에 있어서,
상기 세컨더리 변환은 회전 변환 또는 비-분리가능 세컨더리 변환 (NSST) 중 하나인, 비디오 데이터를 디코딩하는 방법.
The method of claim 3, wherein
Wherein the secondary transform is one of a rotation transform or a non-separable secondary transform (NSST).
제 3 항에 있어서,
상기 하나 이상의 비디오 코딩 툴들은 상기 PDPC 모드, 모드 의존적 인트라 평활화 (MDIS), 레퍼런스 샘플 적응형 필터링 (RSAF), 적응형 레퍼런스 샘플 평활화 (ARSS), 또는 멀티-파라미터 인트라 예측 (MPI) 중 하나 이상을 포함하는, 비디오 데이터를 디코딩하는 방법.
The method of claim 3, wherein
The one or more video coding tools perform one or more of the PDPC mode, mode dependent intra smoothing (MDIS), reference sample adaptive filtering (RSAF), adaptive reference sample smoothing (ARSS), or multi-parameter intra prediction (MPI). And decoding the video data.
제 3 항에 있어서,
상기 신택스 엘리먼트는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 대한 인덱스인, 비디오 데이터를 디코딩하는 방법.
The method of claim 3, wherein
And wherein the syntax element is an index to the primary transform or the secondary transform.
제 3 항에 있어서,
상기 신택스 엘리먼트는 변환들의 세트에 대한 인덱스인, 비디오 데이터를 디코딩하는 방법.
The method of claim 3, wherein
And wherein the syntax element is an index into a set of transforms.
제 1 항에 있어서,
상기 PDPC 모드를 사용하기로 결정되는 경우에 상기 PDPC 모드 및 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하는 단계; 또는
상기 PDPC 모드를 사용하기로 결정되지 않는 경우에 상기 PDPC 모드를 사용하지 않고 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
The method of claim 1,
Decoding the block of video data using the PDPC mode and the determined intra prediction mode when it is determined to use the PDPC mode; or
Decoding the block of video data using the intra prediction mode determined without using the PDPC mode if it is not determined to use the PDPC mode.
제 11 항에 있어서,
디코딩된 상기 비디오 데이터의 블록을 출력하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
The method of claim 11,
Outputting the decoded block of video data.
비디오 데이터를 디코딩하도록 구성된 장치로서,
비디오 데이터의 블록을 저장하도록 구성된 메모리; 및
상기 메모리와 통신하는 하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
상기 비디오 데이터의 블록을 수신하고;
상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고; 그리고
결정된 상기 인트라 예측 모드에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하도록 구성된, 비디오 데이터를 디코딩하도록 구성된 장치.
An apparatus configured to decode video data, the apparatus comprising:
A memory configured to store a block of video data; And
One or more processors in communication with the memory,
The one or more processors,
Receive the block of video data;
Determine an intra prediction mode for the block of video data; And
And determine whether to use a position dependent prediction combination (PDPC) mode to decode the block of video data based at least on the determined intra prediction mode.
제 13 항에 있어서,
상기 PDPC 를 사용할지 여부를 결정하기 위해, 상기 하나 이상의 프로세서들은,
상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 13,
In order to determine whether to use the PDPC, the one or more processors,
And further determine to use the PDPC mode to decode the block of video data when the intra prediction mode is a planar mode.
제 13 항에 있어서,
상기 하나 이상의 프로세서들은,
상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하고;
상기 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 것으로서, 상기 하나 이상의 비디오 코딩 툴들은 상기 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하고; 그리고
결정된 상기 사용에 기초하여 상기 하나 이상의 코딩 툴들을 상기 비디오 데이터의 블록에 적용하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 13,
The one or more processors,
Receive a syntax element associated with a primary transform or a secondary transform used for the block of video data;
Determining the use of one or more video coding tools based on the value of the syntax element, wherein the one or more video coding tools are video coding techniques other than the primary transform or the secondary transform. Determine; And
And apply the one or more coding tools to the block of video data based on the determined use.
제 15 항에 있어서,
상기 하나 이상의 비디오 코딩 툴들은 상기 PDPC 모드를 포함하고, 상기 하나 이상의 프로세서들은,
결정된 상기 인트라 예측 모드 및 상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 상기 값에 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 를 사용할지 여부를 결정하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 15,
The one or more video coding tools include the PDPC mode, the one or more processors,
Whether to use the PDPC to decode the block of video data based on the determined intra prediction mode and the value of the syntax element associated with the primary transform or the secondary transform used for the block of video data. And further configured to determine the video data.
제 16 항에 있어서,
상기 PDPC 를 사용할지 여부를 결정하기 위해, 상기 하나 이상의 프로세서들은,
상기 비디오 데이터의 블록을 위해 사용되는 상기 프라이머리 변환 또는 상기 세컨더리 변환과 연관된 상기 신택스 엘리먼트의 상기 값과 상관없이 상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 디코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 16,
In order to determine whether to use the PDPC, the one or more processors,
The PDPC mode to decode the block of video data when the intra prediction mode is planar regardless of the value of the syntax element associated with the primary or secondary transform used for the block of video data. And further configured to determine to use the video data.
제 15 항에 있어서,
상기 프라이머리 변환은 이산 코사인 변환 (DCT), 이산 사인 변환 (DST), 또는 향상된 다중 변환 (EMT) 중 하나인, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 15,
Wherein the primary transform is one of a discrete cosine transform (DCT), a discrete sine transform (DST), or an enhanced multiple transform (EMT).
제 15 항에 있어서,
상기 세컨더리 변환은 회전 변환 또는 비-분리가능 세컨더리 변환 (NSST) 중 하나인, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 15,
And the secondary transform is one of a rotation transform or a non-separable secondary transform (NSST).
제 15 항에 있어서,
상기 하나 이상의 비디오 코딩 툴들은 상기 PDPC 모드, 모드 의존적 인트라 평활화 (MDIS), 레퍼런스 샘플 적응형 필터링 (RSAF), 적응형 레퍼런스 샘플 평활화 (ARSS), 또는 멀티-파라미터 인트라 예측 (MPI) 중 하나 이상을 포함하는, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 15,
The one or more video coding tools perform one or more of the PDPC mode, mode dependent intra smoothing (MDIS), reference sample adaptive filtering (RSAF), adaptive reference sample smoothing (ARSS), or multi-parameter intra prediction (MPI). And an apparatus configured to decode the video data.
제 15 항에 있어서,
상기 신택스 엘리먼트는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 대한 인덱스인, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 15,
And the syntax element is an index for the primary transform or the secondary transform.
제 15 항에 있어서,
상기 신택스 엘리먼트는 변환들의 세트에 대한 인덱스인, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 15,
And the syntax element is an index to a set of transforms.
제 13 항에 있어서,
상기 하나 이상의 프로세서들은,
상기 PDPC 모드를 사용하기로 결정되는 경우에 상기 PDPC 모드 및 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하거나; 또는
상기 PDPC 모드를 사용하기로 결정되지 않는 경우에 상기 PDPC 모드를 사용하지 않고 결정된 상기 인트라 예측 모드를 사용하여 상기 비디오 데이터의 블록을 디코딩하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 13,
The one or more processors,
Decode the block of video data using the PDPC mode and the determined intra prediction mode when it is determined to use the PDPC mode; or
And decode the block of video data using the intra prediction mode determined without using the PDPC mode if it is not determined to use the PDPC mode.
제 23 항에 있어서,
상기 하나 이상의 프로세서들은,
디코딩된 상기 비디오 데이터의 블록을 출력하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.
The method of claim 23, wherein
The one or more processors,
And further configured to output the decoded block of video data.
비디오 데이터를 디코딩하도록 구성된 장치로서,
비디오 데이터의 블록을 수신하기 위한 수단;
상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하기 위한 수단; 및
결정된 상기 인트라 예측 모드에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하기 위한 수단을 포함하는, 비디오 데이터를 디코딩하도록 구성된 장치.
An apparatus configured to decode video data, the apparatus comprising:
Means for receiving a block of video data;
Means for determining an intra prediction mode for the block of video data; And
Means for determining whether to use a position dependent prediction combination (PDPC) mode to decode the block of video data based at least on the determined intra prediction mode.
명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
상기 명령들은, 실행될 때, 비디오 데이터를 디코딩하도록 구성된 디바이스의 하나 이상의 프로세서들로 하여금,
비디오 데이터의 블록을 수신하게 하고;
상기 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하게 하고; 그리고
결정된 상기 인트라 예측 모드에 적어도 기초하여 상기 비디오 데이터의 블록을 디코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
A non-transitory computer readable storage medium storing instructions.
The instructions, when executed, cause one or more processors of the device configured to decode video data,
Receive a block of video data;
Determine an intra prediction mode for the block of video data; And
And determine whether to use a position dependent prediction combination (PDPC) mode to decode the block of video data based at least on the determined intra prediction mode.
비디오 데이터를 인코딩하는 방법으로서,
비디오 데이터의 블록을 수신하는 단계;
상기 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하는 단계; 및
결정된 상기 인트라 예측 모드에 적어도 기초하여 상기 비디오 데이터의 블록을 인코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
A method of encoding video data,
Receiving a block of video data;
Determining an intra prediction mode for encoding the block of video data; And
Determining whether to use a position dependent prediction combination (PDPC) mode to encode the block of video data based at least on the determined intra prediction mode.
제 27 항에 있어서,
상기 PDPC 를 사용할지 여부를 결정하는 단계는,
상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 인코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
The method of claim 27,
Determining whether to use the PDPC,
Determining to use the PDPC mode to encode the block of video data when the intra prediction mode is planar mode.
비디오 데이터를 인코딩하도록 구성된 장치로서,
비디오 데이터의 블록을 저장하도록 구성된 메모리; 및
상기 메모리와 통신하는 하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
상기 비디오 데이터의 블록을 수신하고;
상기 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고; 그리고
결정된 상기 인트라 예측 모드에 적어도 기초하여 상기 비디오 데이터의 블록을 인코딩하기 위해 포지션 의존적 예측 조합 (PDPC) 모드를 사용할지 여부를 결정하도록 구성된, 비디오 데이터를 인코딩하도록 구성된 장치.
A device configured to encode video data,
A memory configured to store a block of video data; And
One or more processors in communication with the memory,
The one or more processors,
Receive the block of video data;
Determine an intra prediction mode for encoding the block of video data; And
And determine whether to use a position dependent prediction combination (PDPC) mode to encode the block of video data based at least on the determined intra prediction mode.
제 29 항에 있어서,
상기 PDPC 를 사용할지 여부를 결정하기 위해, 상기 하나 이상의 프로세서들은,
상기 인트라 예측 모드가 평면 모드인 경우에 상기 비디오 데이터의 블록을 인코딩하기 위해 상기 PDPC 모드를 사용하기로 결정하도록 추가로 구성되는, 비디오 데이터를 인코딩하도록 구성된 장치.
The method of claim 29,
In order to determine whether to use the PDPC, the one or more processors,
And further determine to use the PDPC mode to encode the block of video data when the intra prediction mode is planar mode.
KR1020197036176A 2017-06-15 2018-05-24 Intra filtering applied with transform processing in video coding KR102278720B1 (en)

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 US10805641B2 (en) 2017-06-15 2018-05-23 Intra filtering applied together with transform processing in video coding
US15/987,560 2018-05-23
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 true KR20200019132A (en) 2020-02-21
KR102278720B1 KR102278720B1 (en) 2021-07-16

Family

ID=64657715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036176A KR102278720B1 (en) 2017-06-15 2018-05-24 Intra filtering applied with transform processing in video coding

Country Status (12)

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

Families Citing this family (37)

* 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 (en) * 2017-11-22 2024-05-17 英迪股份有限公司 Image encoding/decoding method and apparatus, and recording medium for storing bit stream
EP3496401A1 (en) * 2017-12-05 2019-06-12 Thomson Licensing Method and apparatus for video encoding and decoding based on block shape
WO2019117634A1 (en) * 2017-12-15 2019-06-20 엘지전자 주식회사 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
JP7257523B2 (en) 2018-12-28 2023-04-13 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Method and Apparatus for Selecting Transform Choices in Encoders and Decoders
KR20210097803A (en) 2019-01-14 2021-08-09 삼성전자주식회사 Encoding method and apparatus thereof, decoding method and apparatus thereof
WO2020164632A1 (en) 2019-02-15 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Non-power-two-partition tree in video compression
CN118694973A (en) * 2019-02-28 2024-09-24 数码士有限公司 Video signal processing method and device based on intra-frame prediction
CN116939199A (en) * 2019-03-11 2023-10-24 日本放送协会 Image encoding device, image decoding device, and program
JP7416450B2 (en) * 2019-03-11 2024-01-17 テンセント・アメリカ・エルエルシー Improvement of inter PDPC mode
MX2021011384A (en) * 2019-03-22 2021-11-04 Lg Electronics Inc Image decoding method and device and image encoding method and device in image coding system.
US11616966B2 (en) * 2019-04-03 2023-03-28 Mediatek Inc. Interaction between core transform and secondary transform
EP3949407A4 (en) 2019-04-16 2023-04-12 HFI Innovation Inc. Methods and apparatuses for coding video data with adaptive secondary transform signaling depending on tb level syntax
US11991393B2 (en) 2019-04-16 2024-05-21 Hfi Innovation Inc. Methods and apparatuses for coding video data with secondary transform
EP3932061A4 (en) 2019-04-23 2022-06-01 Beijing Bytedance Network Technology Co., Ltd. Use of secondary transform in coded video
CN117499641A (en) * 2019-05-10 2024-02-02 北京字节跳动网络技术有限公司 Conditional use of simplified quadratic transforms for video processing
JP7522135B2 (en) 2019-05-11 2024-07-24 北京字節跳動網絡技術有限公司 Interaction of multiple intra coding methods
CN113940074A (en) 2019-05-27 2022-01-14 Lg电子株式会社 Image coding method and device based on wide-angle intra-frame prediction and transformation
CN117354521A (en) 2019-06-07 2024-01-05 北京字节跳动网络技术有限公司 Conditional signaling of simplified secondary transforms in video bitstreams
US12010301B2 (en) * 2019-06-24 2024-06-11 Shar Kabushiki Kaisha Systems and methods for performing intra prediction coding in video coding
PL3972258T3 (en) * 2019-06-25 2024-07-15 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Information processing method and device, apparatus, and storage medium
WO2021023151A1 (en) 2019-08-03 2021-02-11 Beijing Bytedance Network Technology Co., Ltd. Position based mode derivation in reduced secondary transforms for video
WO2021032045A1 (en) 2019-08-17 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Context modeling of side information for reduced secondary transforms in video
US11677984B2 (en) * 2019-08-20 2023-06-13 Qualcomm Incorporated Low-frequency non-separable transform (LFNST) signaling
MX2022002916A (en) 2019-09-19 2022-04-06 Beijing Bytedance Network Tech Co Ltd Deriving reference sample positions in video coding.
EP4018659A4 (en) 2019-09-19 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. Scaling window in video coding
US20220295104A1 (en) * 2019-09-20 2022-09-15 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
KR20220070437A (en) 2019-10-05 2022-05-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Level-based signaling in video coding tools
CN114556918A (en) 2019-10-12 2022-05-27 北京字节跳动网络技术有限公司 Use and signaling of a refined video codec tool
MX2022004200A (en) 2019-10-13 2022-05-02 Beijing Bytedance Network Tech Co Ltd Interplay between reference picture resampling and video coding tools.
WO2021129866A1 (en) 2019-12-27 2021-07-01 Beijing Bytedance Network Technology Co., Ltd. Signaling of slice types in video pictures headers
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 (en) 2003-07-18 2011-01-26 ソニー株式会社 Encoding apparatus and method
WO2008004940A1 (en) 2006-07-07 2008-01-10 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 (en) 2011-07-01 2016-03-30 华为技术有限公司 A kind of pixel prediction method and apparatus
US9288508B2 (en) 2011-11-08 2016-03-15 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 (en) * 2014-10-14 2015-01-21 河海大学常州校区 Two-way video coding and decoding system and method based on video mobile equipment
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
CN114339227B (en) * 2016-05-04 2024-04-12 夏普株式会社 System and method for encoding transform data
CN105872564B (en) * 2016-05-27 2019-02-19 武汉拓宝科技股份有限公司 H.264/AVC the intra prediction mode determining method and system of H.265/HEVC transcoding are arrived
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
KR102278720B1 (en) 2021-07-16
EP4236312A3 (en) 2023-10-25
JP2020523910A (en) 2020-08-06
JP6950004B2 (en) 2021-10-13
US10805641B2 (en) 2020-10-13
EP3639518B1 (en) 2023-08-23
US20180367814A1 (en) 2018-12-20
CA3063559A1 (en) 2018-12-20
CL2019003620A1 (en) 2020-06-26
AU2018282523B2 (en) 2022-06-02
AU2018282523A1 (en) 2019-12-05
WO2018231488A1 (en) 2018-12-20
CO2019013898A2 (en) 2020-01-17
EP4236312A2 (en) 2023-08-30
CA3063559C (en) 2023-03-28
BR112019025629A2 (en) 2020-06-16
TWI745594B (en) 2021-11-11
EP3639518A1 (en) 2020-04-22
CN110720218B (en) 2022-08-16
CN110720218A (en) 2020-01-21
TW201906406A (en) 2019-02-01

Similar Documents

Publication Publication Date Title
KR102278720B1 (en) Intra filtering applied with transform processing in video coding
US11146795B2 (en) Intra filtering flag in video coding
US10506246B2 (en) Multi-type-tree framework for video coding
AU2023202344B2 (en) Position dependent intra prediction combination extended with angular modes
TWI693820B (en) Determining prediction parameters for non-square blocks in video coding
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