KR20200019132A - Intra filtering applied with transform processing in video coding - Google Patents
Intra filtering applied with transform processing in video coding Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive 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
본 출원은 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
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 데이터를 저장하도록 구성된 저장 매체들 (20), 비디오 인코더 (22), 및 출력 인터페이스 (24) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (26), 인코딩된 비디오 데이터를 저장하도록 구성된 저장 매체들 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 다른 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 다른 컴포넌트들 또는 어레인지먼트들을 포함한다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스 (32) 를 포함하는 것보다는 외부 디스플레이 디바이스와 인터페이스할 수도 있다.In the example of FIG. 1,
도 1 의 예시된 시스템 (10) 은 하나의 예일 뿐이다. 비디오 데이터를 프로세싱 및/또는 코딩 (예를 들어, 인코딩 및/또는 디코딩) 하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 본 개시의 기법들은 일반적으로 비디오 인코딩 디바이스 및/또는 비디오 디코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, 통상적으로 "CODEC" 으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 단지, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이런 이유로, 시스템 (10) 은 예를 들면, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해, 소스 디바이스 (12) 와 목적지 디바이스 (14) 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.The illustrated
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 및/또는 비디오 콘텐트 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스 (video feed interface) 를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (18) 는 컴퓨터 그래픽 기반 데이터를 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 생성할 수도 있다. 소스 디바이스 (12) 는 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들 (예를 들어, 저장 매체들 (20)) 을 포함할 수도 있다. 본 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 사전-캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더 (22) 에 의해 인코딩될 수도 있다. 출력 인터페이스 (24) 는 인코딩된 비디오 정보 (예를 들어, 인코딩된 비디오 데이터의 비트스트림) 를 컴퓨터 판독가능 매체 (16) 로 출력할 수도 있다.
목적지 디바이스 (14) 는, 컴퓨터 판독가능 매체 (16) 를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터 판독가능 매체 (16) 는, 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 일부 예들에서, 컴퓨터 판독가능 매체 (16) 는, 소스 디바이스 (12) 로 하여금, 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 에 실시간으로 송신할 수 있게 하는 통신 매체를 포함한다. 인코딩된 비디오 데이터는 통신 표준, 이를 테면 무선 통신 프로토콜에 따라 변조되고, 목적지 디바이스 (14) 에 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를 테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다. 목적지 디바이스 (14) 는 인코딩된 비디오 데이터 및 디코딩된 비디오 데이터를 저장하도록 구성된 하나 이상의 데이터 저장 매체들을 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스 (24) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스된 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는, 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 임의의 타입의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예를 들어, 웹사이트용), FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함한 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이것은 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 이들 양자 모두의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.In some examples, encoded data may be output from
본 개시에서 설명된 기법들은, 공중 경유 (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,
컴퓨터 판독가능 매체 (16) 는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적 매체들, 또는 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들과 같은 저장 매체들 (즉, 비일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를 예를 들어 네트워크 송신을 통해 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생성 설비의 컴퓨팅 디바이스는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 수신하고, 인코딩된 비디오 데이터를 포함하는 디스크를 생성할 수도 있다. 따라서, 컴퓨터 판독가능 매체 (16) 는, 다양한 예들에 있어서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체들을 포함하도록 이해될 수도 있다.Computer
목적지 디바이스 (14) 의 입력 인터페이스 (26) 는 컴퓨터 판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터 판독가능 매체 (16) 의 정보는, 비디오 인코더 (22) 의 비디오 인코더 (22) 에 의해 정의되고 또한 비디오 디코더 (30) 에 의해 사용되는 신택스 정보를 포함할 수도 있고, 이 신택스 정보는 블록들 및 다른 코딩된 유닛들, 예를 들어, 픽처들의 그룹들 (GOP들) 의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함한다. 저장 매체들 (28) 은 입력 인터페이스 (26) 에 의해 수신된 인코딩된 비디오 데이터를 저장할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
비디오 인코더 (22) 및 비디오 디코더 (30) 각각은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합들과 같은 다양한 적합한 비디오 인코더 및/또는 비디오 디코더 회로부 중 임의의 것으로서 구현될 수도 있다. 기법들이 부분적으로 소프트웨어로 구현될 경우, 디바이스는 적합한 비일시적 컴퓨터 판독가능 매체에 소프트웨어에 대한 명령들을 저장하고, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하는 하드웨어로 명령들을 실행할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나는 개별의 디바이스에 있어서 조합된 CODEC 의 부분으로서 통합될 수도 있다.Each of
일부 예들에서, 비디오 인코더 (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,
일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 JVET (Joint Video Exploration Team) 에 의해 탐색되는 새로운 비디오 코딩 기법들을 포함한, 다른 비디오 코딩 기법들 및/또는 표준들에 따라 동작하도록 구성될 수도 있다. JVET 는 JEM (Joint Exploratory Model) 으로 불리는 소프트웨어 모델에 따라 테스팅을 수행한다.In some examples,
이하에 더 상세히 설명될 바와 같이, 본 개시의 하나의 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록에 대한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성될 수도 있다. 마찬가지로, 비디오 인코더 (22) 는, 비디오 데이터의 블록을 수신하고, 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고, 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정하도록 구성될 수도 있다.As will be described in more detail below, in one example of the present disclosure,
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),
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (22) 는 CTU 의 코딩 트리 블록들에 대해 쿼드트리 파티셔닝을 재귀적으로 수행하여, 코딩 트리 블록들을 코딩 블록들, 따라서, 일명 "코딩 트리 유닛들" 로 분할할 수도 있다. 코딩 블록은 샘플들의 N×N 블록이다. CU 는 루마 샘플들의 코딩 블록 및 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 갖는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, CU 는 단일 코딩 블록 및 코딩 블록의 샘플들을 코딩하는데 사용되는 신택스 구조들을 포함할 수도 있다.To generate a coded CTU,
비디오 인코더 (22) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은, 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록들을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, PU 는 단일 예측 블록 및 예측 블록을 예측하는데 사용되는 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (22) 는 CU 의 각각의 PU 의 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 에 대한 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 을 생성할 수도 있다.
비디오 인코더 (22) 는 PU 에 대한 예측 블록들을 생성하기 위해 인트라 예측 또는 인터 예측을 사용할 수도 있다. 비디오 인코더 (22) 가 PU 의 예측 블록들을 생성하기 위해 인트라 예측을 사용하면, 비디오 인코더 (22) 는 PU 를 포함하는 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다.
비디오 인코더 (22) 가 CU 의 하나 이상의 PU들에 대한 예측 블록들 (예를 들어, 루마, Cb, 및 Cr 예측 블록들) 을 생성한 후, 비디오 인코더 (22) 는 CU 에 대한 하나 이상의 잔차 블록들을 생성할 수도 있다. 하나의 예로서, 비디오 인코더 (22) 는 CU 에 대한 루마 잔차 블록을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중 하나에서의 루마 샘플과 CU 의 원래의 루마 코딩 블록에서의 대응하는 샘플 간의 차이를 표시한다. 추가로, 비디오 인코더 (22) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. 크로마 예측의 하나의 예에서, CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 원래의 Cb 코딩 블록에서의 대응하는 샘플 간의 차이를 표시할 수도 있다. 비디오 인코더 (22) 는 또한 CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 원래의 Cr 코딩 블록에서의 대응하는 샘플 간의 차이를 표시할 수도 있다. 그러나, 크로마 예측을 위한 다른 기법들이 사용될 수도 있음을 이해해야 한다.After
더욱이, 비디오 인코더 (22) 는 CU 의 잔차 블록들 (예를 들어, 루마, Cb, 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예를 들어, 루마, Cb, 및 Cr 변환 블록들) 로 분해하기 위해 쿼드트리 파티셔닝을 사용할 수도 있다. 변환 블록은, 동일한 변환이 적용되는 샘플들의 직사각형 (예를 들어, 정사각형 또는 비-정사각형) 블록이다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록을 가질 수도 있다. TU 의 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 단색 픽처들 또는 3 개의 별도의 컬러 평면들을 갖는 픽처들에서, TU 는 단일 변환 블록 및 변환 블록의 샘플들을 변환하는데 사용되는 신택스 구조들을 포함할 수도 있다.Moreover,
비디오 인코더 (22) 는 TU 에 대한 계수 블록을 생성하기 위해 TU 의 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 예를 들어, 비디오 인코더 (22) 는 TU 에 대한 루마 계수 블록을 생성하기 위해 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 계수 블록은 변환 계수들의 2-차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cb 계수 블록을 생성하기 위해 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (22) 는 TU 에 대한 Cr 계수 블록을 생성하기 위해 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용할 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, 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),
비디오 인코더 (22) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 따라서, 비트스트림은 비디오 데이터의 인코딩된 표현을 포함한다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은, NAL 유닛에서의 데이터의 타입의 표시, 및 필요에 따라 에뮬레이션 방지 비트들로 산재된 원시 바이트 시퀀스 페이로드 (raw byte sequence payload; RBSP) 의 형태로 그 데이터를 포함하는 바이트들을 포함하는 신택스 구조이다. NAL 유닛들의 각각은, NAL 유닛 헤더를 포함할 수도 있고 RBSP 를 캡슐화 (encapsulate) 한다. NAL 유닛 헤더는, NAL 유닛 타입 코드를 표시하는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 표시한다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수 개의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 인스턴스들에서, RBSP 는 제로 비트들을 포함한다.
비디오 디코더 (30) 는 비디오 인코더 (22) 에 의해 생성된 인코딩된 비디오 비트스트림을 수신할 수도 있다. 추가로, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위해 비트스트림을 파싱할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 재구성할 수도 있다. 비디오 데이터를 재구성하기 위한 프로세스는 일반적으로 비디오 인코더 (22) 에 의해 수행되는 프로세스와 상반될 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들을 결정하기 위해 PU들의 모션 벡터들을 사용할 수도 있다. 추가로, 비디오 디코더 (30) 는 현재의 CU 의 TU들의 계수 블록들을 역 양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU들의 변환 블록들을 재구성하기 위해 계수 블록들에 대해 역 변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU들의 변환 블록들의 대응하는 샘플들에 부가함으로써 현재의 CU 의 코딩 블록들을 재구성할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 재구성함으로써, 비디오 디코더 (30) 는 픽처를 재구성할 수도 있다.
QTBT (quadtree plus binary tree) 파티션 구조는 JVET (Joint Video Exploration Team) 에 의해 현재 연구 중이다. J. An 등의 "Block partitioning structure for next generation video coding", 국제 전기통신 연합, COM16-C966, 2015년 9월 (이하 "VCEG 제안 COM16-C966") 에서, QTBT 파티셔닝 기법들은 HEVC 를 넘어서는 미래의 비디오 코딩 표준에 대해 설명되었다. 시뮬레이션들은 제안된 QTBT 구조가 HEVC 에서 사용된 쿼드트리 구조보다 더 효율적일 수도 있다는 것을 보여주었다.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
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 (
도 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
노드 (78) 에서, 블록 (53) 은 쿼드트리 파티셔닝을 사용하여 4 개의 동일한 사이즈 블록들로 스플리팅된다. 블록들 (63 및 66) 은 이 쿼드트리 파티셔닝으로부터 생성되고 추가로 스플리팅되지 않는다. 노드 (80) 에서, 좌측 상단 블록은 먼저 수직 이진 트리 스플리팅을 사용하여 스플리팅되어 블록 (60) 및 우측 수직 블록을 초래한다. 우측 수직 블록은 그 후 수평 이진 트리 스플리팅을 사용하여 블록들 (61 및 62) 로 스플리팅된다. 노드 (78) 에서의 쿼드트리 스플리팅으로부터 생성된 우측 하단 블록은 노드 (84) 에서 수평 이진 트리 스플리팅을 사용하여 블록들 (64 및 65) 로 스플리팅된다.At
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,
도 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:
비디오 인코더 (22) 및 비디오 디코더 (30) 는 현재의 인트라 예측 모드가 수평 또는 수직 방향 (예를 들어, 수평 또는 수직 인트라 예측 방향) 에 얼마나 가까운지 또는 얼마나 먼지에 기초하여 MDIS 가 인에이블되는 인트라 예측 모드들을 유도하도록 구성될 수도 있다. 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 현재의 인트라 예측 모드에 대한 인트라 모드 인덱스와 수평 및/또는 수직 모드 인트라 예측 모드의 인트라 예측 모드 인덱스 간의 절대 차이에 기초하여 특정한 인트라 모드가 수평 또는 수직 방향에 얼마나 가까운지 또는 얼마나 먼지를 유도하도록 구성될 수도 있다. 이 절대 차이가 소정의 임계치 (예를 들어, 그 임계치는 블록 사이즈 의존적일 수도 있다) 를 초과하면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 레퍼런스 샘플들에 MDIS 필터를 적용하도록 구성될 수도 있다. 이 절대 차이가 소정의 임계치 (예를 들어, 그 임계치는 블록 사이즈 의존적일 수도 있다) 이하이면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 레퍼런스 샘플들에 MDIS 필터를 적용하지 않도록 구성될 수도 있다. 예들의 임계치들은 10 (예를 들어, 4×4 블록들의 경우), 7 (예를 들어, 8×8 블록들의 경우), 1 (예를 들어, 16×16 블록들의 경우), 및 0 (예를 들어, 32×32 블록들의 경우) 을 포함할 수도 있다. 다시 말해서, 수평 또는 수직 방향들로부터 먼 인트라 예측 모드들에 대해, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 레퍼런스 필터를 적용하지 않을 수도 있다. 일부 예들에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 DC 모드 또는 평면 모드와 같은 비-각도 인트라 예측 모드들에 대해 MDIS 필터를 적용하지 않을 수도 있다.
JEM 에서, MDIS 는 평활화 필터 (예를 들어, 레퍼런스 샘플 적응형 필터링 (RSAF) 또는 적응형 레퍼런스 샘플 평활화 (ARSS)) 로 대체되었고, 이는 모든 인트라 모드들에 대해 적용될 수 있다. 이러한 평활화 필터의, 인트라 레퍼런스 샘플들에 대한 적용은 인트라 평활화로 지칭될 수도 있다. 일부 예들에서, 평활화 필터는 DC 모드에 대해 적용되지 않는다. 비디오 인코더 (22) 는 평활화 필터가 현재의 블록에서 적용되는지 여부를 표시하기 위해 플래그를 생성 및 시그널링하도록 구성될 수도 있다. 비디오 디코더 (30) 는 현재의 블록에 대해 평활화 필터를 적용할지 여부를 결정하기 위해 이러한 플래그를 수신 및 파싱하도록 구성될 수도 있다.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.
일부 예들에서, 비디오 인코더 (22) 는 이러한 플래그를 명시적 플래그로서 시그널링하지 않도록 구성될 수도 있지만, 오히려, 비디오 인코더 (22) 는 평활화 필터가 변환 계수들의 특성 (예를 들어, 변환 계수들의 패리티) 에서 적용되는지 여부의 표시를 숨기도록 구성될 수도 있다. 마찬가지로, 비디오 디코더 (30) 는 변환 계수들의 특성 (예를 들어, 변환 계수들의 패리티) 으로부터 평활화 필터가 적용되는지 여부를 결정 (예를 들어, 플래그의 값을 결정) 하도록 구성될 수도 있다. 예를 들어, 변환 계수들이 소정의 패리티 조건 (예를 들어, 홀수 또는 짝수) 을 충족하는 경우, 플래그의 값은 1 로서 유도되고, 그렇지 않으면 플래그의 값은 0 으로서 유도된다.In some examples,
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
본 개시에서 설명된 기법들은 임의의 조합으로 그리고 다른 방법들과의 임의의 결합으로 사용될 수도 있다. 인트라 평활화 및 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,
도 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,
PDPC 의 기법들의 하나의 예에서, 각각 필터링되지 않은 및 필터링된 레퍼런스들 r 및 s 만을 사용하여 계산된, 임의의 2 개의 세트의 픽셀 예측들 및 가 주어지면, 로 표기된, 픽셀의 조합된 예측된 값은 다음으로 정의되고,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 And Is given, The combined predicted value of a pixel, denoted by, is defined as
여기서 는 조합 파라미터들의 세트이다. 가중치 의 값은 0 과 1 사이의 값일 수도 있다. 가중치들 와 의 합은 1 과 동일할 수도 있다.here Is a set of combination parameters. weight The value of may be a value between 0 and 1. Weights Wow The sum of may be equal to one.
소정의 예들에서, 블록에서의 픽셀들의 수 만큼 큰 파라미터들의 세트를 갖는 것은 실용적이지 않을 수도 있다. 이러한 예들에서, 는 훨씬 더 작은 파라미터들의 세트, 플러스 이들 파라미터들로부터 모든 조합 값들을 계산하기 위한 방정식으로 정의될 수도 있다. 이러한 예에서, 다음의 공식이 사용될 수도 있다: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, 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:
여기서, 및 는 예측 파라미터들이고, N 은 블록 사이즈이고, 및 는 각각 필터링되지 않은 및 필터링된 레퍼런스들을 사용하여, 특정 모드에 대해, HEVC 표준에 따르는 것을 사용하여 계산된 예측 값들이고, 그리고 here, And Is the prediction parameters, N is the block size, And Are predictive values computed using the conforming to the HEVC standard for a particular mode, using unfiltered and filtered references, respectively, and
은 예측 파라미터들에 의해 정의된, (즉, 및 에 할당된 전체 가중치들이 1 을 증가시키게 하는) 정규화 팩터이다.Is defined by the prediction parameters, i.e. And The total weights assigned to are increased by 1).
공식 2 는 공식 2A 에서 임의의 비디오 코딩 표준에 대해 일반화될 수도 있다:
여기서, 및 는 예측 파라미터들이고, N 은 블록 사이즈이고, 및 는 각각 필터링되지 않은 및 필터링된 레퍼런스들을 사용하여, 특정 모드에 대해, 비디오 코딩 표준 (또는 비디오 코딩 스킴 또는 알고리즘) 에 따르는 것을 사용하여 계산된 예측 값들이고, 그리고here, And Is the prediction parameters, N is the block size, And 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
는 예측 파라미터들에 의해 정의된, (즉, 및 에 할당된 전체 가중치들이 1 을 증가시키게 하는) 정규화 팩터이다.Is defined by the prediction parameters, i.e. And The total weights assigned to are increased by 1).
이들 예측 파라미터들은 사용된 예측 모드의 타입 (예를 들어, HEVC 의 DC, 평면, 및 33 개의 지향성 모드들) 에 따라 예측된 항들의 최적의 선형 조합을 제공하기 위한 가중치들을 포함할 수도 있다. 예를 들어, HEVC 는 35 개의 예측 모드들을 포함한다. 룩업 테이블은 예측 모드들의 각각에 대한 예측 파라미터들 및 의 각각에 대한 값들 (즉, 각각의 예측 모드에 대한 및 의 35 개의 값들) 로 구성될 수도 있다. 이러한 값들은 비디오와 비트스트림으로 인코딩될 수도 있거나 또는 미리 인코더 및 디코더에 의해 알려진 상수 값들일 수도 있고 파일 또는 비트스트림으로 송신될 필요가 없을 수도 있다. 및 에 대한 값들은 트레이닝 비디오들의 세트에 대해 최상의 압축을 제공하는 예측 파라미터들에 대한 값들을 발견하는 것에 의해 최적화 트레이닝 알고리즘에 의해 결정될 수도 있다.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. And Values for each of (i.e., for each prediction mode And 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. And 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.
다른 예에서, (예를 들어, 룩업 테이블에서) 각각의 예측 모드에 대한 복수의 사전정의된 예측 파라미터 세트들이 존재하고 선택된 예측 파라미터 세트 (그러나 파라미터들 그것들 자체는 아님) 는 인코딩된 파일 또는 비트스트림으로 디코더에 송신된다. 다른 예에서, 및 에 대한 값들은 비디오 인코더 (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, And The values for may be immediately generated by
다른 예에서, 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:
여기서here
그리고And
이러한 접근법은 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,
(여기서 "*" 는 콘볼루션을 나타낸다) 을 가지면,(Where "*" represents convolution),
즉, 선형으로 조합된 예측은 선형으로 조합된 레퍼런스로부터 계산될 수도 있다.That is, the linearly combined prediction may be calculated from the linearly combined reference.
공식들 4, 6 및 8 은 공식 4A, 6A, 및 8A 에서 임의의 비디오 코딩 표준에 대해 일반화될 수도 있다:
여기서here
그리고And
이러한 접근법은 코딩 표준의 예측의 선형성을 활용할 수도 있다. 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,
(여기서 "*" 는 콘볼루션을 나타낸다) 를 갖는 경우,(Where "*" represents convolution),
즉, 선형으로 조합된 예측은 선형으로 조합된 레퍼런스로부터 계산될 수도 있다.That is, the linearly combined prediction may be calculated from the linearly combined reference.
예에서, 예측 함수들은 레퍼런스 벡터 (예를 들어, r 및 s) 를 단지 입력으로서 사용할 수도 있다. 이 예에서, 레퍼런스 벡터의 거동 (behavior) 은, 레퍼런스가 필터링된 경우 또는 필터링되지 않은 경우 변경되지 않는다. r 과 s 가 동일하면 (예를 들어, 일부 필터링되지 않은 레퍼런스 r 은 다른 필터링된 레퍼런스 s 와 동일하게 된다), 예측 함수들, 예를 들어, (또한 p(x,y,r) 로서 기입됨) 은 필터링된 및 필터링되지 않은 레퍼런스들에 적용된, (또한 p(x,y,s) 로서 기입됨) 와 동일하다. 추가적으로, 픽셀 예측들 p 및 q 는 등가일 수도 있다 (예를 들어, 동일한 입력이 주어지면 동일한 출력을 생성한다). 이러한 예에서, 공식들 (1) 내지 (8) 은 픽셀 예측 를 픽셀 예측 로 대체하여 재기입될 수도 있다.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. (Also written as p (x, y, r )) is applied to the filtered and unfiltered references, (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 Pixel prediction It can also be rewritten in place of.
다른 예에서, 예측 (예를 들어, 함수들의 세트들) 은 레퍼런스가 필터링된 정보에 의존하여 변경될 수도 있다. 이 예에서, 상이한 세트들의 함수들이 표기될 수도 있다 (예를 들어, 및 ). 이 경우에, r 과 s 가 동일하더라도, 및 는 동일하지 않을 수도 있다. 다시 말해서, 동일한 입력은, 그 입력이 필터링되었는지 여부에 의존하여 상이한 출력을 생성할 수 있다. 이러한 예에서, 는 로 대체될 수 없을 수도 있다.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, And ). In this case, even though r and s are equal, And 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, Is 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,
일부 예들에서, 특정한 비디오 코딩 툴에 대한 플래그를 시그널링하는 것은, 비디오 코딩 툴을 사용하는 것으로부터 얻은 압축 효율이 상당히 감소될 수도 있도록 상당히 많은 수의 비트들을 취할 수도 있다. 본 개시는 변환 프로세싱에 대한 시그널링을 포함하여, 다른 비디오 코딩 프로세스들에 대한 시그널링과 함께 비디오 코딩 툴 오버헤드 시그널링 (예를 들어, 비디오 코딩 툴 사용 및/또는 비디오 코딩 툴 파라미터들을 표시하는 신택스 엘리먼트들) 을 커플링하는 기법들을 설명한다.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,
본 개시의 하나의 예에서, 비디오 인코더 (22) 및/또는 비디오 디코더 (30) 는, 소정의 변환 플래그 또는 인덱스 값(들)이 시그널링되는 경우, 하나 이상의 코딩 툴들 (예를 들어, 인트라 레퍼런스 샘플 평활화 필터 및/또는 PDPC 모드) 이 블록에 대해 적용되고, 그렇지 않고, 소정의 변환 플래그 또는 인덱스 값(들)이 시그널링되지 않는 경우, 코딩 툴이 적용되지 않음을 표시하는 소정의 사전-정의된 룰들을 따르도록 구성될 수도 있다. 이 경우에, 비디오 코딩 툴의 사용을 표시하기 위한 임의의 명시적 플래그는 시그널링될 필요가 없다. 대신에, 특정한 코딩 툴이 사용되는지 여부의 결정은 변환 시그널링으로부터 유도될 수도 있다. 상기의 예들은 인트라 레퍼런스 샘플 평활화 필터들 및 PDPC 모드를 포함하지만, 다른 비디오 코딩 툴 사용이 변환 시그널링과 커플링될 수도 있다.In one example of this disclosure,
하나의 예에서, 변환 시그널링에 의해 표시된 비디오 코딩 툴은 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,
하나의 예에서, 비디오 디코더 (30) 는, 세컨더리 변환 (NSST) 인덱스들에 의해 표시된 바와 같이, 소정의 세컨더리 변환들이 적용될 때만 PDPC 모드를 사용하기로 결정할 수도 있다. 마찬가지로, 비디오 인코더 (22) 는 소정의 세컨더리 변환들이 적용될 때만 PDPC 모드를 사용하기로 결정할 수도 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 특정한 세컨더리 변환이 사용될 때 (예를 들어, 값 NSST 인덱스가 1 과 같을 때) PDPC 모드를 사용하도록 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 인덱스의 값에 의해 표시된 바와 같이) 사용된 세컨더리 변환과 상관없이 소정의 인트라 예측 모드들에 대해 PDPC 모드를 사용하도록 구성될 수도 있다. 예를 들어, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 예측 모드가 평면 모드, 및/또는 DC 모드, 또는 임의의 다른 모드들인 경우들에서 PDPC 모드를 적용하도록 구성될 수도 있다.In one example,
다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 (예를 들어, 세컨더리 변환 (NSST) 인덱스의 값에 의해 표시된 바와 같이) 소정의 세컨더리 변환들에 대해서만 MDIS 비디오 코딩 툴 (또는 다른 인트라 레퍼런스 샘플 평활화 필터들) 을 적용하도록 구성될 수도 있다. 하나의 예로서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 3 과 동일한 NSST 인덱스에 대해서만 MDIS 비디오 코딩 툴 (또는 다른 인트라 레퍼런스 샘플 평활화 필터들) 을 적용하도록 구성될 수도 있다.In another example,
일부 예들에서, 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,
또 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 NSST 인덱스가 2 와 동일할 때 ARSS 비디오 코딩 툴을 적용하도록 구성될 수도 있다.In another example,
상이한 코딩 툴들 (예를 들어, 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,
하나의 툴 (예를 들어, 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
다음 섹션은 강한 인트라 레퍼런스 필터링에 관한 것이다. 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,
도 5 에 도시된 바와 같이, 필터링 프로세스는 좌측 인트라 레퍼런스 샘플들 (202) 및 상부 인트라 레퍼런스 샘플들 (204) (블랙 박스들로 표시됨), 뿐만 아니라 우측 하부 인트라 레퍼런스 샘플들 (206) 및 우측 상부 인트라 레퍼런스 샘플들 (208) (점으로 된 (dotted) 박스들로 표시됨) 에 대해 수행된다. 사용된 분할은 비-2 의 거듭제곱이다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 필터링 프로세스를 수평 및 수직 방향들에 대한 부분들로 스플리팅하도록 구성될 수도 있어, 하나의 부분이 블록 (200) 의 폭 및/또는 높이에 대응하고, 다른 부분이 남은 길이가 된다. 이 특정한 예에서, 남은 부분은 수직 필터링을 위한 폭 길이 및 수평 필터링을 위한 높이 길이 (즉, 점으로 된 박스에서의 좌측 하부 인트라 레퍼런스 샘플들 (206) 및 우측 상부 인트라 레퍼런스 샘플들 (208)) 이다. 알 수 있는 바와 같이, 각각의 부분은, 폭 및 높이가 2 의 거듭제곱인 사이즈가 되도록 요구될 수도 있기 때문에, 2 의 거듭제곱 분할로 필터링 프로세스를 실행할 수 있다.As shown in FIG. 5, the filtering process includes left
추가로, 필터링 프로세스에 의존하여, 일부 샘플들이 카피될 수도 있다. 예를 들어, 필터링 공식이 (길이 - 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,
다른 예에서, 직접 카피된 샘플들은 필터링 프로세스의 각각의 부분에 배치될 수 있다. 상기의 예에서, 그것은 필터링의 각각의 블랙 및 점으로 된 영역들에서의 하나의 예일 수 있다. 즉, 비디오 인코더 (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,
다른 예에서, 직접 카피된 샘플들은 좌측 상단 영역 (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
다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 2 의 거듭제곱이 아닌 제수를 사용한 분할 동작이 회피될 수 있도록, 2-탭 이중선형 필터 대신에 고정된 N-탭 선형 필터로서 강한 평활화를 구현할 수도 있다. 하나의 예에서, 5-탭 또는 7-탭 가우시안 필터가 2-탭 이중선형 강한 평활화 필터를 대신하는데 사용되고, 여기서 가우시안 필터의 파라미터는 사전-정의되거나 또는 블록 사이즈, 블록 형상, 인트라 예측 모드를 포함하지만 이에 한정되지 않는, 이미 코딩된 정보에 의존할 수도 있다.In another example,
본 개시의 하나의 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는, 인트라 예측을 사용하여 비-정사각형 블록을 코딩하고, 2 개의 부분들, 즉 블록의 높이 또는 폭의 일방을 따른 인트라 레퍼런스 샘플들과 연관된 제 1 부분, 및 나머지 인트라 레퍼런스 샘플들과 연관된 제 2 부분에서의 인트라 레퍼런스 샘플들에 강한 인트라 레퍼런스 필터링을 적용하도록 구성될 수도 있다.In one example of this disclosure,
비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 1 부분으로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 2 부분으로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다. 다른 예에서, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 제 1 부분과 제 2 부분 양자 모두로부터 적어도 하나의 레퍼런스 샘플을 직접 카피하도록 추가로 구성될 수도 있다.
도 6 은 본 개시의 기법들을 구현할 수도 있는 예의 비디오 인코더 (22) 를 예시하는 블록 다이어그램이다. 도 6 은 설명을 목적으로 제공되고, 본 개시에서 폭넓게 예시화 및 설명된 바와 같이 기법들의 한정으로 고려되어서는 안된다. 본 개시의 기법들은 다양한 코딩 표준들 또는 방법들에 적용가능할 수도 있다. 비디오 인코더 (22) 는 상기 설명된 조합된 코딩 툴 및 변환 시그널링 기법들을 수행하도록 구성될 수도 있다. 추가로, 비디오 인코더 (22) 는 상기 설명된 바와 같이 강한 인트라 레퍼런스 필터링을 수행하도록 구성될 수도 있다.6 is a block diagram illustrating an
도 6 의 예에서, 비디오 인코더 (22) 는 예측 프로세싱 유닛 (100), 비디오 데이터 메모리 (101), 잔차 생성 유닛 (102), 변환 프로세싱 유닛 (104), 양자화 유닛 (106), 역 양자화 유닛 (108), 역 변환 프로세싱 유닛 (110), 재구성 유닛 (112), 필터 유닛 (114), 디코딩된 픽처 버퍼 (116), 및 엔트로피 인코딩 유닛 (118) 을 포함한다. 예측 프로세싱 유닛 (100) 은 인터 예측 프로세싱 유닛 (120) 및 인트라 예측 프로세싱 유닛 (126) 을 포함한다. 인터 예측 프로세싱 유닛 (120) 은 모션 추정 유닛 및 모션 보상 유닛 (미도시) 을 포함할 수도 있다.In the example of FIG. 6,
비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 컴포넌트들에 의해 인코딩될 비디오 데이터를 저장하도록 구성될 수도 있다. 비디오 데이터 메모리 (101) 에 저장된 비디오 데이터는, 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 예를 들어, 인트라 또는 인터 코딩 모드들에서, 비디오 인코더 (22) 에 의해 비디오 데이터를 인코딩하는데 있어서의 사용을 위해 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (101) 및 디코딩된 픽처 버퍼 (116) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (101) 는 비디오 인코더 (22) 의 다른 컴포넌트들과 온-칩이거나 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다. 비디오 데이터 메모리 (101) 는 도 1 의 저장 매체들 (20) 과 동일하거나 또는 그 부분일 수도 있다.
비디오 인코더 (22) 는 비디오 데이터를 수신한다. 비디오 인코더 (22) 는 비디오 데이터의 픽처의 슬라이스에서 각각의 CTU 를 인코딩할 수도 있다. CTU들 각각은, 동일하게 사이징된 루마 코딩 트리 블록들 (CTB들) 및 픽처의 대응하는 CTB들과 연관될 수도 있다. CTU 를 인코딩하는 부분으로서, 예측 프로세싱 유닛 (100) 은 파티셔닝을 수행하여 CTU 의 CTB들을 점진적으로 더 작은 블록들로 분할할 수도 있다. 일부 예들에서, 비디오 인코더 (22) 는 QTBT 구조를 사용하여 블록들을 파티셔닝할 수도 있다. 더 작은 블록들은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 트리 구조에 따라 CTU 와 연관된 CTB 를 파티셔닝할 수도 있다. 본 개시의 하나 이상의 기법들에 따르면, 트리 구조의 각각의 심도 레벨에서의 트리 구조의 각 개별의 비-리프 노드에 대해, 개별의 비-리프 노드에 대한 복수의 허용된 스플리팅 패턴들이 존재하고, 개별의 비-리프 노드에 대응하는 비디오 블록은 복수의 허용가능한 스플리팅 패턴들 중 하나에 따라 개별의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.
비디오 인코더 (22) 는 CTU 의 CU들을 인코딩하여 CU들의 인코딩된 표현들 (즉, 코딩된 CU들) 을 생성할 수도 있다. CU 를 인코딩하는 부분으로서, 예측 프로세싱 유닛 (100) 은 CU 의 하나 이상의 PU들 중에서 CU 와 연관된 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU 는 루마 예측 블록 및 대응하는 크로마 예측 블록들과 연관될 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 다양한 사이즈들을 갖는 PU들을 지원할 수도 있다. 상기 나타낸 바와 같이, CU 의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있고, PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 지칭할 수도 있다. 특정한 CU 의 사이즈가 2N×2N 이라고 가정하면, 비디오 인코더 (22) 및 비디오 디코더 (30) 는 인트라 예측을 위해 2N×2N 또는 N×N 의 PU 사이즈들, 및 인터 예측을 위해 2N×2N, 2N×N, N×2N, N×N, 또는 유사한 것의 대칭적인 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (22) 및 비디오 디코더 (30) 는 또한, 인터 예측을 위해 2N×nU, 2N×nD, nL×2N, 및 nR×2N 의 PU 사이즈들에 대한 비대칭적인 파티셔닝을 지원할 수도 있다.
인터 예측 프로세싱 유닛 (120) 은 CU 의 각각의 PU 에 대해 인터 예측을 수행함으로써 PU 에 대한 예측 데이터를 생성할 수도 있다. PU 에 대한 예측 데이터는 PU 의 예측 블록들 및 PU 에 대한 모션 정보를 포함할 수도 있다. 인터 예측 프로세싱 유닛 (120) 은, PU 가 I 슬라이스인지, P 슬라이스인지, 또는 B 슬라이스인지에 의존하여 CU 의 PU 에 대해 상이한 동작들을 수행할 수도 있다. I 슬라이스에서, 모든 PU들은 인트라 예측된다. 이런 이유로, PU 가 I 슬라이스에 있으면, 인터 예측 프로세싱 유닛 (120) 은 PU 에 대해 인터 예측을 수행하지 않는다. 따라서, I-모드로 인코딩된 블록들에 대해, 예측된 블록은 동일 프레임 내의 이전에 인코딩된 이웃하는 블록들로부터의 공간 예측을 사용하여 형성된다. PU 가 P 슬라이스에 있으면, 인터 예측 프로세싱 유닛 (120) 은 단방향 인터 예측을 사용하여 PU 의 예측 블록을 생성할 수도 있다. PU 가 B 슬라이스에 있으면, 인터 예측 프로세싱 유닛 (120) 은 단방향 또는 양방향 인터 예측을 사용하여 PU 의 예측 블록을 생성할 수도 있다.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 의 잔차 블록들을 생성할 수도 있다.
변환 프로세싱 유닛 (104) 은 쿼드트리 파티셔닝을 수행하여, CU 와 연관된 잔차 블록들을 CU 의 TU들과 연관된 변환 블록들로 파티셔닝할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2 개의 크로마 변환 블록들과 연관될 수도 있다. CU 의 TU들의 루마 및 크로마 변환 블록들의 사이즈들 및 포지션들은 CU 의 PU들의 예측 블록들의 사이즈들 및 포지션들에 기초할 수도 있거나 또는 기초하지 않을 수도 있다. "잔차 쿼드트리" (RQT) 로서 공지된 쿼드트리 구조는 그 영역들의 각각과 연관된 노드들을 포함할 수도 있다. CU 의 TU들은 RQT 의 리프 노드들에 대응할 수도 있다.Transform processing
변환 프로세싱 유닛 (104) 은, TU 의 변환 블록들에 하나 이상의 변환들을 적용함으로써 CU 의 각각의 TU 에 대한 변환 계수 블록들을 생성할 수도 있다. 변환 프로세싱 유닛 (104) 은 TU 와 연관된 변환 블록에 다양한 변환들을 적용할 수도 있다. 예를 들어, 변환 프로세싱 유닛 (104) 은 이산 코사인 변환 (DCT), 지향성 변환, 또는 개념적으로 유사한 변환을 변환 블록에 적용할 수도 있다. 일부 예들에서, 변환 프로세싱 유닛 (104) 은 변환 블록에 변환들을 적용하지 않는다. 이러한 예들에서, 변환 블록은 변환 계수 블록으로서 처리될 수도 있다.Transform processing
양자화 유닛 (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.
역 양자화 유닛 (108) 및 역 변환 프로세싱 유닛 (110) 은 각각 계수 블록에 역 양자화 및 역 변환들을 적용하여, 계수 블록으로부터 잔차 블록을 재구성할 수도 있다. 재구성 유닛 (112) 은 재구성된 잔차 블록을, 예측 프로세싱 유닛 (100) 에 의해 생성된 하나 이상의 예측 블록들로부터의 대응하는 샘플들에 부가하여, TU 와 연관된 재구성된 변환 블록을 생성할 수도 있다. 이러한 방식으로 CU 의 각각의 TU 에 대한 변환 블록들을 재구성함으로써, 비디오 인코더 (22) 는 CU 의 코딩 블록들을 재구성할 수도 있다.
필터 유닛 (114) 은 하나 이상의 디블록킹 (deblocking) 동작들을 수행하여, CU 와 연관된 코딩 블록들에서의 블록킹 아티팩트들을 감소시킬 수도 있다. 디코딩된 픽처 버퍼 (116) 는, 필터 유닛 (114) 이 재구성된 코딩 블록들에 대해 하나 이상의 디블록킹 동작들을 수행한 이후 재구성된 코딩 블록들을 저장할 수도 있다. 인터 예측 프로세싱 유닛 (120) 은 재구성된 코딩 블록들을 포함하는 레퍼런스 픽처를 사용하여, 다른 픽처들의 PU들에 대해 인터 예측을 수행할 수도 있다. 추가로, 인트라 예측 프로세싱 유닛 (126) 은 디코딩된 픽처 버퍼 (116) 에서의 재구성된 코딩 블록들을 사용하여, CU 와 동일한 픽처에서의 다른 PU들에 대해 인트라 예측을 수행할 수도 있다.
엔트로피 인코딩 유닛 (118) 은 비디오 인코더 (22) 의 다른 기능 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있고 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 엔트로피 인코딩된 데이터를 생성하기 위해 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 CABAC 동작, 콘텍스트 적응형 가변 길이 코딩 (CAVLC) 동작, V2V (variable-to-variable) 길이 코딩 동작, 신택스 기반 콘텍스트 적응형 이진 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 인코딩 동작, 또는 다른 타입의 엔트로피 인코딩 동작을 데이터에 대해 수행할 수도 있다. 비디오 인코더 (22) 는 엔트로피 인코딩 유닛 (118) 에 의해 생성된 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 비트스트림은 CU 에 대한 RQT 를 나타내는 데이터를 포함할 수도 있다.
도 7 은 본 개시의 기법들을 구현하도록 구성되는 예의 비디오 디코더 (30) 를 예시하는 블록 다이어그램이다. 도 7 은 설명을 목적으로 제공되고, 본 개시에서 폭넓게 예시화 및 설명된 바와 같이 기법들에 대해 한정하는 것은 아니다. 설명을 목적으로, 본 개시는 HEVC 코딩의 맥락에서 비디오 디코더 (30) 를 설명한다. 그러나, 본 개시의 기법들은 JVET 를 포함한, 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다. 비디오 디코더 (30) 는 상기 설명된 조합된 코딩 툴 및 변환 시그널링 기법들에 따라 시그널링된 신택스 엘리먼트들을 수신 및 파싱하도록 구성될 수도 있다. 추가로, 비디오 디코더 (30) 는 상기 설명된 바와 같이 강한 인트라 레퍼런스 필터링을 수행하도록 구성될 수도 있다.7 is a block diagram illustrating an
도 7 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 비디오 데이터 메모리 (151), 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 재구성 유닛 (158), 필터 유닛 (160), 및 디코딩된 픽처 버퍼 (162) 를 포함한다. 예측 프로세싱 유닛 (152) 은 모션 보상 유닛 (164) 및 인트라 예측 프로세싱 유닛 (166) 을 포함한다. 다른 예들에서, 비디오 디코더 (30) 는, 더 많거나, 더 적거나, 또는 상이한 기능 컴포넌트들을 포함할 수도 있다.In the example of FIG. 7,
비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 컴포넌트들에 의해 디코딩될 인코딩된 비디오 데이터, 이를 테면 인코딩된 비디오 비트스트림을 저장할 수도 있다. 비디오 데이터 메모리 (151) 에 저장된 비디오 데이터는, 예를 들어, 컴퓨터 판독가능 매체 (16) 로부터, 예를 들어, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들에 액세스하는 것에 의해, 획득될 수도 있다. 비디오 데이터 메모리 (151) 는 인코딩된 비디오 비트스트림으로부터 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (CPB) 를 형성할 수도 있다. 디코딩된 픽처 버퍼 (162) 는, 출력을 위해, 또는 예를 들어, 인트라- 또는 인터-코딩 모드들에서, 비디오 디코더 (30) 에 의해 비디오 데이터를 디코딩하는데 있어서의 사용을 위해 레퍼런스 비디오 데이터를 저장하는 레퍼런스 픽처 메모리일 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동기식 DRAM (SDRAM) 을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항성 RAM (MRAM), 저항성 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중 임의의 메모리 디바이스에 의해 형성될 수도 있다. 비디오 데이터 메모리 (151) 및 디코딩된 픽처 버퍼 (162) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (151) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩이거나, 또는 그 컴포넌트들에 대하여 오프-칩일 수도 있다. 비디오 데이터 메모리 (151) 는 도 1 의 저장 매체들 (28) 과 동일하거나 또는 그의 부분일 수도 있다.
비디오 데이터 메모리 (151) 는 비트스트림의 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신 및 저장한다. 엔트로피 디코딩 유닛 (150) 은 비디오 데이터 메모리 (151) 로부터 인코딩된 비디오 데이터 (예를 들어, NAL 유닛들) 를 수신할 수도 있고 NAL 유닛들을 파싱하여 신택스 엘리먼트들을 획득할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 NAL 유닛들에서 엔트로피 인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측 프로세싱 유닛 (152), 역 양자화 유닛 (154), 역 변환 프로세싱 유닛 (156), 재구성 유닛 (158), 및 필터 유닛 (160) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 생성할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 일반적으로 엔트로피 인코딩 유닛 (118) 의 프로세스와 상반되는 프로세스를 수행할 수도 있다.
본 개시의 일부 예들에 따르면, 엔트로피 디코딩 유닛 (150) 은 비트스트림으로부터 신택스 엘리먼트들을 획득하는 부분으로서 트리 구조를 결정할 수도 있다. 트리 구조는 CTB 와 같은 초기 비디오 블록이 코딩 유닛들과 같은 더 작은 비디오 블록들로 파티셔닝되는 방법을 특정할 수도 있다. 본 개시의 하나 이상의 기법들에 따르면, 트리 구조의 각각의 심도 레벨에서의 트리 구조의 각 개별의 비-리프 노드에 대해, 개별의 비-리프 노드에 대한 복수의 허용된 스플리팅 패턴들이 존재하고, 개별의 비-리프 노드에 대응하는 비디오 블록은 복수의 허용가능한 스플리팅 패턴들 중 하나에 따라 개별의 비-리프 노드의 자식 노드들에 대응하는 비디오 블록들로 파티셔닝된다.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,
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,
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 코딩 블록들) 을 재구성할 수도 있다.
필터 유닛 (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.
도 8 은 본 개시의 예의 인코딩 방법을 예시하는 플로우차트이다. 비디오 인코더 (22) 의 하나 이상의 구조적 컴포넌트들은 도 8 의 기법들을 수행하도록 구성될 수도 있다.8 is a flowchart illustrating an encoding method of an example of the present disclosure. One or more structural components of
도 8 의 예에서, 비디오 인코더 (22) 는, 비디오 데이터의 블록을 수신하고 (800), 비디오 데이터의 블록을 인코딩하기 위한 인트라 예측 모드를 결정하고 (802), 그리고 결정된 인트라 예측 모드에 적어도 기초하여 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용할지 여부를 결정 (804) 하도록 구성될 수도 있다. 하나의 예에서, PDPC 를 사용할지 여부를 결정하기 위해, 비디오 인코더 (22) 는 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 인코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 추가로 구성될 수도 있다.In the example of FIG. 8,
도 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
하나의 예에서, 비디오 디코더 (30) 는 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 구성될 수도 있다.In one example,
다른 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하고, 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 것으로서, 하나 이상의 비디오 코딩 툴들은 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하고, 그리고 결정된 사용에 기초하여 비디오 데이터의 블록에 하나 이상의 코딩 툴들을 적용하도록 구성될 수도 있다.In another example,
다른 예에서, 비디오 디코더 (30) 는 결정된 인트라 예측 모드 및 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트의 값에 기초하여 비디오 데이터의 블록을 디코딩하기 위해 PDPC 를 사용할지 여부를 결정하도록 구성될 수도 있다.In another example,
다른 예에서, 비디오 디코더 (30) 는, 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트의 값과 상관없이 인트라 예측 모드가 평면 모드인 경우에 비디오 데이터의 블록을 디코딩하기 위해 PDPC 모드를 사용하기로 결정하도록 구성될 수도 있다. 하나의 예에서, 프라이머리 변환은 DCT, DST, 또는 EMT 중 하나이다. 다른 예에서, 세컨더리 변환은 회전 변환 또는 NSST 중 하나이다. 다른 예에서, 하나 이상의 비디오 코딩 툴들은 PDPC 모드, MDIS, RSAF, ARSS, 또는 MPI 중 하나 이상을 포함한다.In another example,
다른 예에서, 비디오 디코더 (30) 는, PDPC 모드를 사용하기로 결정되는 경우에 PDPC 모드 및 결정된 인트라 예측 모드를 사용하여 비디오 데이터의 블록을 디코딩하거나, 또는 PDPC 모드를 사용하기로 결정되지 않는 경우에 PDPC 모드를 사용하지 않고 결정된 인트라 예측 모드를 사용하여 비디오 데이터의 블록을 디코딩하도록 구성될 수도 있다. 비디오 디코더 (30) 는 비디오 데이터의 디코딩된 블록을 출력하도록 추가로 구성될 수도 있다.In another example,
본 개시의 소정의 양태들은 예시를 목적으로 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. .
상기 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.
상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하는 단계;
상기 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용 (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.
상기 하나 이상의 비디오 코딩 툴들은 상기 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.
상기 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.
상기 프라이머리 변환은 이산 코사인 변환 (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).
상기 세컨더리 변환은 회전 변환 또는 비-분리가능 세컨더리 변환 (NSST) 중 하나인, 비디오 데이터를 디코딩하는 방법.The method of claim 3, wherein
Wherein the secondary transform is one of a rotation transform or a non-separable secondary transform (NSST).
상기 하나 이상의 비디오 코딩 툴들은 상기 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.
상기 신택스 엘리먼트는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 대한 인덱스인, 비디오 데이터를 디코딩하는 방법.The method of claim 3, wherein
And wherein the syntax element is an index to the primary transform or the secondary transform.
상기 신택스 엘리먼트는 변환들의 세트에 대한 인덱스인, 비디오 데이터를 디코딩하는 방법.The method of claim 3, wherein
And wherein the syntax element is an index into a set of transforms.
상기 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.
디코딩된 상기 비디오 데이터의 블록을 출력하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.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.
상기 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.
상기 하나 이상의 프로세서들은,
상기 비디오 데이터의 블록을 위해 사용되는 프라이머리 변환 또는 세컨더리 변환과 연관된 신택스 엘리먼트를 수신하고;
상기 신택스 엘리먼트의 값에 기초하여 하나 이상의 비디오 코딩 툴들의 사용을 결정하는 것으로서, 상기 하나 이상의 비디오 코딩 툴들은 상기 프라이머리 변환 또는 세컨더리 변환 이외의 비디오 코딩 기법들인, 상기 하나 이상의 비디오 코딩 툴들의 사용을 결정하고; 그리고
결정된 상기 사용에 기초하여 상기 하나 이상의 코딩 툴들을 상기 비디오 데이터의 블록에 적용하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.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.
상기 하나 이상의 비디오 코딩 툴들은 상기 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.
상기 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.
상기 프라이머리 변환은 이산 코사인 변환 (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).
상기 세컨더리 변환은 회전 변환 또는 비-분리가능 세컨더리 변환 (NSST) 중 하나인, 비디오 데이터를 디코딩하도록 구성된 장치.The method of claim 15,
And the secondary transform is one of a rotation transform or a non-separable secondary transform (NSST).
상기 하나 이상의 비디오 코딩 툴들은 상기 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.
상기 신택스 엘리먼트는 상기 프라이머리 변환 또는 상기 세컨더리 변환에 대한 인덱스인, 비디오 데이터를 디코딩하도록 구성된 장치.The method of claim 15,
And the syntax element is an index for the primary transform or the secondary transform.
상기 신택스 엘리먼트는 변환들의 세트에 대한 인덱스인, 비디오 데이터를 디코딩하도록 구성된 장치.The method of claim 15,
And the syntax element is an index to a set of transforms.
상기 하나 이상의 프로세서들은,
상기 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.
상기 하나 이상의 프로세서들은,
디코딩된 상기 비디오 데이터의 블록을 출력하도록 추가로 구성되는, 비디오 데이터를 디코딩하도록 구성된 장치.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.
상기 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.
상기 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.
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)
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)
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 |
-
2018
- 2018-05-23 US US15/987,560 patent/US10805641B2/en active Active
- 2018-05-24 AU AU2018282523A patent/AU2018282523B2/en active Active
- 2018-05-24 BR BR112019025629-6A patent/BR112019025629A2/en unknown
- 2018-05-24 WO PCT/US2018/034352 patent/WO2018231488A1/en unknown
- 2018-05-24 CA CA3063559A patent/CA3063559C/en active Active
- 2018-05-24 EP EP18731286.3A patent/EP3639518B1/en active Active
- 2018-05-24 CN CN201880036843.3A patent/CN110720218B/en active Active
- 2018-05-24 EP EP23186324.2A patent/EP4236312A3/en active Pending
- 2018-05-24 JP JP2019569475A patent/JP6950004B2/en active Active
- 2018-05-24 KR KR1020197036176A patent/KR102278720B1/en active IP Right Grant
- 2018-05-30 TW TW107118457A patent/TWI745594B/en active
-
2019
- 2019-12-11 CO CONC2019/0013898A patent/CO2019013898A2/en unknown
- 2019-12-11 CL CL2019003620A patent/CL2019003620A1/en unknown
Non-Patent Citations (1)
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 |